1
1
import { Button , SideDrawer } from '@equisoft/design-elements-react' ;
2
- import { forceReRender , Story } from '@storybook/react' ;
3
- import React from 'react' ;
2
+ import { Story } from '@storybook/react' ;
3
+ import React , { useState } from 'react' ;
4
4
import styled from 'styled-components' ;
5
5
6
6
const Box = styled . div `
@@ -19,81 +19,90 @@ export default {
19
19
component : SideDrawer ,
20
20
} ;
21
21
22
- type DrawerType = 'normal' | 'withNestedDrawer' | 'nested' | 'scrollable' | 'left' | 'variableWidth' ;
22
+ export const Normal : Story = ( ) => {
23
+ const [ isDrawerOpen , setDrawerOpen ] = useState ( false ) ;
23
24
24
- const allDrawers = {
25
- normal : false ,
26
- withNestedDrawer : false ,
27
- nested : false ,
28
- scrollable : false ,
29
- left : false ,
30
- variableWidth : false ,
25
+ return (
26
+ < >
27
+ < SideDrawer open = { isDrawerOpen } >
28
+ < h3 > Drawer Content</ h3 >
29
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( false ) } />
30
+ </ SideDrawer >
31
+ < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( true ) } />
32
+ </ >
33
+ ) ;
31
34
} ;
32
35
33
- function toggleDrawer ( drawer : DrawerType ) : void {
34
- allDrawers [ drawer ] = ! allDrawers [ drawer ] ;
35
- forceReRender ( ) ;
36
- }
36
+ export const WithNestedDrawer : Story = ( ) => {
37
+ const [ isDrawerOpen , setDrawerOpen ] = useState ( false ) ;
38
+ const [ isNestedDrawerOpen , setNestedDrawerOpen ] = useState ( false ) ;
37
39
38
- export const Normal : Story = ( ) => (
39
- < >
40
- < SideDrawer open = { allDrawers . normal } >
41
- < h3 > Drawer Content</ h3 >
42
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'normal' ) } />
43
- </ SideDrawer >
44
- < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'normal' ) } />
45
- </ >
46
- ) ;
40
+ return (
41
+ < >
42
+ < SideDrawer open = { isDrawerOpen } >
43
+ < h3 > Drawer Content</ h3 >
44
+ < SideDrawer open = { isNestedDrawerOpen } nested >
45
+ < h3 > Nested Drawer Content</ h3 >
46
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setNestedDrawerOpen ( false ) } />
47
+ </ SideDrawer >
48
+ < Button label = "Open nested drawer" buttonType = "primary" onClick = { ( ) => setNestedDrawerOpen ( true ) } />
49
+ < br />
50
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( false ) } />
51
+ </ SideDrawer >
52
+ < Button
53
+ label = "Click to open side-drawer"
54
+ buttonType = "primary"
55
+ onClick = { ( ) => setDrawerOpen ( true ) }
56
+ />
57
+ </ >
58
+ ) ;
59
+ } ;
47
60
48
- export const WithNestedDrawer : Story = ( ) => (
49
- < >
50
- < SideDrawer open = { allDrawers . withNestedDrawer } >
51
- < h3 > Drawer Content</ h3 >
52
- < SideDrawer open = { allDrawers . nested } nested >
53
- < h3 > Nested Drawer Content</ h3 >
54
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'nested' ) } />
61
+ export const Scrollable : Story = ( ) => {
62
+ const [ isDrawerOpen , setDrawerOpen ] = useState ( false ) ;
63
+
64
+ return (
65
+ < >
66
+ < SideDrawer open = { isDrawerOpen } >
67
+ < h3 > Drawer with scrollable content</ h3 >
68
+ < div >
69
+ { [ ...Array ( 6 ) . keys ( ) ] . map ( ( el ) => < Box key = { el } /> ) }
70
+ </ div >
71
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( false ) } />
55
72
</ SideDrawer >
56
- < Button label = "Open nested drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'nested' ) } />
57
- < br />
58
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'withNestedDrawer' ) } />
59
- </ SideDrawer >
60
- < Button
61
- label = "Click to open side-drawer"
62
- buttonType = "primary"
63
- onClick = { ( ) => toggleDrawer ( 'withNestedDrawer' ) }
64
- />
65
- </ >
66
- ) ;
73
+ < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( true ) } />
74
+ </ >
75
+ ) ;
76
+ } ;
67
77
68
- export const Scrollable : Story = ( ) => (
69
- < >
70
- < SideDrawer open = { allDrawers . scrollable } >
71
- < h3 > Drawer with scrollable content</ h3 >
72
- < div >
73
- { [ ...Array ( 6 ) . keys ( ) ] . map ( ( el ) => < Box key = { el } /> ) }
74
- </ div >
75
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'scrollable' ) } />
76
- </ SideDrawer >
77
- < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'scrollable' ) } />
78
- </ >
79
- ) ;
78
+ export const LeftOrigin : Story = ( ) => {
79
+ const [ isDrawerOpen , setDrawerOpen ] = useState ( false ) ;
80
80
81
- export const LeftOrigin : Story = ( ) => (
82
- < >
83
- < SideDrawer open = { allDrawers . left } drawerOrigin = "left" >
84
- < h3 > Drawer Content</ h3 >
85
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'left' ) } />
86
- </ SideDrawer >
87
- < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'left' ) } />
88
- </ >
89
- ) ;
81
+ return (
82
+ < >
83
+ < SideDrawer open = { isDrawerOpen } drawerOrigin = "left" >
84
+ < h3 > Drawer Content</ h3 >
85
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( false ) } />
86
+ </ SideDrawer >
87
+ < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( true ) } />
88
+ </ >
89
+ ) ;
90
+ } ;
91
+
92
+ export const VariableWidth : Story = ( ) => {
93
+ const [ isDrawerOpen , setDrawerOpen ] = useState ( false ) ;
90
94
91
- export const VariableWidth : Story = ( ) => (
92
- < >
93
- < SideDrawer open = { allDrawers . variableWidth } width = "50%" >
94
- < h3 > Drawer content</ h3 >
95
- < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'variableWidth' ) } />
96
- </ SideDrawer >
97
- < Button label = "Click to open side-drawer" buttonType = "primary" onClick = { ( ) => toggleDrawer ( 'variableWidth' ) } />
98
- </ >
99
- ) ;
95
+ return (
96
+ < >
97
+ < SideDrawer open = { isDrawerOpen } width = "50%" >
98
+ < h3 > Drawer content</ h3 >
99
+ < Button label = "Close drawer" buttonType = "primary" onClick = { ( ) => setDrawerOpen ( false ) } />
100
+ </ SideDrawer >
101
+ < Button
102
+ label = "Click to open side-drawer"
103
+ buttonType = "primary"
104
+ onClick = { ( ) => setDrawerOpen ( true ) }
105
+ />
106
+ </ >
107
+ ) ;
108
+ } ;
0 commit comments