Skip to content

Commit 8b6aa3b

Browse files
committed
update drawer behavior when other drawer is opened
1 parent 16bbed2 commit 8b6aa3b

File tree

2 files changed

+40
-16
lines changed

2 files changed

+40
-16
lines changed

packages/dev/src/AppCustomDrawer.tsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,10 @@ const App: React.FC<AppProps> = ({ children, showCardFooters }) => {
9292
};
9393

9494
const [modalOpen, setModalOpen] = React.useState<boolean>(false);
95-
const onClose = () => setActiveQuickStartID('');
95+
const onClose = () => {
96+
setActiveQuickStartID('');
97+
setDrawerContent('none');
98+
};
9699
const handleClose = (activeQuickStartStatus: string | number) => {
97100
if (activeQuickStartStatus === QuickStartStatus.IN_PROGRESS) {
98101
setModalOpen(true);
@@ -107,14 +110,14 @@ const App: React.FC<AppProps> = ({ children, showCardFooters }) => {
107110
};
108111
const onModalCancel = () => setModalOpen(false);
109112

110-
const [otherDrawerOpen, setOtherDrawerOpen] = React.useState(false);
113+
const [drawerContent, setDrawerContent] = React.useState('none');
111114

112115
const otherDrawerPanelContent = (
113116
<DrawerPanelContent>
114117
<DrawerHead>
115-
<span tabIndex={otherDrawerOpen ? 0 : -1}>Drawer panel header</span>
118+
<span tabIndex={drawerContent === 'custom' ? 0 : -1}>Drawer panel header</span>
116119
<DrawerActions>
117-
<DrawerCloseButton onClick={() => setOtherDrawerOpen(false)} />
120+
<DrawerCloseButton onClick={() => setDrawerContent('none')} />
118121
</DrawerActions>
119122
</DrawerHead>
120123
<DrawerPanelDescription>Drawer panel description</DrawerPanelDescription>
@@ -125,10 +128,10 @@ const App: React.FC<AppProps> = ({ children, showCardFooters }) => {
125128
return (
126129
<React.Suspense fallback={<LoadingBox />}>
127130
<QuickStartContainer {...containerProps} isManagedDrawer={false}>
128-
<Drawer isExpanded={activeQuickStartID !== '' || otherDrawerOpen} isInline>
131+
<Drawer isExpanded={drawerContent !== 'none'} isInline>
129132
<DrawerContent
130133
panelContent={
131-
activeQuickStartID !== '' ? (
134+
drawerContent === 'quickstart' || activeQuickStartID !== '' ? (
132135
<QuickStartDrawerContent handleDrawerClose={handleClose} />
133136
) : (
134137
otherDrawerPanelContent
@@ -139,11 +142,20 @@ const App: React.FC<AppProps> = ({ children, showCardFooters }) => {
139142
<Page masthead={AppHeader} sidebar={AppSidebar} isManagedSidebar>
140143
<Button
141144
variant="secondary"
142-
onClick={() => toggleQuickStart('getting-started-with-quick-starts')}
145+
onClick={() => {
146+
toggleQuickStart('getting-started-with-quick-starts');
147+
setDrawerContent('quickstart');
148+
}}
143149
>
144150
Getting started with quick starts
145151
</Button>
146-
<Button variant="secondary" onClick={() => setOtherDrawerOpen(true)}>
152+
<Button
153+
variant="secondary"
154+
onClick={() => {
155+
setActiveQuickStartID('');
156+
setDrawerContent('custom');
157+
}}
158+
>
147159
Open a different drawer
148160
</Button>
149161
{children}

packages/module/patternfly-docs/content/extensions/quick-starts/examples/WithCustomDrawer.jsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ export const App = ({ showCardFooters }) => {
7474
};
7575

7676
const [modalOpen, setModalOpen] = React.useState(false);
77-
const onClose = () => setActiveQuickStartID('');
77+
const onClose = () => {
78+
setActiveQuickStartID('');
79+
setDrawerContent('none');
80+
};
7881
const handleClose = (activeQuickStartStatus) => {
7982
if (activeQuickStartStatus === QuickStartStatus.IN_PROGRESS) {
8083
setModalOpen(true);
@@ -88,14 +91,14 @@ export const App = ({ showCardFooters }) => {
8891
};
8992
const onModalCancel = () => setModalOpen(false);
9093

91-
const [otherDrawerOpen, setOtherDrawerOpen] = React.useState(false);
94+
const [drawerContent, setDrawerContent] = React.useState('none');
9295

9396
const otherDrawerPanelContent = (
9497
<DrawerPanelContent>
9598
<DrawerHead>
96-
<span tabIndex={otherDrawerOpen ? 0 : -1}>Drawer panel header</span>
99+
<span tabIndex={drawerContent === 'custom' ? 0 : -1}>Drawer panel header</span>
97100
<DrawerActions>
98-
<DrawerCloseButton onClick={() => setOtherDrawerOpen(false)} />
101+
<DrawerCloseButton onClick={() => setDrawerContent('none')} />
99102
</DrawerActions>
100103
</DrawerHead>
101104
<DrawerPanelDescription>Drawer panel description</DrawerPanelDescription>
@@ -106,10 +109,10 @@ export const App = ({ showCardFooters }) => {
106109
return (
107110
<React.Suspense fallback={<LoadingBox />}>
108111
<QuickStartContainer {...drawerProps} isManagedDrawer={false}>
109-
<Drawer isExpanded={activeQuickStartID !== '' || otherDrawerOpen} isInline>
112+
<Drawer isExpanded={drawerContent !== 'none'} isInline>
110113
<DrawerContent
111114
panelContent={
112-
activeQuickStartID !== '' ? (
115+
drawerContent === 'quickstart' || activeQuickStartID !== '' ? (
113116
<QuickStartDrawerContent handleDrawerClose={handleClose} />
114117
) : (
115118
otherDrawerPanelContent
@@ -119,11 +122,20 @@ export const App = ({ showCardFooters }) => {
119122
<DrawerContentBody>
120123
<Button
121124
variant="secondary"
122-
onClick={() => setActiveQuickStartID('explore-pipelines')}
125+
onClick={() => {
126+
setActiveQuickStartID('explore-pipelines');
127+
setDrawerContent('quickstart');
128+
}}
123129
>
124130
Getting started with quick starts
125131
</Button>
126-
<Button variant="secondary" onClick={() => setOtherDrawerOpen(true)}>
132+
<Button
133+
variant="secondary"
134+
onClick={() => {
135+
setActiveQuickStartID('');
136+
setDrawerContent('custom');
137+
}}
138+
>
127139
Open a different drawer
128140
</Button>
129141
<QuickStartCatalogPage

0 commit comments

Comments
 (0)