Route storefront marketplace under /storefront
Build & Deploy / Build & Push Docker Image (push) Successful in 2m57s
Test / Type Check (all packages) (push) Successful in 57s
Build & Deploy / Deploy to VPS (push) Successful in 4s
Test / API Unit Tests (push) Successful in 47s
Test / Homepage Unit Tests (push) Successful in 43s
Test / Storefront Unit Tests (push) Successful in 42s
Test / Admin Unit Tests (push) Successful in 40s
Test / Dashboard Unit Tests (push) Successful in 45s
Test / API Integration Tests (push) Successful in 1m4s

Replace the legacy /explore marketplace route with /storefront across the
storefront app and production routing.

- move the marketplace index page to the storefront root route
- move company and vehicle detail pages from /explore/* to /* internally
- update marketplace links, renter dashboard links, saved company links, and
  header navigation to target /storefront
- remove remaining explore route references and wording from storefront code
- configure production Traefik to route /storefront and strip the prefix before
  forwarding to the storefront service
- set the storefront production asset prefix to /storefront so Next chunks load
  from /storefront/_next instead of the shared root /_next path
- redirect locale entry paths such as /storefront/fr back to /storefront while
  persisting the selected language cookie
- update middleware tests for the locale redirect and adjusted redirect mock

Verification:
- npm run test --workspace @rentaldrivego/storefront
- npm run build --workspace @rentaldrivego/storefront
This commit is contained in:
root
2026-07-02 14:47:50 -04:00
parent b45f84d62b
commit 6913c298ad
15 changed files with 436 additions and 391 deletions
@@ -9,8 +9,8 @@ export type Theme = 'light' | 'dark'
export type Language = 'en' | 'fr' | 'ar'
type Dictionary = {
home: string
storefront: string
explore: string
signIn: string
ownerSignIn: string
theme: string
@@ -124,13 +124,13 @@ export default function StorefrontHeader({
href="/"
className="rounded-full px-2.5 py-1 text-[12px] font-medium text-stone-600 transition hover:bg-stone-100 hover:text-stone-900 dark:text-stone-300 dark:hover:bg-blue-900/40 dark:hover:text-stone-100 sm:px-4 sm:py-2 sm:text-sm"
>
{dict.storefront}
{dict.home}
</Link>
<Link
href="/explore"
href="/storefront"
className="rounded-full px-2.5 py-1 text-[12px] font-medium text-stone-600 transition hover:bg-stone-100 hover:text-stone-900 dark:text-stone-300 dark:hover:bg-blue-900/40 dark:hover:text-stone-100 sm:px-4 sm:py-2 sm:text-sm"
>
{dict.explore}
{dict.storefront}
</Link>
<a
href={signInHref}
@@ -9,8 +9,8 @@ import { SHARED_LANGUAGE_KEY, SHARED_THEME_KEY, readCurrentUserScopedPreference,
type Theme = 'light' | 'dark'
type Dictionary = {
home: string
storefront: string
explore: string
signIn: string
ownerSignIn: string
language: string
@@ -22,8 +22,8 @@ type Dictionary = {
const dictionaries: Record<StorefrontLanguage, Dictionary> = {
en: {
storefront: 'Home',
explore: 'Storefront',
home: 'Home',
storefront: 'Storefront',
signIn: 'Sign in',
ownerSignIn: 'Create Agency Space',
language: 'Language',
@@ -33,8 +33,8 @@ const dictionaries: Record<StorefrontLanguage, Dictionary> = {
preferences: 'Storefront preferences',
},
fr: {
storefront: 'Accueil',
explore: 'Storefront',
home: 'Accueil',
storefront: 'Storefront',
signIn: 'Connexion',
ownerSignIn: "Créer un espace d'agence",
language: 'Langue',
@@ -44,8 +44,8 @@ const dictionaries: Record<StorefrontLanguage, Dictionary> = {
preferences: 'Préférences storefront',
},
ar: {
storefront: 'الرئيسية',
explore: 'السوق',
home: 'الرئيسية',
storefront: 'السوق',
signIn: 'تسجيل الدخول',
ownerSignIn: 'إنشاء مساحة الوكالة',
language: 'اللغة',