@@ -19,6 +19,7 @@ import {
19
19
AlertDialogHeader ,
20
20
AlertDialogBody ,
21
21
AlertDialogFooter ,
22
+ useBreakpointValue ,
22
23
} from "@chakra-ui/react" ;
23
24
import { FiMenu } from "react-icons/fi" ;
24
25
import { IconType } from "react-icons" ;
@@ -45,6 +46,7 @@ export default function SimpleSidebar() {
45
46
const { isOpen, onOpen, onClose } = useDisclosure ( ) ;
46
47
const navigate = useNavigate ( ) ;
47
48
const [ selectedPath , setSelectedPath ] = useState ( "/" ) ;
49
+ const isMobile = useBreakpointValue ( { base : true , md : false } ) ;
48
50
const bg = useColorModeValue ( "gray.100" , "gray.900" ) ;
49
51
const sidebarBg = useColorModeValue ( "white" , "gray.900" ) ;
50
52
const borderColor = useColorModeValue ( "gray.200" , "gray.700" ) ;
@@ -53,43 +55,60 @@ export default function SimpleSidebar() {
53
55
54
56
return (
55
57
< Box minH = "100vh" bg = { bg } >
56
- < SidebarContent
57
- onClose = { onClose }
58
- display = { { base : "none" , md : "block" } }
59
- navigate = { navigate }
60
- selectedPath = { selectedPath }
61
- setSelectedPath = { setSelectedPath }
62
- bg = { sidebarBg }
63
- borderColor = { borderColor }
64
- />
65
- < Drawer
66
- isOpen = { isOpen }
67
- placement = "left"
68
- onClose = { onClose }
69
- returnFocusOnClose = { false }
70
- onOverlayClick = { onClose }
71
- size = "full"
72
- >
73
- < DrawerContent >
58
+ { isMobile ? (
59
+ < Flex
60
+ direction = "column"
61
+ align = "center"
62
+ justify = "center"
63
+ h = "100vh"
64
+ w = "100vw"
65
+ bg = "gray.200"
66
+ >
67
+ < Text fontSize = "xl" mb = "4" >
68
+ 現在モバイル幅での表示はサポートしていません。
69
+ </ Text >
70
+ </ Flex >
71
+ ) : (
72
+ < >
74
73
< SidebarContent
75
74
onClose = { onClose }
75
+ display = { { base : "none" , md : "block" } }
76
76
navigate = { navigate }
77
77
selectedPath = { selectedPath }
78
78
setSelectedPath = { setSelectedPath }
79
79
bg = { sidebarBg }
80
80
borderColor = { borderColor }
81
81
/>
82
- </ DrawerContent >
83
- </ Drawer >
84
- < MobileNav
85
- display = { { base : "flex" , md : "none" } }
86
- onOpen = { onOpen }
87
- bg = { mobileNavBg }
88
- borderColor = { mobileBorderColor }
89
- />
90
- < Box ml = { { base : 0 } } p = "4" >
91
- { /* ここで各コンポーネントの中身を表示 */ }
92
- </ Box >
82
+ < Drawer
83
+ isOpen = { isOpen }
84
+ placement = "left"
85
+ onClose = { onClose }
86
+ returnFocusOnClose = { false }
87
+ onOverlayClick = { onClose }
88
+ size = "full"
89
+ >
90
+ < DrawerContent >
91
+ < SidebarContent
92
+ onClose = { onClose }
93
+ navigate = { navigate }
94
+ selectedPath = { selectedPath }
95
+ setSelectedPath = { setSelectedPath }
96
+ bg = { sidebarBg }
97
+ borderColor = { borderColor }
98
+ />
99
+ </ DrawerContent >
100
+ </ Drawer >
101
+ < MobileNav
102
+ display = { { base : "flex" , md : "none" } }
103
+ onOpen = { onOpen }
104
+ bg = { mobileNavBg }
105
+ borderColor = { mobileBorderColor }
106
+ />
107
+ < Box ml = { { base : 0 } } p = "4" >
108
+ { /* ここで各コンポーネントの中身を表示 */ }
109
+ </ Box >
110
+ </ >
111
+ ) }
93
112
</ Box >
94
113
) ;
95
114
}
0 commit comments