2024-05-31 19:49:46 +05:30
|
|
|
import React, { ReactNode } from 'react';
|
|
|
|
|
import { Box } from 'folds';
|
|
|
|
|
|
|
|
|
|
type ClientLayoutProps = {
|
|
|
|
|
nav: ReactNode;
|
|
|
|
|
children: ReactNode;
|
|
|
|
|
};
|
|
|
|
|
export function ClientLayout({ nav, children }: ClientLayoutProps) {
|
|
|
|
|
return (
|
2026-05-20 21:44:41 -04:00
|
|
|
<>
|
|
|
|
|
<a
|
|
|
|
|
href="#main-content"
|
|
|
|
|
style={{
|
|
|
|
|
position: 'absolute',
|
|
|
|
|
top: '-40px',
|
|
|
|
|
left: 0,
|
|
|
|
|
padding: '8px 16px',
|
|
|
|
|
background: '#000',
|
|
|
|
|
color: '#fff',
|
|
|
|
|
zIndex: 9999,
|
|
|
|
|
borderRadius: '0 0 4px 0',
|
|
|
|
|
transition: 'top 0.1s',
|
|
|
|
|
}}
|
2026-05-21 20:49:33 -04:00
|
|
|
onFocus={(e) => {
|
|
|
|
|
(e.currentTarget as HTMLElement).style.top = '0';
|
|
|
|
|
}}
|
|
|
|
|
onBlur={(e) => {
|
|
|
|
|
(e.currentTarget as HTMLElement).style.top = '-40px';
|
|
|
|
|
}}
|
2026-05-20 21:44:41 -04:00
|
|
|
>
|
|
|
|
|
Skip to main content
|
|
|
|
|
</a>
|
|
|
|
|
<Box grow="Yes">
|
2026-05-21 20:49:33 -04:00
|
|
|
<Box shrink="No" as="nav" aria-label="Room navigation">
|
|
|
|
|
{nav}
|
|
|
|
|
</Box>
|
|
|
|
|
<Box grow="Yes" as="main" id="main-content">
|
|
|
|
|
{children}
|
|
|
|
|
</Box>
|
2026-05-20 21:44:41 -04:00
|
|
|
</Box>
|
|
|
|
|
</>
|
2024-05-31 19:49:46 +05:30
|
|
|
);
|
|
|
|
|
}
|