Skip to content

Commit 57dd526

Browse files
committed
Added Doc Example for Drawer
1 parent c82207a commit 57dd526

File tree

4 files changed

+98
-42
lines changed

4 files changed

+98
-42
lines changed
Lines changed: 71 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,77 @@
1-
import React, { useState } from "react";
2-
import { Button, Drawer, Flex } from "playbook-ui";
1+
import React, { useState, useEffect } from "react"
2+
import { Button, Drawer, Icon, Nav, NavItem } from "playbook-ui"
33

4-
const useDrawer = (visible = false) => {
5-
const [opened, setOpened] = useState(visible);
6-
const toggle = () => setOpened(!opened);
4+
const DrawerMenu = () => {
5+
const [isSmallScreen, setIsSmallScreen] = useState(false)
6+
const navItems = ["Overview", "Albums", "Similar Artists"]
77

8-
return [opened, toggle];
9-
};
10-
11-
const DrawerBreakpoints = () => {
12-
const [smallDrawerOpened, toggleSmallDrawer] = useDrawer();
8+
useEffect(() => {
9+
const mediaQuery = window.matchMedia("(max-width: 992px)")
10+
const updateScreen = (e) => setIsSmallScreen(e.matches)
11+
updateScreen(mediaQuery)
12+
mediaQuery.addEventListener('change', updateScreen)
13+
return () => mediaQuery.removeEventListener('change', updateScreen)
14+
}, [])
1315

1416
return (
15-
<>
16-
<Flex wrap>
17-
<Button
18-
id="sm"
19-
marginRight="md"
20-
onClick={toggleSmallDrawer}
21-
>
22-
{"Will open at small breakpoint"}
23-
</Button>
24-
</Flex>
25-
<Flex>
26-
<Drawer
27-
behavior={"push"}
28-
breakpoint="sm"
29-
onClose={toggleSmallDrawer}
30-
opened={smallDrawerOpened}
31-
overlay={false}
32-
placement={"right"}
33-
size={"lg"}
17+
<div>
18+
<Button id='sidebar'
19+
padding='xs'
20+
>
21+
<Icon icon='bars'
22+
size='2x'
23+
/>
24+
</Button>
25+
<Drawer
26+
behavior={"push"}
27+
breakpoint='md'
28+
overlay={isSmallScreen ? true : false}
29+
placement='left'
30+
size='md'
31+
triggerId='sidebar'
32+
>
33+
<Nav
34+
link='#'
35+
orientation='vertical'
36+
padding={isSmallScreen ? "none" : "sm"}
37+
variant='bold'
3438
>
35-
Open because small breakpoint
36-
</Drawer>
37-
</Flex>
38-
</>
39-
);
40-
};
39+
{navItems.map((text, index) => {
40+
return (
41+
<NavItem
42+
collapsible
43+
collapsibleTrail
44+
fontWeight='bolder'
45+
iconLeft='city'
46+
iconRight={["plus", "minus"]}
47+
key={index}
48+
link='#'
49+
text={text}
50+
>
51+
<NavItem fontSize='small'
52+
link='#'
53+
marginY='none'
54+
text='City'
55+
/>
56+
<NavItem
57+
fontSize='small'
58+
link='#'
59+
marginY='none'
60+
text='People'
61+
/>
62+
<NavItem
63+
fontSize='small'
64+
link='#'
65+
marginY='none'
66+
text='Business'
67+
/>
68+
</NavItem>
69+
)
70+
})}
71+
</Nav>
72+
</Drawer>
73+
</div>
74+
)
75+
}
4176

42-
export default DrawerBreakpoints;
77+
export default DrawerMenu

playbook/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ const DrawerMenu = () => {
88
const mediaQuery = window.matchMedia("(max-width: 600px)")
99
setIsSmallScreen(mediaQuery.matches)
1010
const handler = (e) => setIsSmallScreen(e.matches)
11-
mediaQuery.addEventListener('change', handler)
12-
return () => mediaQuery.removeEventListener('change', handler)
11+
mediaQuery.addEventListener("change", handler)
12+
return () => mediaQuery.removeEventListener("change", handler)
1313
}, [])
1414

1515
return (
@@ -22,17 +22,17 @@ const DrawerMenu = () => {
2222
/>
2323
</Button>
2424
<Drawer
25-
breakpoint="md"
25+
breakpoint='md'
2626
placement='bottom'
2727
size='full'
2828
triggerId='menuButton'
2929
withinElement
3030
>
31-
<Nav
31+
<Nav
3232
highlight={false}
3333
link='#'
34-
orientation={isSmallScreen ? 'vertical' : 'horizontal'}
35-
padding={isSmallScreen ? 'none' : 'sm'}
34+
orientation={isSmallScreen ? "vertical" : "horizontal"}
35+
padding={isSmallScreen ? "none" : "sm"}
3636
>
3737
<NavItem link='#'
3838
text='About'

playbook/app/pb_kits/playbook/pb_drawer/docs/example.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ examples:
1010
- drawer_menu: Within Element
1111
- drawer_sizes: Sizes
1212
- drawer_overlay: Overlay
13+
- drawer_breakpoints: Breakpoints
1314
- drawer_borders: Borders

yarn.lock

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1989,6 +1989,13 @@
19891989
dependencies:
19901990
regenerator-runtime "^0.13.11"
19911991

1992+
"@babel/runtime@^7.23.8":
1993+
version "7.26.7"
1994+
resolved "https://npm.powerapp.cloud/@babel/runtime/-/runtime-7.26.7.tgz#f4e7fe527cd710f8dc0618610b61b4b060c3c341"
1995+
integrity sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==
1996+
dependencies:
1997+
regenerator-runtime "^0.14.0"
1998+
19921999
"@babel/runtime@^7.7.6":
19932000
version "7.24.8"
19942001
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e"
@@ -8704,6 +8711,14 @@ markdown-it@^13.0.1:
87048711
mdurl "^1.0.1"
87058712
uc.micro "^1.0.5"
87068713

8714+
match-sorter@^8.0.0:
8715+
version "8.0.0"
8716+
resolved "https://npm.powerapp.cloud/match-sorter/-/match-sorter-8.0.0.tgz#9120e35ed8aabf45cd40e127b0231f762fb2eec0"
8717+
integrity sha512-bGJ6Zb+OhzXe+ptP5d80OLVx7AkqfRbtGEh30vNSfjNwllu+hHI+tcbMIT/fbkx/FKN1PmKuDb65+Oofg+XUxw==
8718+
dependencies:
8719+
"@babel/runtime" "^7.23.8"
8720+
remove-accents "0.5.0"
8721+
87078722
mdurl@^1.0.1:
87088723
version "1.0.1"
87098724
resolved "https://npm.powerapp.cloud/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@@ -10386,6 +10401,11 @@ regjsparser@^0.9.1:
1038610401
dependencies:
1038710402
jsesc "~0.5.0"
1038810403

10404+
10405+
version "0.5.0"
10406+
resolved "https://npm.powerapp.cloud/remove-accents/-/remove-accents-0.5.0.tgz#77991f37ba212afba162e375b627631315bed687"
10407+
integrity sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==
10408+
1038910409
remove-trailing-separator@^1.0.1:
1039010410
version "1.1.0"
1039110411
resolved "https://npm.powerapp.cloud/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"

0 commit comments

Comments
 (0)