Skip to content

Commit 8e5a7c3

Browse files
authoredMar 10, 2025··
fix(drawer-popover): properly pass asChild as a valid prop (#2080)
2 parents 72b543a + 77f85b2 commit 8e5a7c3

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
 

‎packages/shoreline/src/components/drawer/drawer-popover.tsx

+5
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ export interface DrawerPopoverOptions {
5656
* @default 'medium'
5757
*/
5858
size?: 'small' | 'medium'
59+
/**
60+
* Children composition
61+
* @default false
62+
*/
63+
asChild?: boolean
5964
}
6065

6166
export type DrawerPopoverProps = DrawerPopoverOptions &
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { DrawerProvider } from '../drawer-provider'
2+
import { Button } from '../../button'
3+
import { DrawerTrigger } from '../drawer-trigger'
4+
import { DrawerPopover } from '../drawer-popover'
5+
import { DrawerHeading } from '../drawer-heading'
6+
import { DrawerHeader } from '../drawer-header'
7+
import { DrawerContent } from '../drawer-content'
8+
import { DrawerDismiss } from '../drawer-dismiss'
9+
import { DrawerFooter } from '../drawer-footer'
10+
11+
import { Field, FieldDescription } from '../../field'
12+
import { Label } from '../../label'
13+
import { Input } from '../../input'
14+
15+
import './stories.css'
16+
17+
export default {
18+
title: 'components/drawer',
19+
}
20+
21+
export function PopoverAsChild() {
22+
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
23+
event.preventDefault()
24+
25+
alert('Submitted... Or did it?')
26+
}
27+
28+
const onReset = (event: React.FormEvent<HTMLFormElement>) => {
29+
event.preventDefault()
30+
31+
alert('Reset... Or did it?')
32+
}
33+
34+
return (
35+
<DrawerProvider>
36+
<DrawerTrigger asChild>
37+
<Button>Open</Button>
38+
</DrawerTrigger>
39+
<DrawerPopover asChild>
40+
<form onSubmit={onSubmit} onReset={onReset}>
41+
<DrawerHeader>
42+
<DrawerHeading>Drawer Heading</DrawerHeading>
43+
<DrawerDismiss />
44+
</DrawerHeader>
45+
<DrawerContent>
46+
<Field>
47+
<Label>Test input</Label>
48+
<Input name="test" />
49+
<FieldDescription>Short description</FieldDescription>
50+
</Field>
51+
</DrawerContent>
52+
<DrawerFooter>
53+
<Button size="large" type="reset">
54+
Clear
55+
</Button>
56+
<Button variant="primary" size="large" type="submit">
57+
Submit
58+
</Button>
59+
</DrawerFooter>
60+
</form>
61+
</DrawerPopover>
62+
</DrawerProvider>
63+
)
64+
}

0 commit comments

Comments
 (0)
Please sign in to comment.