{order.status ?? 'Pending'}
+{category.description}
} +We could not load the latest store information. Your cart has not been changed.
+ +Loading storefront...
; +} diff --git a/app/login/page.tsx b/app/login/page.tsx new file mode 100644 index 0000000..e26655e --- /dev/null +++ b/app/login/page.tsx @@ -0,0 +1,10 @@ +import { Suspense } from 'react'; +import { LoginPageClient } from '@/features/customer/login-page-client'; + +export default function LoginPage() { + return ( +The requested storefront page is unavailable or no longer exists.
+ Return to the storefront +{order.created_at ? new Date(order.created_at).toLocaleString() : 'Order details'}
+{order.status ?? 'Pending'}
+{formatMoney(item.subtotal, order.currency)}
+Order {order.public_id ?? order.id}
++ {order.tracking_number ? `Tracking number: ${order.tracking_number}` : 'Tracking will appear here when the order is dispatched.'} +
+Marketplace ordering is not enabled in this release. Configure this deployment with a single-store Storefront key.
+ )}{store.email ?? store.phone ?? store.website ?? 'Browse this store catalog.'}
+{description}
+Access your orders, saved addresses, and checkout details with your customer account.
+{message}
; +} diff --git a/components/catalog/category-pills.tsx b/components/catalog/category-pills.tsx index 7f5dd8a..84beb14 100644 --- a/components/catalog/category-pills.tsx +++ b/components/catalog/category-pills.tsx @@ -9,7 +9,7 @@ export function CategoryPills({ categories }: { categories: StorefrontCategory[] return ({store.description}
Your order was created successfully.
-Order: {order.id ?? order.public_id}
-Your order was created successfully.
+Order: {order.public_id ?? order.id}
+ View order +{error}
} +Manage orders, saved addresses, and customer details.
+{ordersStatus}
} + {!ordersStatus && orders.length === 0 &&{order.status ?? 'Pending'} {order.created_at ? `- ${new Date(order.created_at).toLocaleString()}` : ''}
+ {order.total !== undefined &&{formatMoney(order.total, order.currency)}
} +{placesStatus}
} + {!placesStatus && places.length === 0 &&{formatPlace(place)}
+Customer details are unavailable.
} +Password reset and saved payment management are outside this release.
+ {status &&{status}
} + > + )} +{description}
+{description}
+{message}
} +Sign in to view order history and saved checkout details.
-{order.status ?? 'Pending'} {order.created_at ? `- ${new Date(order.created_at).toLocaleString()}` : ''}
+ View order+ {message} +
+ ); +} + +export const checkoutMessagePlugin: StorefrontPlugin = { + id: 'checkout-message', + name: 'Checkout Message', + slots: { + 'Checkout.paymentMethods': [CheckoutMessage] + } +}; diff --git a/plugins/registry.ts b/plugins/registry.ts index b6e27dc..3f65321 100644 --- a/plugins/registry.ts +++ b/plugins/registry.ts @@ -2,6 +2,11 @@ import config from '@/storefront.config'; import type { SlotName, StorefrontPlugin } from './types'; export function getPlugins(): StorefrontPlugin[] { + const ids = new SetPage child
}))).toContain('Page child'); + api.getStorefrontAbout.mockRejectedValueOnce(new Error('offline')); + expect((await layout.generateMetadata()).description).toContain('Fleetbase'); + const Loading = (await import('@/app/loading')).default; + const NotFound = (await import('@/app/not-found')).default; + const ErrorPage = (await import('@/app/error')).default; + expect(html(