diff --git a/apps/website/src/app/[lang]/[slug]/page.tsx b/apps/website/src/app/[lang]/[slug]/page.tsx index ddd5b64..9a13f43 100644 --- a/apps/website/src/app/[lang]/[slug]/page.tsx +++ b/apps/website/src/app/[lang]/[slug]/page.tsx @@ -59,15 +59,15 @@ export default async function CmsCustomPage({ params }: { params: Promise<{ slug if (!pageResult.ok) { if (pageResult.status === 404) notFound() - return ( -
-
-

CMS Page Error

-

- ไม่สามารถโหลดหน้านี้ได้ -

-

{pageResult.error}

-
+ return ( +
+
+

CMS Page Error

+

+ ไม่สามารถโหลดหน้านี้ได้ +

+

{pageResult.error}

+
) } @@ -85,7 +85,7 @@ export default async function CmsCustomPage({ params }: { params: Promise<{ slug const { announcementSections, heroSections, bottomSections } = splitCmsLayoutSections(sections) return ( -
+
{sections.length > 0 ? ( <> {announcementSections.length > 0 && ( @@ -100,9 +100,9 @@ export default async function CmsCustomPage({ params }: { params: Promise<{ slug ) : (
-

HomAroma

-

{page.title}

-

+

HomAroma

+

{page.title}

+

หน้านี้ถูกเผยแพร่แล้ว แต่ยังไม่มี section ที่เปิดใช้งานใน Page Builder

diff --git a/apps/website/src/app/[lang]/about/page.tsx b/apps/website/src/app/[lang]/about/page.tsx index ba61031..6d2c8cb 100644 --- a/apps/website/src/app/[lang]/about/page.tsx +++ b/apps/website/src/app/[lang]/about/page.tsx @@ -38,26 +38,26 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str export default function AboutPage() { return ( -
-
+
+
-

Our Story

-

- Born from a passion for stillness +

Our Story

+

+ Born from a passion for stillness

-

+

HomAroma began in 2019 as a one-person studio in Bangkok, crafting small batches of botanical aroma blends for friends and family. What started as a personal journey toward calm became a philosophy — that our environment shapes how we feel, think, and rest.

-
+
{STATS.map(s => (
-
{s.value}
-
{s.label}
+
{s.value}
+
{s.label}
))}
@@ -66,40 +66,40 @@ export default function AboutPage() {
-

Our Mission

-

Transforming spaces into sanctuaries of peace

-

+

Our Mission

+

Transforming spaces into sanctuaries of peace

+

We believe that scent is the fastest pathway to emotional transformation. A single breath of the right blend can dissolve anxiety, sharpen focus, or unlock creativity. Our mission is to make that transformation accessible — through products that are as beautiful as they are effective.

-

+

Every HomAroma product is designed with intention: the glass bottles are reusable, the packaging is recycled, and the formulas are written to be understood by anyone — not hidden behind chemical jargon.

-
-
+
+
🌿
-

HomAroma Studio, Bangkok

+

HomAroma Studio, Bangkok

-
+
-

What We Stand For

-

Three Pillars

-
+

What We Stand For

+

Three Pillars

+
{PILLARS.map(p => ( -
+
{p.icon}
-

{p.title}

-

{p.desc}

+

{p.title}

+

{p.desc}

))}
@@ -107,13 +107,13 @@ export default function AboutPage() {
-

Ready to find your scent?

-

Let our Scent Guide help you discover the perfect blend for your moment.

+

Ready to find your scent?

+

Let our Scent Guide help you discover the perfect blend for your moment.

- + Take the Scent Guide - + Shop All Products
diff --git a/apps/website/src/app/[lang]/article/[slug]/page.tsx b/apps/website/src/app/[lang]/article/[slug]/page.tsx index d416d92..7339a16 100644 --- a/apps/website/src/app/[lang]/article/[slug]/page.tsx +++ b/apps/website/src/app/[lang]/article/[slug]/page.tsx @@ -1,4 +1,5 @@ import Link from '@/components/LocalizedLink' +import Image from 'next/image' import { notFound } from 'next/navigation' import type { Metadata } from 'next' import { generateSeoMetadata } from '@/lib/seo' @@ -39,38 +40,38 @@ export default async function ArticleReaderPage({ params }: { params: Promise<{ if (!article) notFound() return ( -
+
- + Go Back -

+

{new Date(article.createdAt).toLocaleDateString('en-US', { month: 'long', day: 'numeric', year: 'numeric' })}

-

+

{article.title}

{article.coverImage && ( -
- {article.title} +
+ {article.title}
)} -
+
diff --git a/apps/website/src/app/[lang]/category/[id]/page.tsx b/apps/website/src/app/[lang]/category/[id]/page.tsx index 214bb66..bacdb34 100644 --- a/apps/website/src/app/[lang]/category/[id]/page.tsx +++ b/apps/website/src/app/[lang]/category/[id]/page.tsx @@ -1,4 +1,5 @@ import Link from '@/components/LocalizedLink' +import Image from 'next/image' import { notFound } from 'next/navigation' import type { Metadata } from 'next' import { generateSeoMetadata } from '@/lib/seo' @@ -54,15 +55,15 @@ export default async function CategoryPage({ params }: { params: Promise<{ id: s if (categoryProductsResult.status === 404) notFound() return ( -
+
{announcementSections.length > 0 && ( )}
-
-

Unable to load this category

+
+

Unable to load this category

{categoryProductsResult.error}

- Back to Shop + Back to Shop
@@ -76,30 +77,32 @@ export default async function CategoryPage({ params }: { params: Promise<{ id: s const categoryName = resolveLocalized(category.name, lang) return ( -
+
{announcementSections.length > 0 && ( )} {heroSections.length > 0 ? ( ) : ( -
- + {categoryName} -
+
-
- Home +
+ Home / - Shop + Shop / - {categoryName} + {categoryName}
-

{categoryName}

- {category._count &&

{category._count.products} products available

} +

{categoryName}

+ {category._count &&

{category._count.products} products available

}
)} @@ -107,7 +110,7 @@ export default async function CategoryPage({ params }: { params: Promise<{ id: s
{!categoriesResult.ok && ( - + Categories unavailable )} @@ -121,8 +124,8 @@ export default async function CategoryPage({ params }: { params: Promise<{ id: s href={`/category/${item.id}`} className={`rounded-full px-5 py-2 text-xs font-bold uppercase tracking-widest transition ${ isActive - ? 'bg-pop-black text-white' - : 'border border-gray-200 bg-white text-gray-600 hover:border-pop-pink hover:text-pop-pink' + ? 'bg-text-main text-white' + : 'border border-line-primary/20 bg-surface-card text-muted-text hover:border-brand-primary hover:text-brand-primary' }`} > {name} @@ -132,9 +135,9 @@ export default async function CategoryPage({ params }: { params: Promise<{ id: s
{products.length === 0 ? ( -
-

No products in this category yet.

- Back to Shop +
+

No products in this category yet.

+ Back to Shop
) : (
diff --git a/apps/website/src/app/[lang]/checkout/page.tsx b/apps/website/src/app/[lang]/checkout/page.tsx index 79cfc48..fa85b8e 100644 --- a/apps/website/src/app/[lang]/checkout/page.tsx +++ b/apps/website/src/app/[lang]/checkout/page.tsx @@ -32,7 +32,7 @@ export default async function CheckoutPage({ params }: { params: Promise<{ lang: } return ( -
+
{announcementSections.length > 0 && ( )} @@ -41,12 +41,12 @@ export default async function CheckoutPage({ params }: { params: Promise<{ lang: ) : (
-
+
-

Secure Checkout

-

ยืนยันคำสั่งซื้อ

-

+

Secure Checkout

+

ยืนยันคำสั่งซื้อ

+

ตรวจสอบรายการสินค้า ใช้คูปองหรือคะแนนสะสม และสร้างคำสั่งซื้อเพื่อไปยังหน้ารายละเอียดออเดอร์

diff --git a/apps/website/src/app/[lang]/contact/page.tsx b/apps/website/src/app/[lang]/contact/page.tsx index e9446da..837f852 100644 --- a/apps/website/src/app/[lang]/contact/page.tsx +++ b/apps/website/src/app/[lang]/contact/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client" import { useState } from 'react' type FormState = { name: string; email: string; subject: string; message: string } @@ -22,17 +22,17 @@ export default function ContactPage() { } return ( -
-
-

Get in Touch

-

Contact Us

-

Have a question, custom request, or partnership idea? We'd love to hear from you.

+
+
+

Get in Touch

+

Contact Us

+

Have a question, custom request, or partnership idea? We'd love to hear from you.

-

Reach Us Directly

+

Reach Us Directly

{[ { icon: '📧', label: 'Email', value: 'hello@homaroma.shop', href: 'mailto:hello@homaroma.shop' }, @@ -41,71 +41,71 @@ export default function ContactPage() { { icon: '📍', label: 'Studio', value: 'Bangkok, Thailand', href: '#' }, ].map(item => ( -
{item.icon}
+
{item.icon}
-

{item.label}

-

{item.value}

+

{item.label}

+

{item.value}

))}
-
-

Response Time

+
+

Response Time

{[['Email', '~2 hours'], ['LINE', '~30 minutes'], ['Instagram DM', '~4 hours']].map(([k, v]) => (
- {k} - {v} + {k} + {v}
))}
-

Mon-Sat, 9:00-18:00 (ICT)

+

Mon-Sat, 9:00-18:00 (ICT)

{status === 'sent' ? ( -
+
✉️
-

Message Sent!

-

Thank you for reaching out. We'll get back to you within 2 hours.

-
) : ( -
+
- + + className="ui-form-shell-light" />
- + + className="ui-form-shell-light" />
- +
- +