diff --git a/app/account/orders/[id]/loading.tsx b/app/account/(orderId)/orders/[id]/loading.tsx similarity index 100% rename from app/account/orders/[id]/loading.tsx rename to app/account/(orderId)/orders/[id]/loading.tsx diff --git a/app/account/orders/[id]/page.tsx b/app/account/(orderId)/orders/[id]/page.tsx similarity index 96% rename from app/account/orders/[id]/page.tsx rename to app/account/(orderId)/orders/[id]/page.tsx index 5088165d6..8868b2f2a 100644 --- a/app/account/orders/[id]/page.tsx +++ b/app/account/(orderId)/orders/[id]/page.tsx @@ -1,5 +1,5 @@ import { ArrowLeftIcon, CheckCircleIcon, TruckIcon } from '@heroicons/react/24/outline'; -import { Button } from 'components/button'; +import ActivateWarranty from 'components/orders/activate-warranty'; import OrderSummary from 'components/orders/order-summary'; import OrderSummaryMobile from 'components/orders/order-summary-mobile'; import Price from 'components/price'; @@ -8,7 +8,7 @@ import { Card } from 'components/ui/card'; import Heading from 'components/ui/heading'; import Label from 'components/ui/label'; import Text from 'components/ui/text'; -import { getCustomerOrder } from 'lib/shopify'; +import { getCustomerOrder, getOrderMetafields } from 'lib/shopify'; import { Fulfillment, Order } from 'lib/shopify/types'; import { toPrintDate } from 'lib/utils'; import Image from 'next/image'; @@ -228,7 +228,10 @@ function OrderDetails({ order }: { order: Order }) { } export default async function OrderPage({ params }: { params: { id: string } }) { - const order = await getCustomerOrder(params.id); + const [order, orderMetafields] = await Promise.all([ + getCustomerOrder(params.id), + getOrderMetafields(params.id) + ]); return ( <> @@ -244,9 +247,7 @@ export default async function OrderPage({ params }: { params: { id: string } }) -
- -
+
diff --git a/app/account/loading.tsx b/app/account/(orders)/loading.tsx similarity index 100% rename from app/account/loading.tsx rename to app/account/(orders)/loading.tsx diff --git a/app/account/page.tsx b/app/account/(orders)/page.tsx similarity index 93% rename from app/account/page.tsx rename to app/account/(orders)/page.tsx index 160c5feb8..03fa41fd7 100644 --- a/app/account/page.tsx +++ b/app/account/(orders)/page.tsx @@ -4,7 +4,7 @@ import MobileOrderActions from 'components/orders/mobile-order-actions'; import OrdersHeader from 'components/orders/orders-header'; import Price from 'components/price'; import { getCustomerOrders, getOrdersMetafields } from 'lib/shopify'; -import { isBeforeToday, toPrintDate } from 'lib/utils'; +import { toPrintDate } from 'lib/utils'; import Image from 'next/image'; import Link from 'next/link'; @@ -64,12 +64,7 @@ export default async function AccountPage() { View Order {order.normalizedId} - {!isBeforeToday(ordersMetafields[order.id]?.warrantyActivationDeadline) && ( - - )} +
diff --git a/components/orders/activate-warranty.tsx b/components/orders/activate-warranty.tsx index 68325d27b..a8f9bb707 100644 --- a/components/orders/activate-warranty.tsx +++ b/components/orders/activate-warranty.tsx @@ -1,6 +1,7 @@ 'use client'; import { Order, OrderMetafield, WarrantyStatus } from 'lib/shopify/types'; +import { isBeforeToday } from 'lib/utils'; import { useState } from 'react'; import ActivateWarrantyModal from './activate-warranty-modal'; import WarrantyActivatedBadge from './warranty-activated-badge'; @@ -13,15 +14,20 @@ type ActivateWarrantyModalProps = { const ActivateWarranty = ({ order, orderMetafields }: ActivateWarrantyModalProps) => { const [isOpen, setIsOpen] = useState(false); const isWarrantyActivated = orderMetafields?.warrantyStatus === WarrantyStatus.Activated; + const isPassDeadline = isBeforeToday(orderMetafields?.warrantyActivationDeadline); if (isWarrantyActivated) { return ; } + if (isPassDeadline) { + return null; + } + return ( <>