Skip to content

Commit d6d79c2

Browse files
committed
feat: mobile warning
1 parent f6bf1e3 commit d6d79c2

File tree

3 files changed

+45
-20
lines changed

3 files changed

+45
-20
lines changed

src/components/landing/mobile.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { usePageStore } from "../../stores/page.store";
2+
3+
export default function MobileWarning() {
4+
return (
5+
<div className="flex flex-row items-center justify-center gap-2 bg-red-500 p-2 text-center text-white">
6+
<p>This page is best viewed on Desktop</p>
7+
<button
8+
onClick={() => {
9+
usePageStore.setState({ showWarning: false });
10+
}}
11+
className="border-[1px] border-white px-1 text-sm font-semibold transition-colors hover:bg-white hover:text-red-500"
12+
>
13+
ok
14+
</button>
15+
</div>
16+
);
17+
}

src/components/landing/page.tsx

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Scene from "../../scenes/scene";
55

66
import { useMediaQuery } from "usehooks-ts";
77
import { PageStore, usePageStore } from "../../stores/page.store";
8+
import MobileWarning from "./mobile";
89
import Namecard from "./namecard";
910
import Navbar from "./navbar";
1011
import { pages } from "./navpages";
@@ -14,9 +15,10 @@ export default function LandingPage() {
1415
const [showPages, setShowPages] = useState(false);
1516
const [showScene, setShowScene] = useState(false);
1617

17-
const { page } = usePageStore(
18+
const { page, showWarning } = usePageStore(
1819
useShallow((state: PageStore) => ({
1920
page: state.page,
21+
showWarning: state.showWarning,
2022
})),
2123
);
2224

@@ -30,28 +32,31 @@ export default function LandingPage() {
3032
});
3133

3234
return (
33-
<div className="flex h-screen w-screen flex-row font-poppins text-white">
34-
{!isMobile && (
35-
<div
35+
<div className="flex h-screen w-screen flex-col font-poppins text-white">
36+
{isMobile && showWarning && <MobileWarning />}
37+
<div className="flex h-full w-full flex-row">
38+
{!isMobile && (
39+
<div
40+
style={{
41+
width: "50%",
42+
}}
43+
>
44+
{showScene && <Scene />}
45+
</div>
46+
)}
47+
<motion.div
3648
style={{
37-
width: "50%",
49+
width: isMobile ? "100%" : "50%",
3850
}}
51+
className="flex flex-col gap-4 py-20 pl-10 pr-20"
3952
>
40-
{showScene && <Scene />}
41-
</div>
42-
)}
43-
<motion.div
44-
style={{
45-
width: isMobile ? "100%" : "50%",
46-
}}
47-
className="flex flex-col gap-4 py-20 pl-10 pr-20"
48-
>
49-
<div className="flex flex-col items-end justify-center">
50-
<Namecard />
51-
<Navbar />
52-
</div>
53-
{showPages && pages.find((item) => item.page === page)?.component}
54-
</motion.div>
53+
<div className="flex flex-col items-end justify-center">
54+
<Namecard />
55+
<Navbar />
56+
</div>
57+
{showPages && pages.find((item) => item.page === page)?.component}
58+
</motion.div>
59+
</div>
5560
</div>
5661
);
5762
}

src/stores/page.store.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ enum Page {
1010

1111
type PageStore = {
1212
page: Page;
13+
showWarning: boolean;
1314
};
1415

1516
const usePageStore = create<PageStore>(() => ({
1617
page: Page.ABOUT,
18+
showWarning: true,
1719
}));
1820

1921
export { Page, usePageStore };
2022
export type { PageStore };
23+

0 commit comments

Comments
 (0)