Skip to content

Commit 8c68abe

Browse files
committed
Refactor ClientSplitView for consistency and readability
1 parent 084883c commit 8c68abe

File tree

1 file changed

+45
-57
lines changed

1 file changed

+45
-57
lines changed
Lines changed: 45 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,64 @@
1-
"use client";
1+
"use client"
22

3-
import { useEffect, useContext } from "react";
4-
import { Stack, useMediaQuery, useTheme } from "@mui/material";
5-
import { isMac, useKeyboardShortcut, SidebarTogglableContext } from "@/common";
6-
import { useSidebarOpen } from "../../data";
7-
import useDiffbarOpen from "../../data/useDiffbarOpen";
8-
import { useProjectSelection } from "@/features/projects/data";
9-
import PrimaryContainer from "./primary/Container";
10-
import SecondaryContainer from "./secondary/Container";
11-
import RightContainer from "./tertiary/RightContainer";
3+
import { useEffect, useContext } from "react"
4+
import { Stack, useMediaQuery, useTheme } from "@mui/material"
5+
import { isMac, useKeyboardShortcut, SidebarTogglableContext } from "@/common"
6+
import { useSidebarOpen } from "../../data"
7+
import useDiffbarOpen from "../../data/useDiffbarOpen"
8+
import { useProjectSelection } from "@/features/projects/data"
9+
import PrimaryContainer from "./primary/Container"
10+
import SecondaryContainer from "./secondary/Container"
11+
import RightContainer from "./tertiary/RightContainer"
1212

1313
const ClientSplitView = ({
1414
sidebar,
1515
children,
16-
sidebarRight,
16+
sidebarRight
1717
}: {
18-
sidebar: React.ReactNode;
19-
children?: React.ReactNode;
20-
sidebarRight?: React.ReactNode;
18+
sidebar: React.ReactNode
19+
children?: React.ReactNode
20+
sidebarRight?: React.ReactNode
2121
}) => {
22-
const [isSidebarOpen, setSidebarOpen] = useSidebarOpen();
23-
const [isRightSidebarOpen, setRightSidebarOpen] = useDiffbarOpen();
24-
const { specification } = useProjectSelection();
25-
const isSidebarTogglable = useContext(SidebarTogglableContext);
26-
const theme = useTheme();
22+
const [isSidebarOpen, setSidebarOpen] = useSidebarOpen()
23+
const [isRightSidebarOpen, setRightSidebarOpen] = useDiffbarOpen()
24+
const { specification } = useProjectSelection()
25+
const isSidebarTogglable = useContext(SidebarTogglableContext)
26+
const theme = useTheme()
2727
// Determine if the screen size is small or larger
28-
const isSM = useMediaQuery(theme.breakpoints.up("sm"));
28+
const isSM = useMediaQuery(theme.breakpoints.up("sm"))
2929

3030
useEffect(() => {
3131
if (!isSidebarTogglable && !isSidebarOpen) {
32-
setSidebarOpen(true);
32+
setSidebarOpen(true)
3333
}
34-
}, [isSidebarOpen, isSidebarTogglable, setSidebarOpen]);
34+
}, [isSidebarOpen, isSidebarTogglable, setSidebarOpen])
3535

3636
// Close diff sidebar if no specification is selected
3737
useEffect(() => {
3838
if (!specification && isRightSidebarOpen) {
39-
setRightSidebarOpen(false);
39+
setRightSidebarOpen(false)
4040
}
41-
}, [specification, isRightSidebarOpen, setRightSidebarOpen]);
42-
useKeyboardShortcut(
43-
(event) => {
44-
const isActionKey = isMac() ? event.metaKey : event.ctrlKey;
45-
if (isActionKey && event.key === ".") {
46-
event.preventDefault();
47-
if (isSidebarTogglable) {
48-
setSidebarOpen(!isSidebarOpen);
49-
}
41+
}, [specification, isRightSidebarOpen, setRightSidebarOpen])
42+
useKeyboardShortcut(event => {
43+
const isActionKey = isMac() ? event.metaKey : event.ctrlKey
44+
if (isActionKey && event.key === ".") {
45+
event.preventDefault()
46+
if (isSidebarTogglable) {
47+
setSidebarOpen(!isSidebarOpen)
5048
}
51-
},
52-
[isSidebarTogglable, setSidebarOpen]
53-
);
49+
}
50+
}, [isSidebarTogglable, setSidebarOpen])
5451

55-
useKeyboardShortcut(
56-
(event) => {
57-
const isActionKey = isMac() ? event.metaKey : event.ctrlKey;
58-
if (isActionKey && event.key === "k") {
59-
event.preventDefault();
60-
setRightSidebarOpen(!isRightSidebarOpen);
61-
}
62-
},
63-
[isRightSidebarOpen, setRightSidebarOpen]
64-
);
52+
useKeyboardShortcut(event => {
53+
const isActionKey = isMac() ? event.metaKey : event.ctrlKey
54+
if (isActionKey && event.key === "k") {
55+
event.preventDefault()
56+
setRightSidebarOpen(!isRightSidebarOpen)
57+
}
58+
}, [isRightSidebarOpen, setRightSidebarOpen])
6559

66-
const sidebarWidth = 320;
67-
const diffWidth = 320;
60+
const sidebarWidth = 320
61+
const diffWidth = 320
6862

6963
return (
7064
<Stack direction="row" spacing={0} sx={{ width: "100%", height: "100%" }}>
@@ -75,13 +69,7 @@ const ClientSplitView = ({
7569
>
7670
{sidebar}
7771
</PrimaryContainer>
78-
<SecondaryContainer
79-
isSM={isSM}
80-
sidebarWidth={sidebarWidth}
81-
offsetContent={isSidebarOpen}
82-
diffWidth={diffWidth}
83-
offsetDiffContent={isRightSidebarOpen}
84-
>
72+
<SecondaryContainer isSM={isSM} sidebarWidth={sidebarWidth} offsetContent={isSidebarOpen} diffWidth={diffWidth} offsetDiffContent={isRightSidebarOpen}>
8573
{children}
8674
</SecondaryContainer>
8775
<RightContainer
@@ -92,7 +80,7 @@ const ClientSplitView = ({
9280
{sidebarRight}
9381
</RightContainer>
9482
</Stack>
95-
);
96-
};
83+
)
84+
}
9785

98-
export default ClientSplitView;
86+
export default ClientSplitView

0 commit comments

Comments
 (0)