import { data as remixData, Form, NavLink, Outlet, useLoaderData, } from 'react-router'; import type {Route} from './+types/account'; import {CUSTOMER_DETAILS_QUERY} from '~/graphql/customer-account/CustomerDetailsQuery'; export function shouldRevalidate() { return true; } export async function loader({context}: Route.LoaderArgs) { const {customerAccount} = context; const {data, errors} = await customerAccount.query(CUSTOMER_DETAILS_QUERY, { variables: { language: customerAccount.i18n.language, }, }); if (errors?.length || !data?.customer) { throw new Error('Customer not found'); } return remixData( {customer: data.customer}, { headers: { 'Cache-Control': 'no-cache, no-store, must-revalidate', }, }, ); } export default function AccountLayout() { const {customer} = useLoaderData(); const heading = customer ? customer.firstName ? `Welcome, ${customer.firstName}` : `Welcome to your account.` : 'Account Details'; return (

{heading}




); } function AccountMenu() { function isActiveStyle({ isActive, isPending, }: { isActive: boolean; isPending: boolean; }) { return { fontWeight: isActive ? 'bold' : undefined, color: isPending ? 'grey' : 'black', }; } return ( ); } function Logout() { return (
 
); }