|
1 | 1 | import React, {useState, useRef, useCallback} from 'react' |
2 | | -import ReactDOM from 'react-dom' |
3 | 2 | import {Meta} from '@storybook/react' |
4 | 3 | import styled from 'styled-components' |
5 | | -import {TriangleDownIcon, PlusIcon} from '@primer/octicons-react' |
6 | | -import { |
7 | | - BaseStyles, |
8 | | - Overlay, |
9 | | - Button, |
10 | | - ButtonInvisible, |
11 | | - ButtonPrimary, |
12 | | - ButtonGroup, |
13 | | - Text, |
14 | | - ButtonDanger, |
15 | | - ThemeProvider, |
16 | | - Box, |
17 | | - StyledOcticon, |
18 | | - Checkbox, |
19 | | - ChoiceInputField, |
20 | | - TextInput, |
21 | | - ActionList |
22 | | -} from '..' |
| 4 | +import {BaseStyles, Overlay, Button, Text, ButtonDanger, ThemeProvider, Box} from '..' |
23 | 5 | import type {AnchorSide} from '@primer/behaviors' |
24 | 6 | import {DropdownMenu, DropdownButton} from '../DropdownMenu' |
25 | 7 | import {ItemInput} from '../ActionList/List' |
@@ -229,97 +211,3 @@ export const OverlayOnTopOfOverlay = ({anchorSide}: OverlayProps) => { |
229 | 211 | </Box> |
230 | 212 | ) |
231 | 213 | } |
232 | | - |
233 | | -export const NestedOverlays = () => { |
234 | | - const [listOverlayOpen, setListOverlayOpen] = React.useState(false) |
235 | | - const [createListOverlayOpen, setCreateListOverlayOpen] = React.useState(false) |
236 | | - |
237 | | - const buttonRef = useRef<HTMLButtonElement>(null) |
238 | | - const secondaryButtonRef = useRef<HTMLButtonElement>(null) |
239 | | - |
240 | | - React.useEffect(() => { |
241 | | - // eslint-disable-next-line no-console |
242 | | - const handler = (event: KeyboardEvent) => console.log('global handler:', event.key) |
243 | | - document.addEventListener('keydown', handler) |
244 | | - return () => document.removeEventListener('keydown', handler) |
245 | | - }, []) |
246 | | - |
247 | | - const hostElement = document.createElement('div') |
248 | | - ReactDOM.render(<div>hello</div>, hostElement) |
249 | | - |
250 | | - return ( |
251 | | - <div> |
252 | | - <TextInput /> |
253 | | - <ButtonGroup display="block" my={2}> |
254 | | - <Button>Star</Button> |
255 | | - <Button |
256 | | - aria-label="Add this repository to a list" |
257 | | - ref={buttonRef} |
258 | | - onClick={() => setListOverlayOpen(!listOverlayOpen)} |
259 | | - sx={{paddingX: 2}} |
260 | | - > |
261 | | - <TriangleDownIcon /> |
262 | | - </Button> |
263 | | - </ButtonGroup> |
264 | | - {listOverlayOpen && ( |
265 | | - <Overlay |
266 | | - width="medium" |
267 | | - onEscape={() => setListOverlayOpen(false)} |
268 | | - onClickOutside={() => setListOverlayOpen(false)} |
269 | | - returnFocusRef={buttonRef} |
270 | | - ignoreClickRefs={[buttonRef]} |
271 | | - top={60} |
272 | | - left={16} |
273 | | - > |
274 | | - <Box sx={{display: 'flex', flexDirection: 'column', py: 2}}> |
275 | | - <Box sx={{paddingX: 3}}> |
276 | | - <Text color="fg.muted" sx={{fontSize: 1}}> |
277 | | - Add to list |
278 | | - </Text> |
279 | | - <Box sx={{marginY: 1}}> |
280 | | - <ChoiceInputField> |
281 | | - <ChoiceInputField.Label>My stack</ChoiceInputField.Label> |
282 | | - <Checkbox /> |
283 | | - </ChoiceInputField> |
284 | | - <ChoiceInputField> |
285 | | - <ChoiceInputField.Label>Want to try</ChoiceInputField.Label> |
286 | | - <Checkbox /> |
287 | | - </ChoiceInputField> |
288 | | - </Box> |
289 | | - </Box> |
290 | | - <ActionList.Divider /> |
291 | | - <ButtonInvisible |
292 | | - ref={secondaryButtonRef} |
293 | | - sx={{textAlign: 'left', px: 2, mx: 2}} |
294 | | - onClick={() => setCreateListOverlayOpen(!createListOverlayOpen)} |
295 | | - > |
296 | | - <StyledOcticon icon={PlusIcon} sx={{mr: 1}} /> |
297 | | - Create list |
298 | | - </ButtonInvisible> |
299 | | - </Box> |
300 | | - {createListOverlayOpen && ( |
301 | | - <Overlay |
302 | | - width="large" |
303 | | - onEscape={() => setCreateListOverlayOpen(false)} |
304 | | - onClickOutside={() => setCreateListOverlayOpen(false)} |
305 | | - returnFocusRef={secondaryButtonRef} |
306 | | - ignoreClickRefs={[secondaryButtonRef]} |
307 | | - top={120} |
308 | | - left={64} |
309 | | - > |
310 | | - <Box as="form" sx={{display: 'flex', flexDirection: 'column', p: 3}}> |
311 | | - <Text color="fg.muted" sx={{fontSize: 1, mb: 3}}> |
312 | | - Create a list to organize your starred repositories. |
313 | | - </Text> |
314 | | - <TextInput placeholder="Name this list" sx={{mb: 2}} /> |
315 | | - <TextInput as="textarea" placeholder="Write a description" rows="3" sx={{mb: 2, textarea: {p: 2}}} /> |
316 | | - |
317 | | - <ButtonPrimary onClick={() => setCreateListOverlayOpen(!createListOverlayOpen)}>Create</ButtonPrimary> |
318 | | - </Box> |
319 | | - </Overlay> |
320 | | - )} |
321 | | - </Overlay> |
322 | | - )} |
323 | | - </div> |
324 | | - ) |
325 | | -} |
0 commit comments