diff --git a/app/account/page.tsx b/app/account/page.tsx
index fe2482c40..160c5feb8 100644
--- a/app/account/page.tsx
+++ b/app/account/page.tsx
@@ -3,13 +3,16 @@ import ActivateWarranty from 'components/orders/activate-warranty';
import MobileOrderActions from 'components/orders/mobile-order-actions';
import OrdersHeader from 'components/orders/orders-header';
import Price from 'components/price';
-import { getCustomerOrders } from 'lib/shopify';
-import { toPrintDate } from 'lib/utils';
+import { getCustomerOrders, getOrdersMetafields } from 'lib/shopify';
+import { isBeforeToday, toPrintDate } from 'lib/utils';
import Image from 'next/image';
import Link from 'next/link';
export default async function AccountPage() {
- const orders = await getCustomerOrders();
+ const [orders, ordersMetafields] = await Promise.all([
+ getCustomerOrders(),
+ getOrdersMetafields()
+ ]);
return (
@@ -51,7 +54,7 @@ export default async function AccountPage() {
)}
-
+
View Order
{order.normalizedId}
-
+ {!isBeforeToday(ordersMetafields[order.id]?.warrantyActivationDeadline) && (
+
+ )}
@@ -76,7 +84,7 @@ export default async function AccountPage() {
src={item.image.url}
width={item.image.width}
height={item.image.height}
- alt={item.image.altText || item.title}
+ alt={item.image.altText || item.title || 'Product Image'}
className="h-full w-full object-cover object-center"
/>
) : (
diff --git a/components/form/file-input/actions.ts b/components/form/file-input/actions.ts
index 55581992d..3f8e3a914 100644
--- a/components/form/file-input/actions.ts
+++ b/components/form/file-input/actions.ts
@@ -29,7 +29,7 @@ const createStagedUploadFiles = async (params: UploadInput) => {
return JSON.parse(JSON.stringify(stagedTargets[0]));
} catch (error) {
- console.log(error);
+ console.log('createStagedUploadFiles action', error);
}
};
@@ -54,7 +54,7 @@ const onUploadFile = async ({
originalSource: resourceUrl
});
} catch (error) {
- console.log(error);
+ console.log('onUploadFile action', error);
}
};
@@ -81,6 +81,6 @@ export const handleUploadFile = async ({ file }: { file: File }) => {
return result?.[0]?.id;
}
} catch (error) {
- console.log(error);
+ console.log('handleUploadFile action', error);
}
};
diff --git a/components/orders/actions.ts b/components/orders/actions.ts
index 3b392d1a0..c5158103c 100644
--- a/components/orders/actions.ts
+++ b/components/orders/actions.ts
@@ -1,8 +1,9 @@
'use server';
import { handleUploadFile } from 'components/form/file-input/actions';
+import { TAGS } from 'lib/constants';
import { updateOrderMetafields } from 'lib/shopify';
-import { revalidatePath } from 'next/cache';
+import { revalidateTag } from 'next/cache';
export const activateWarranty = async (orderId: string, formData: FormData) => {
let odometerFileId = null;
@@ -37,8 +38,9 @@ export const activateWarranty = async (orderId: string, formData: FormData) => {
orderId,
metafields: rawFormData
});
- revalidatePath('/account');
+
+ revalidateTag(TAGS.orderMetafields);
} catch (error) {
- console.log(error);
+ console.log('activateWarranty action', error);
}
};
diff --git a/components/orders/activate-warranty.tsx b/components/orders/activate-warranty.tsx
index 7777cd52e..68325d27b 100644
--- a/components/orders/activate-warranty.tsx
+++ b/components/orders/activate-warranty.tsx
@@ -1,15 +1,23 @@
'use client';
-import { Order } from 'lib/shopify/types';
+import { Order, OrderMetafield, WarrantyStatus } from 'lib/shopify/types';
import { useState } from 'react';
import ActivateWarrantyModal from './activate-warranty-modal';
+import WarrantyActivatedBadge from './warranty-activated-badge';
type ActivateWarrantyModalProps = {
order: Order;
+ orderMetafields?: OrderMetafield;
};
-const ActivateWarranty = ({ order }: ActivateWarrantyModalProps) => {
+const ActivateWarranty = ({ order, orderMetafields }: ActivateWarrantyModalProps) => {
const [isOpen, setIsOpen] = useState(false);
+ const isWarrantyActivated = orderMetafields?.warrantyStatus === WarrantyStatus.Activated;
+
+ if (isWarrantyActivated) {
+ return ;
+ }
+
return (
<>