Skip to content

Commit 944f44e

Browse files
authored
feat(header): show Layout switcher only in DEMO mode (#451)
The Layout combobox in the header is now only visible in DEMO mode. For deployed sites (non-DEMO), layout switching remains available only through Settings. - Add isDemoMode() condition in NavigationControls - Add isDemoMode() condition in mobile header - Layout switcher remains accessible via Settings in all modes
2 parents 9675285 + 356b03c commit 944f44e

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

components/header/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { useSurveysEnabled } from '@/hooks/use-surveys-enabled';
2929
import { useTagsEnabled } from '@/hooks/use-tags-enabled';
3030
import { useHeaderSettings } from '@/hooks/use-header-settings';
3131
import { useCategoriesExists } from '@/hooks/use-categories-exists';
32+
import { isDemoMode } from '@/lib/utils';
3233

3334
interface NavigationItem {
3435
key: string;
@@ -171,6 +172,7 @@ export default function Header() {
171172
const { tagsEnabled } = useTagsEnabled();
172173
const { settings: headerSettings } = useHeaderSettings();
173174
const { data: categoriesData, isLoading: categoriesLoading } = useCategoriesExists();
175+
const isDemo = isDemoMode();
174176

175177
const t = useTranslations('common');
176178
const tListing = useTranslations('listing');
@@ -371,7 +373,7 @@ export default function Header() {
371373
)}
372374

373375
<div className={STYLES.mobileControls}>
374-
{headerSettings.layoutEnabled && (
376+
{headerSettings.layoutEnabled && isDemo && (
375377
<div className="py-2 flex justify-center">
376378
<div className="scale-90 sm:scale-95 md:scale-100 transition-transform duration-200">
377379
<LayoutSwitcher inline />

components/navigation-controls.tsx

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1-
"use client";
1+
'use client';
22

3-
import { LanguageSwitcher } from "./language-switcher";
4-
import { ThemeToggler } from "./theme-toggler";
5-
import { LayoutSwitcher } from "./layout-switcher";
6-
import { useHeaderSettings } from "@/hooks/use-header-settings";
3+
import { LanguageSwitcher } from './language-switcher';
4+
import { ThemeToggler } from './theme-toggler';
5+
import { LayoutSwitcher } from './layout-switcher';
6+
import { useHeaderSettings } from '@/hooks/use-header-settings';
7+
import { isDemoMode } from '@/lib/utils';
78

89
export function NavigationControls() {
9-
const { settings } = useHeaderSettings();
10+
const { settings } = useHeaderSettings();
11+
const isDemo = isDemoMode();
1012

11-
return (
12-
<div className="flex items-center gap-2 md:gap-3 transition-all duration-300">
13-
{settings.layoutEnabled && (
14-
<div className="hidden sm:block">
15-
<LayoutSwitcher inline={false} />
16-
</div>
17-
)}
18-
{settings.languageEnabled && <LanguageSwitcher />}
19-
{settings.themeEnabled && <ThemeToggler />}
20-
</div>
21-
);
13+
return (
14+
<div className="flex items-center gap-2 md:gap-3 transition-all duration-300">
15+
{settings.layoutEnabled && isDemo && (
16+
<div className="hidden sm:block">
17+
<LayoutSwitcher inline={false} />
18+
</div>
19+
)}
20+
{settings.languageEnabled && <LanguageSwitcher />}
21+
{settings.themeEnabled && <ThemeToggler />}
22+
</div>
23+
);
2224
}

0 commit comments

Comments
 (0)