56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { BRAND_NAME } from "@lib/brand"
|
|
import { Metadata } from "next"
|
|
|
|
import ProfilePhone from "@modules/account//components/profile-phone"
|
|
import ProfileBillingAddress from "@modules/account/components/profile-billing-address"
|
|
import ProfileEmail from "@modules/account/components/profile-email"
|
|
import ProfileName from "@modules/account/components/profile-name"
|
|
import ProfilePassword from "@modules/account/components/profile-password"
|
|
|
|
import { notFound } from "next/navigation"
|
|
import { listRegions } from "@lib/data/regions"
|
|
import { retrieveCustomer } from "@lib/data/customer"
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Profile",
|
|
description: `View and edit your ${'${BRAND_NAME}'} profile.`,
|
|
}
|
|
|
|
export default async function Profile() {
|
|
const customer = await retrieveCustomer()
|
|
const regions = await listRegions()
|
|
|
|
if (!customer || !regions) {
|
|
notFound()
|
|
}
|
|
|
|
return (
|
|
<div className="w-full" data-testid="profile-page-wrapper">
|
|
<div className="mb-8 flex flex-col gap-y-4">
|
|
<h1 className="text-2xl-semi">Profile</h1>
|
|
<p className="text-base-regular">
|
|
View and update your profile information, including your name, email,
|
|
and phone number. You can also update your billing address, or change
|
|
your password.
|
|
</p>
|
|
</div>
|
|
<div className="flex flex-col gap-y-8 w-full">
|
|
<ProfileName customer={customer} />
|
|
<Divider />
|
|
<ProfileEmail customer={customer} />
|
|
<Divider />
|
|
<ProfilePhone customer={customer} />
|
|
<Divider />
|
|
{/* <ProfilePassword customer={customer} />
|
|
<Divider /> */}
|
|
<ProfileBillingAddress customer={customer} regions={regions} />
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
const Divider = () => {
|
|
return <div className="w-full h-px bg-gray-200" />
|
|
}
|
|
;``
|