Fix runtime default locale resolution
CI / quality (push) Waiting to run

This commit is contained in:
MOH
2026-03-15 06:02:27 +01:00
parent 9b8409a7d3
commit c18128c965
29 changed files with 330 additions and 108 deletions
+14 -7
View File
@@ -24,6 +24,7 @@ import {
type PortfolioProjectDetailProps = {
item: PortfolioProjectView;
locale: AppLocale;
defaultLocale: AppLocale;
t: (key: "back" | "preview" | "openLink" | "gallery" | "download") => string;
};
@@ -223,10 +224,12 @@ function BadgeCount({ count }: { count: number }) {
function ProjectHeader({
item,
locale,
defaultLocale,
t,
}: {
item: PortfolioProjectView;
locale: AppLocale;
defaultLocale: AppLocale;
t: PortfolioProjectDetailProps["t"];
}) {
return (
@@ -234,7 +237,7 @@ function ProjectHeader({
<AppCard level={3}>
<CardContent className="p-6 lg:p-10">
<Button asChild variant="ghost" className="h-auto px-0 py-0 text-sm">
<Link href={getLocalizedPath(locale, "/portfolio")}>{t("back")}</Link>
<Link href={getLocalizedPath(locale, "/portfolio", defaultLocale)}>{t("back")}</Link>
</Button>
<h1 className="mt-5 text-3xl font-semibold text-foreground sm:text-4xl lg:text-5xl">
@@ -267,11 +270,12 @@ function ProjectHeader({
function GridTemplate({
item,
locale,
defaultLocale,
t,
}: PortfolioProjectDetailProps) {
return (
<div className="space-y-6">
<ProjectHeader item={item} locale={locale} t={t} />
<ProjectHeader item={item} locale={locale} defaultLocale={defaultLocale} t={t} />
{item.coverImagePath ? (
<MotionFade delay={0.04}>
@@ -309,11 +313,12 @@ function GridTemplate({
function StoryTemplate({
item,
locale,
defaultLocale,
t,
}: PortfolioProjectDetailProps) {
return (
<div className="space-y-8">
<ProjectHeader item={item} locale={locale} t={t} />
<ProjectHeader item={item} locale={locale} defaultLocale={defaultLocale} t={t} />
{item.coverImagePath ? (
<MotionFade delay={0.04}>
@@ -356,6 +361,7 @@ function StoryTemplate({
function CaseStudyTemplate({
item,
locale,
defaultLocale,
t,
}: PortfolioProjectDetailProps) {
const [challenge, solution, outcome, ...restSections] = item.sections;
@@ -365,7 +371,7 @@ function CaseStudyTemplate({
return (
<div className="space-y-8">
<ProjectHeader item={item} locale={locale} t={t} />
<ProjectHeader item={item} locale={locale} defaultLocale={defaultLocale} t={t} />
<div className="grid gap-6 xl:grid-cols-[minmax(0,1.2fr)_420px]">
<div className="space-y-6">
@@ -441,17 +447,18 @@ function CaseStudyTemplate({
export function PortfolioProjectDetail({
item,
locale,
defaultLocale,
t,
}: PortfolioProjectDetailProps) {
const viewMode = resolvePortfolioProjectViewMode(item.viewMode);
if (viewMode === "STORY") {
return <StoryTemplate item={item} locale={locale} t={t} />;
return <StoryTemplate item={item} locale={locale} defaultLocale={defaultLocale} t={t} />;
}
if (viewMode === "CASE_STUDY") {
return <CaseStudyTemplate item={item} locale={locale} t={t} />;
return <CaseStudyTemplate item={item} locale={locale} defaultLocale={defaultLocale} t={t} />;
}
return <GridTemplate item={item} locale={locale} t={t} />;
return <GridTemplate item={item} locale={locale} defaultLocale={defaultLocale} t={t} />;
}