Redesign Orders list
This commit is contained in:
@@ -1,20 +1,21 @@
|
|||||||
import type { JSX } from "react";
|
import type { JSX } from "react";
|
||||||
import { ScrollView, View } from "react-native";
|
import { ScrollView } from "react-native";
|
||||||
import { Typography } from "heroui-native";
|
import { Typography } from "heroui-native";
|
||||||
import { ORDERS } from "@/data/mock";
|
import { ORDERS } from "@/data/mock";
|
||||||
import { OrderRow } from "@/components/OrderRow";
|
import { OrderRow } from "@/components/OrderRow";
|
||||||
|
import { PageContainer } from "@/components/PageContainer";
|
||||||
|
|
||||||
export default function OrdersTab(): JSX.Element {
|
export default function OrdersTab(): JSX.Element {
|
||||||
return (
|
return (
|
||||||
<ScrollView className="flex-1 bg-background">
|
<ScrollView className="flex-1 bg-background">
|
||||||
<View className="gap-2.5 p-4 md:mx-auto md:w-full md:max-w-2xl">
|
<PageContainer className="gap-2.5 py-4">
|
||||||
<Typography type="h4" className="mb-1">
|
<Typography type="h4" className="mb-1">
|
||||||
My Orders
|
My Orders
|
||||||
</Typography>
|
</Typography>
|
||||||
{ORDERS.map((order) => (
|
{ORDERS.map((order) => (
|
||||||
<OrderRow key={order.id} order={order} />
|
<OrderRow key={order.id} order={order} />
|
||||||
))}
|
))}
|
||||||
</View>
|
</PageContainer>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import type { JSX } from "react";
|
import type { JSX } from "react";
|
||||||
|
import { useState } from "react";
|
||||||
import { Pressable, View } from "react-native";
|
import { Pressable, View } from "react-native";
|
||||||
import { useRouter } from "expo-router";
|
import { useRouter } from "expo-router";
|
||||||
import { Typography } from "heroui-native";
|
import { Typography } from "heroui-native";
|
||||||
import type { Order } from "@/data/mock";
|
import type { Order } from "@/data/mock";
|
||||||
import { orderStatusInfo } from "@/lib/status";
|
import { orderStatusInfo } from "@/lib/status";
|
||||||
import { StatusChip } from "@/components/StatusChip";
|
import { StatusChip } from "@/components/StatusChip";
|
||||||
|
import { MonoText } from "@/components/MonoText";
|
||||||
|
|
||||||
interface OrderRowProps {
|
interface OrderRowProps {
|
||||||
order: Order;
|
order: Order;
|
||||||
@@ -12,21 +14,26 @@ interface OrderRowProps {
|
|||||||
|
|
||||||
export function OrderRow({ order }: OrderRowProps): JSX.Element {
|
export function OrderRow({ order }: OrderRowProps): JSX.Element {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const [isHovered, setIsHovered] = useState(false);
|
||||||
const status = orderStatusInfo(order.status);
|
const status = orderStatusInfo(order.status);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => router.push(`/orders/${order.id}`)}
|
onPress={() => router.push(`/orders/${order.id}`)}
|
||||||
className="flex-row items-center gap-3.5 rounded-xl border border-border bg-surface p-3.5"
|
onHoverIn={() => setIsHovered(true)}
|
||||||
|
onHoverOut={() => setIsHovered(false)}
|
||||||
|
className={`flex-row items-center gap-3.5 rounded-xl border bg-surface p-3.5 ${
|
||||||
|
isHovered ? "border-border-secondary" : "border-border"
|
||||||
|
}`}
|
||||||
>
|
>
|
||||||
<Typography className="text-2xl">{order.emoji}</Typography>
|
<Typography className="text-2xl">{order.emoji}</Typography>
|
||||||
<View className="flex-1 gap-0.5">
|
<View className="flex-1 gap-0.5">
|
||||||
<Typography type="body-sm" weight="semibold" numberOfLines={1}>
|
<Typography type="body-sm" weight="semibold" numberOfLines={1}>
|
||||||
{order.name}
|
{order.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography type="body-xs" color="muted">
|
<MonoText type="body-xs" color="muted">
|
||||||
{order.seller}
|
{order.seller}
|
||||||
</Typography>
|
</MonoText>
|
||||||
</View>
|
</View>
|
||||||
<View className="items-end gap-0.5">
|
<View className="items-end gap-0.5">
|
||||||
<Typography type="body-sm" weight="bold">
|
<Typography type="body-sm" weight="bold">
|
||||||
|
|||||||
Reference in New Issue
Block a user