Skip to content

Commit 5809af2

Browse files
authored
feat(docs): add TS examples for single & multiple selection (#3682)
1 parent bff6b36 commit 5809af2

File tree

3 files changed

+81
-2
lines changed

3 files changed

+81
-2
lines changed

apps/docs/content/components/dropdown/multiple-selection.ts

+41
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,49 @@ export default function App() {
3737
);
3838
}`;
3939

40+
const AppTs = `import {Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Button} from "@nextui-org/react";
41+
import type { Selection } from "@nextui-org/react";
42+
43+
export default function App() {
44+
const [selectedKeys, setSelectedKeys] = React.useState<Selection>(new Set(["text"]));
45+
46+
const selectedValue = React.useMemo(
47+
() => Array.from(selectedKeys).join(", ").replaceAll("_", " "),
48+
[selectedKeys]
49+
);
50+
51+
return (
52+
<Dropdown>
53+
<DropdownTrigger>
54+
<Button
55+
variant="bordered"
56+
className="capitalize"
57+
>
58+
{selectedValue}
59+
</Button>
60+
</DropdownTrigger>
61+
<DropdownMenu
62+
aria-label="Multiple selection example"
63+
variant="flat"
64+
closeOnSelect={false}
65+
disallowEmptySelection
66+
selectionMode="multiple"
67+
selectedKeys={selectedKeys}
68+
onSelectionChange={setSelectedKeys}
69+
>
70+
<DropdownItem key="text">Text</DropdownItem>
71+
<DropdownItem key="number">Number</DropdownItem>
72+
<DropdownItem key="date">Date</DropdownItem>
73+
<DropdownItem key="single_date">Single Date</DropdownItem>
74+
<DropdownItem key="iteration">Iteration</DropdownItem>
75+
</DropdownMenu>
76+
</Dropdown>
77+
);
78+
}`;
79+
4080
const react = {
4181
"/App.jsx": App,
82+
"/App.tsx": AppTs,
4283
};
4384

4485
export default {

apps/docs/content/components/dropdown/single-selection.ts

+40
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,48 @@ export default function App() {
3636
);
3737
}`;
3838

39+
const AppTs = `import {Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Button} from "@nextui-org/react";
40+
import type { Selection } from "@nextui-org/react";
41+
42+
export default function App() {
43+
const [selectedKeys, setSelectedKeys] = React.useState<Selection>(new Set(["text"]));
44+
45+
const selectedValue = React.useMemo(
46+
() => Array.from(selectedKeys).join(", ").replaceAll("_", " "),
47+
[selectedKeys]
48+
);
49+
50+
return (
51+
<Dropdown>
52+
<DropdownTrigger>
53+
<Button
54+
variant="bordered"
55+
className="capitalize"
56+
>
57+
{selectedValue}
58+
</Button>
59+
</DropdownTrigger>
60+
<DropdownMenu
61+
aria-label="Single selection example"
62+
variant="flat"
63+
disallowEmptySelection
64+
selectionMode="single"
65+
selectedKeys={selectedKeys}
66+
onSelectionChange={setSelectedKeys}
67+
>
68+
<DropdownItem key="text">Text</DropdownItem>
69+
<DropdownItem key="number">Number</DropdownItem>
70+
<DropdownItem key="date">Date</DropdownItem>
71+
<DropdownItem key="single_date">Single Date</DropdownItem>
72+
<DropdownItem key="iteration">Iteration</DropdownItem>
73+
</DropdownMenu>
74+
</Dropdown>
75+
);
76+
}`;
77+
3978
const react = {
4079
"/App.jsx": App,
80+
"/App.tsx": AppTs,
4181
};
4282

4383
export default {

apps/docs/content/docs/components/dropdown.mdx

-2
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ You can set the `selectionMode` property as `single` to allow the user to select
9797

9898
<CodeDemo
9999
title="Single Selection"
100-
highlightedLines="26-28"
101100
files={dropdownContent.singleSelection}
102101
/>
103102

@@ -107,7 +106,6 @@ You can set the `selectionMode` property as `multiple` to allow the user to sele
107106

108107
<CodeDemo
109108
title="Multiple Selection"
110-
highlightedLines="26-28"
111109
files={dropdownContent.multipleSelection}
112110
/>
113111

0 commit comments

Comments
 (0)