Skip to content

Commit c613ca5

Browse files
committed
[dev] add embedded mode
1 parent e3a6948 commit c613ca5

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

src/layout/Layout.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,26 @@ import Header from './Header';
55
import Sidebar from './Sidebar';
66
import MobileMenu from './MobileMenu';
77

8+
const hasEmbeddedMode = (search: string) =>
9+
new URLSearchParams(search).get('mode') === 'embed';
10+
11+
const isEmbeddedMode = () => {
12+
if (typeof window === 'undefined') {
13+
return false;
14+
}
15+
16+
const hashQueryIndex = window.location.hash.indexOf('?');
17+
const hashQuery =
18+
hashQueryIndex > -1 ? window.location.hash.slice(hashQueryIndex + 1) : '';
19+
20+
return hasEmbeddedMode(window.location.search) || hasEmbeddedMode(hashQuery);
21+
};
22+
823
export default function Layout() {
924
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
1025

26+
const embedded = isEmbeddedMode();
27+
1128
const handleBurgerClick = () => {
1229
setMobileMenuOpen(true);
1330
};
@@ -18,16 +35,16 @@ export default function Layout() {
1835

1936
return (
2037
<div className="app-container">
21-
<Header onBurgerClick={handleBurgerClick} />
38+
{!embedded && <Header onBurgerClick={handleBurgerClick} />}
2239

2340
<div className="layout-body">
24-
<Sidebar /> {/* Hidden on mobile via CSS */}
41+
{!embedded && <Sidebar />} {/* Hidden on mobile via CSS */}
2542
<main className="main-content">
2643
<Outlet />
2744
</main>
2845
</div>
2946

30-
{mobileMenuOpen && (
47+
{!embedded && mobileMenuOpen && (
3148
<MobileMenu onClose={handleMenuClose} />
3249
)}
3350
</div>

0 commit comments

Comments
 (0)