-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathbasic.tsx
More file actions
65 lines (61 loc) · 2.81 KB
/
basic.tsx
File metadata and controls
65 lines (61 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import type { FC } from 'react';
import React, { useRef, useState, useContext, useEffect } from 'react';
import { useSearchParams } from 'react-router-dom';
import { HideMenusContext } from '../../shares/HideMenusContext';
import type { AlignPropType } from '@public-ui/components';
import { KolDrawer, KolButton, KolBadge } from '@public-ui/react';
import { SampleDescription } from '../SampleDescription';
import { DrawerRadioAlign } from './partials/align';
export const DrawerBasic: FC = () => {
const [searchParams] = useSearchParams();
const defaultAlign = searchParams.get('align') as AlignPropType;
const hideMenus = useContext(HideMenusContext);
const drawerElement = useRef<HTMLKolDrawerElement>(null);
const drawerModalElement = useRef<HTMLKolDrawerElement>(null);
const [align, setAlign] = useState<AlignPropType>(defaultAlign || 'left');
useEffect(() => {
if (defaultAlign) {
drawerModalElement.current?.open();
}
}, [defaultAlign]);
return (
<>
{!hideMenus && <KolBadge className="block mb-3" _label="Component is a DRAFT - Don't use in production yet." _color="#db5461" />}
<SampleDescription>
<p>
KolDrawer shows a dialog attached to one of the sides of the viewport, when opened. This sample illustrates the four alignments and the modal- and
non-modal modes.
</p>
</SampleDescription>
<DrawerRadioAlign value={align} onChange={(_, value) => setAlign(value as AlignPropType)} />
<div className="flex flex-wrap gap-4">
<KolDrawer ref={drawerElement} _label="I am a drawer" _align={align} _on={{ onClose: () => console.log('Drawer onClose triggered!') }}>
<div className={align === 'left' || align == 'right' ? 'drawer-content-vertical' : ''}>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
</p>
<KolButton _label="Close drawer" _on={{ onClick: () => drawerElement.current?.close() }} />
</div>
</KolDrawer>
<KolButton _label="Open drawer" _on={{ onClick: () => drawerElement.current?.open() }} />
<KolDrawer
ref={drawerModalElement}
_modal
_align={align}
_label="I am a Drawer Modal"
_on={{ onClose: () => console.log('Drawer Modal onClose triggered!') }}
>
<div className={align === 'left' || align == 'right' ? 'drawer-content-vertical' : ''}>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua.
</p>
<KolButton _label="Close drawer modal" _on={{ onClick: () => drawerModalElement.current?.close() }} />
</div>
</KolDrawer>
<KolButton _label="Open drawer as modal" _on={{ onClick: () => drawerModalElement.current?.open() }} />
</div>
</>
);
};