@tamagui/demos 1.79.11 → 1.79.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ContextMenuDemo.js +194 -0
- package/dist/cjs/ContextMenuDemo.js.map +6 -0
- package/dist/cjs/ContextMenuDemo.native.js +195 -0
- package/dist/cjs/ContextMenuDemo.native.js.map +6 -0
- package/dist/cjs/DropDownMenuDemo.js +182 -0
- package/dist/cjs/DropDownMenuDemo.js.map +6 -0
- package/dist/cjs/DropDownMenuDemo.native.js +183 -0
- package/dist/cjs/DropDownMenuDemo.native.js.map +6 -0
- package/dist/esm/ContextMenuDemo.js +173 -0
- package/dist/esm/ContextMenuDemo.js.map +6 -0
- package/dist/esm/ContextMenuDemo.native.js +173 -0
- package/dist/esm/ContextMenuDemo.native.js.map +6 -0
- package/dist/esm/DropDownMenuDemo.js +160 -0
- package/dist/esm/DropDownMenuDemo.js.map +6 -0
- package/dist/esm/DropDownMenuDemo.native.js +160 -0
- package/dist/esm/DropDownMenuDemo.native.js.map +6 -0
- package/dist/jsx/ContextMenuDemo.js +147 -0
- package/dist/jsx/ContextMenuDemo.js.map +6 -0
- package/dist/jsx/ContextMenuDemo.native.js +147 -0
- package/dist/jsx/ContextMenuDemo.native.js.map +6 -0
- package/dist/jsx/DropDownMenuDemo.js +137 -0
- package/dist/jsx/DropDownMenuDemo.js.map +6 -0
- package/dist/jsx/DropDownMenuDemo.native.js +137 -0
- package/dist/jsx/DropDownMenuDemo.native.js.map +6 -0
- package/package.json +18 -18
- package/types/ContextMenuDemo.d.ts.map +1 -0
- package/types/DropDownMenuDemo.d.ts.map +1 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { isAndroid, isWeb } from "@tamagui/core";
|
|
2
|
+
import { DropdownMenu } from "@tamagui/dropdown-menu";
|
|
3
|
+
import { Backpack, Calendar, Check } from "@tamagui/lucide-icons";
|
|
4
|
+
import { ChevronRight } from "@tamagui/lucide-icons";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Button, Text, useEvent } from "tamagui";
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
function DropDownMenuDemo() {
|
|
9
|
+
const [bookmarksChecked, setBookmarksChecked] = React.useState(!0), [native, setNative] = React.useState(!1), onSelect = useEvent(() => {
|
|
10
|
+
});
|
|
11
|
+
return /* @__PURE__ */ jsxs(
|
|
12
|
+
DropdownMenu,
|
|
13
|
+
{
|
|
14
|
+
offset: {
|
|
15
|
+
crossAxis: 25
|
|
16
|
+
},
|
|
17
|
+
allowFlip: !0,
|
|
18
|
+
native,
|
|
19
|
+
placement: "bottom-start",
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: !0, children: /* @__PURE__ */ jsx(Button, { width: 60, children: /* @__PURE__ */ jsx(Backpack, {}) }) }),
|
|
22
|
+
/* @__PURE__ */ jsx(DropdownMenu.Portal, { zIndex: 100, children: /* @__PURE__ */ jsxs(
|
|
23
|
+
DropdownMenu.Content,
|
|
24
|
+
{
|
|
25
|
+
paddingHorizontal: 0,
|
|
26
|
+
maxWidth: 180,
|
|
27
|
+
borderWidth: 1,
|
|
28
|
+
ai: "flex-start",
|
|
29
|
+
borderColor: "$borderColor",
|
|
30
|
+
enterStyle: { y: -10, opacity: 0 },
|
|
31
|
+
exitStyle: { y: -10, opacity: 0 },
|
|
32
|
+
elevate: !0,
|
|
33
|
+
animation: [
|
|
34
|
+
"quick",
|
|
35
|
+
{
|
|
36
|
+
opacity: {
|
|
37
|
+
overshootClamping: !0
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
children: [
|
|
42
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "About Notes" }) }, "about-notes"),
|
|
43
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
44
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Group, { children: [
|
|
45
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Settings" }) }, "settings"),
|
|
46
|
+
/* @__PURE__ */ jsxs(
|
|
47
|
+
DropdownMenu.Item,
|
|
48
|
+
{
|
|
49
|
+
onSelect,
|
|
50
|
+
jc: "space-between",
|
|
51
|
+
textValue: "Calender",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: /* @__PURE__ */ jsx(Text, { children: "Calender" }) }),
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
DropdownMenu.ItemIcon,
|
|
56
|
+
{
|
|
57
|
+
androidIconName: "ic_menu_today",
|
|
58
|
+
ios: {
|
|
59
|
+
name: "u.square",
|
|
60
|
+
hierarchicalColor: "#000",
|
|
61
|
+
pointSize: 20
|
|
62
|
+
},
|
|
63
|
+
children: /* @__PURE__ */ jsx(Calendar, { color: "gray", size: "$1" })
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"accounts"
|
|
69
|
+
)
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
72
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Group, { children: [
|
|
73
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, disabled: !0, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { color: "gray", children: "Locked" }) }, "close-notes"),
|
|
74
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, destructive: !0, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Delete all" }) }, "delete-all")
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
77
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Sub, { placement: "right-start", children: [
|
|
78
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubTrigger, { jc: "space-between", children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
79
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Actions" }),
|
|
80
|
+
!native || isWeb ? /* @__PURE__ */ jsx(ChevronRight, { size: "$1" }) : null
|
|
81
|
+
] }) }, "actions-trigger"),
|
|
82
|
+
/* @__PURE__ */ jsx(DropdownMenu.Portal, { zIndex: 200, children: /* @__PURE__ */ jsxs(
|
|
83
|
+
DropdownMenu.SubContent,
|
|
84
|
+
{
|
|
85
|
+
enterStyle: { y: -10, opacity: 0 },
|
|
86
|
+
exitStyle: { y: -10, opacity: 0 },
|
|
87
|
+
elevate: !0,
|
|
88
|
+
animation: [
|
|
89
|
+
"quick",
|
|
90
|
+
{
|
|
91
|
+
opacity: {
|
|
92
|
+
overshootClamping: !0
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
paddingHorizontal: 0,
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsx(DropdownMenu.Label, { fontSize: "$1", children: "Note settings" }),
|
|
99
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Create note" }) }, "create-note"),
|
|
100
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Delete all notes" }) }, "delete-all"),
|
|
101
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Sync notes" }) }, "sync-all")
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
) })
|
|
105
|
+
] }),
|
|
106
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, { className: "DropdownMenuSeparator" }),
|
|
107
|
+
/* @__PURE__ */ jsxs(
|
|
108
|
+
DropdownMenu.CheckboxItem,
|
|
109
|
+
{
|
|
110
|
+
checked: bookmarksChecked,
|
|
111
|
+
onCheckedChange: setBookmarksChecked,
|
|
112
|
+
value: bookmarksChecked ? "on" : "off",
|
|
113
|
+
onValueChange: (v) => setBookmarksChecked(v == "on"),
|
|
114
|
+
...isAndroid && native && {
|
|
115
|
+
onSelect: () => {
|
|
116
|
+
isAndroid && setBookmarksChecked(!bookmarksChecked);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
gap: "$2",
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { className: "DropdownMenuItemIndicator", children: /* @__PURE__ */ jsx(Check, { size: "$1" }) }),
|
|
122
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Mark as read" }),
|
|
123
|
+
isAndroid && native && bookmarksChecked && /* @__PURE__ */ jsx(DropdownMenu.ItemIcon, { androidIconName: "checkbox_on_background" })
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"show-hidden"
|
|
127
|
+
),
|
|
128
|
+
/* @__PURE__ */ jsxs(
|
|
129
|
+
DropdownMenu.CheckboxItem,
|
|
130
|
+
{
|
|
131
|
+
checked: native,
|
|
132
|
+
onCheckedChange: setNative,
|
|
133
|
+
value: native ? "on" : "off",
|
|
134
|
+
onValueChange: (v) => setNative(v == "on"),
|
|
135
|
+
...isAndroid && native && {
|
|
136
|
+
onSelect: () => {
|
|
137
|
+
setNative(!native);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
gap: "$2",
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: "$1" }) }),
|
|
143
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Enable Native" }),
|
|
144
|
+
isAndroid && native && /* @__PURE__ */ jsx(DropdownMenu.ItemIcon, { androidIconName: "checkbox_on_background" })
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"show-other-notes"
|
|
148
|
+
),
|
|
149
|
+
/* @__PURE__ */ jsx(DropdownMenu.Arrow, { size: "$2" })
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
) })
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
export {
|
|
158
|
+
DropDownMenuDemo
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=DropDownMenuDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/DropDownMenuDemo.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { isAndroid, isWeb } from "@tamagui/core";
|
|
2
|
+
import { DropdownMenu } from "@tamagui/dropdown-menu";
|
|
3
|
+
import { Backpack, Calendar, Check } from "@tamagui/lucide-icons";
|
|
4
|
+
import { ChevronRight } from "@tamagui/lucide-icons";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Button, Text, useEvent } from "tamagui";
|
|
7
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
function DropDownMenuDemo() {
|
|
9
|
+
const [bookmarksChecked, setBookmarksChecked] = React.useState(!0), [native, setNative] = React.useState(!1), onSelect = useEvent(() => {
|
|
10
|
+
});
|
|
11
|
+
return /* @__PURE__ */ jsxs(
|
|
12
|
+
DropdownMenu,
|
|
13
|
+
{
|
|
14
|
+
offset: {
|
|
15
|
+
crossAxis: 25
|
|
16
|
+
},
|
|
17
|
+
allowFlip: !0,
|
|
18
|
+
native,
|
|
19
|
+
placement: "bottom-start",
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: !0, children: /* @__PURE__ */ jsx(Button, { width: 60, children: /* @__PURE__ */ jsx(Backpack, {}) }) }),
|
|
22
|
+
/* @__PURE__ */ jsx(DropdownMenu.Portal, { zIndex: 100, children: /* @__PURE__ */ jsxs(
|
|
23
|
+
DropdownMenu.Content,
|
|
24
|
+
{
|
|
25
|
+
paddingHorizontal: 0,
|
|
26
|
+
maxWidth: 180,
|
|
27
|
+
borderWidth: 1,
|
|
28
|
+
ai: "flex-start",
|
|
29
|
+
borderColor: "$borderColor",
|
|
30
|
+
enterStyle: { y: -10, opacity: 0 },
|
|
31
|
+
exitStyle: { y: -10, opacity: 0 },
|
|
32
|
+
elevate: !0,
|
|
33
|
+
animation: [
|
|
34
|
+
"quick",
|
|
35
|
+
{
|
|
36
|
+
opacity: {
|
|
37
|
+
overshootClamping: !0
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
children: [
|
|
42
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "About Notes" }) }, "about-notes"),
|
|
43
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
44
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Group, { children: [
|
|
45
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Settings" }) }, "settings"),
|
|
46
|
+
/* @__PURE__ */ jsxs(
|
|
47
|
+
DropdownMenu.Item,
|
|
48
|
+
{
|
|
49
|
+
onSelect,
|
|
50
|
+
jc: "space-between",
|
|
51
|
+
textValue: "Calender",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: /* @__PURE__ */ jsx(Text, { children: "Calender" }) }),
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
DropdownMenu.ItemIcon,
|
|
56
|
+
{
|
|
57
|
+
androidIconName: "ic_menu_today",
|
|
58
|
+
ios: {
|
|
59
|
+
name: "u.square",
|
|
60
|
+
hierarchicalColor: "#000",
|
|
61
|
+
pointSize: 20
|
|
62
|
+
},
|
|
63
|
+
children: /* @__PURE__ */ jsx(Calendar, { color: "gray", size: "$1" })
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"accounts"
|
|
69
|
+
)
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
72
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Group, { children: [
|
|
73
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, disabled: !0, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { color: "gray", children: "Locked" }) }, "close-notes"),
|
|
74
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, destructive: !0, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Delete all" }) }, "delete-all")
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
77
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Sub, { placement: "right-start", children: [
|
|
78
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubTrigger, { jc: "space-between", children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
79
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Actions" }),
|
|
80
|
+
!native || isWeb ? /* @__PURE__ */ jsx(ChevronRight, { size: "$1" }) : null
|
|
81
|
+
] }) }, "actions-trigger"),
|
|
82
|
+
/* @__PURE__ */ jsx(DropdownMenu.Portal, { zIndex: 200, children: /* @__PURE__ */ jsxs(
|
|
83
|
+
DropdownMenu.SubContent,
|
|
84
|
+
{
|
|
85
|
+
enterStyle: { y: -10, opacity: 0 },
|
|
86
|
+
exitStyle: { y: -10, opacity: 0 },
|
|
87
|
+
elevate: !0,
|
|
88
|
+
animation: [
|
|
89
|
+
"quick",
|
|
90
|
+
{
|
|
91
|
+
opacity: {
|
|
92
|
+
overshootClamping: !0
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
paddingHorizontal: 0,
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsx(DropdownMenu.Label, { fontSize: "$1", children: "Note settings" }),
|
|
99
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Create note" }) }, "create-note"),
|
|
100
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Delete all notes" }) }, "delete-all"),
|
|
101
|
+
/* @__PURE__ */ jsx(DropdownMenu.Item, { onSelect, children: /* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Sync notes" }) }, "sync-all")
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
) })
|
|
105
|
+
] }),
|
|
106
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, { className: "DropdownMenuSeparator" }),
|
|
107
|
+
/* @__PURE__ */ jsxs(
|
|
108
|
+
DropdownMenu.CheckboxItem,
|
|
109
|
+
{
|
|
110
|
+
checked: bookmarksChecked,
|
|
111
|
+
onCheckedChange: setBookmarksChecked,
|
|
112
|
+
value: bookmarksChecked ? "on" : "off",
|
|
113
|
+
onValueChange: (v) => setBookmarksChecked(v == "on"),
|
|
114
|
+
...isAndroid && native && {
|
|
115
|
+
onSelect: () => {
|
|
116
|
+
isAndroid && setBookmarksChecked(!bookmarksChecked);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
gap: "$2",
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { className: "DropdownMenuItemIndicator", children: /* @__PURE__ */ jsx(Check, { size: "$1" }) }),
|
|
122
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Mark as read" }),
|
|
123
|
+
isAndroid && native && bookmarksChecked && /* @__PURE__ */ jsx(DropdownMenu.ItemIcon, { androidIconName: "checkbox_on_background" })
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"show-hidden"
|
|
127
|
+
),
|
|
128
|
+
/* @__PURE__ */ jsxs(
|
|
129
|
+
DropdownMenu.CheckboxItem,
|
|
130
|
+
{
|
|
131
|
+
checked: native,
|
|
132
|
+
onCheckedChange: setNative,
|
|
133
|
+
value: native ? "on" : "off",
|
|
134
|
+
onValueChange: (v) => setNative(v == "on"),
|
|
135
|
+
...isAndroid && native && {
|
|
136
|
+
onSelect: () => {
|
|
137
|
+
setNative(!native);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
gap: "$2",
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: "$1" }) }),
|
|
143
|
+
/* @__PURE__ */ jsx(DropdownMenu.ItemTitle, { children: "Enable Native" }),
|
|
144
|
+
isAndroid && native && /* @__PURE__ */ jsx(DropdownMenu.ItemIcon, { androidIconName: "checkbox_on_background" })
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"show-other-notes"
|
|
148
|
+
),
|
|
149
|
+
/* @__PURE__ */ jsx(DropdownMenu.Arrow, { size: "$2" })
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
) })
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
export {
|
|
158
|
+
DropDownMenuDemo
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=DropDownMenuDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/DropDownMenuDemo.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,aAAa;AACjC,SAAS,oBAAoB;AAC7B,SAAS,UAAU,UAAU,aAAa;AAC1C,SAAS,oBAAoB;AAC7B,OAAO,WAAW;AAClB,SAAS,QAAQ,MAAM,gBAAgB;AAmB7B,SAiEI,UAjEJ,KA+BE,YA/BF;AAjBH,SAAS,mBAAmB;AACjC,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAS,EAAI,GAC7D,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,EAAK,GAE1C,WAAW,SAAS,MAAM;AAAA,EAAC,CAAC;AAElC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAQ;AAAA,QACN,WAAW;AAAA,MACb;AAAA,MACA,WAAS;AAAA,MACT;AAAA,MACA,WAAU;AAAA,MAEV;AAAA,4BAAC,aAAa,SAAb,EAAqB,SAAO,IAC3B,8BAAC,UAAO,OAAO,IACb,8BAAC,YAAS,GACZ,GACF;AAAA,QAEA,oBAAC,aAAa,QAAb,EAAoB,QAAQ,KAC3B;AAAA,UAAC,aAAa;AAAA,UAAb;AAAA,YACC,mBAAmB;AAAA,YACnB,UAAU;AAAA,YACV,aAAa;AAAA,YACb,IAAG;AAAA,YACH,aAAY;AAAA,YACZ,YAAY,EAAE,GAAG,KAAK,SAAS,EAAE;AAAA,YACjC,WAAW,EAAE,GAAG,KAAK,SAAS,EAAE;AAAA,YAChC,SAAO;AAAA,YACP,WAAW;AAAA,cACT;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,kBACP,mBAAmB;AAAA,gBACrB;AAAA,cACF;AAAA,YACF;AAAA,YAEA;AAAA,kCAAC,aAAa,MAAb,EAAkB,UACjB,8BAAC,aAAa,WAAb,EAAuB,yBAAW,KADM,aAE3C;AAAA,cACA,oBAAC,aAAa,WAAb,EAAuB;AAAA,cACxB,qBAAC,aAAa,OAAb,EACC;AAAA,oCAAC,aAAa,MAAb,EAAkB,UACjB,8BAAC,aAAa,WAAb,EAAuB,sBAAQ,KADS,UAE3C;AAAA,gBACA;AAAA,kBAAC,aAAa;AAAA,kBAAb;AAAA,oBACC;AAAA,oBACA,IAAG;AAAA,oBAEH,WAAU;AAAA,oBAGV;AAAA,0CAAC,aAAa,WAAb,EACC,8BAAC,QAAK,sBAAQ,GAChB;AAAA,sBACA;AAAA,wBAAC,aAAa;AAAA,wBAAb;AAAA,0BACC,iBAAgB;AAAA,0BAChB,KAAK;AAAA,4BACH,MAAM;AAAA,4BACN,mBAAmB;AAAA,4BACnB,WAAW;AAAA,0BACb;AAAA,0BAEA,8BAAC,YAAS,OAAM,QAAO,MAAK,MAAK;AAAA;AAAA,sBACnC;AAAA;AAAA;AAAA,kBAdI;AAAA,gBAeN;AAAA,iBACF;AAAA,cACA,oBAAC,aAAa,WAAb,EAAuB;AAAA,cACxB,qBAAC,aAAa,OAAb,EACC;AAAA,oCAAC,aAAa,MAAb,EAAkB,UAAsC,UAAQ,IAC/D,8BAAC,aAAa,WAAb,EAAuB,OAAM,QAAO,oBAAM,KADF,aAE3C;AAAA,gBACA,oBAAC,aAAa,MAAb,EAAkB,UAAoB,aAAW,IAChD,8BAAC,aAAa,WAAb,EAAuB,wBAAU,KADmB,YAEvD;AAAA,iBACF;AAAA,cACA,oBAAC,aAAa,WAAb,EAAuB;AAAA,cACxB,qBAAC,aAAa,KAAb,EAAiB,WAAU,eAC1B;AAAA,oCAAC,aAAa,YAAb,EAAwB,IAAG,iBAC1B,2CACE;AAAA,sCAAC,aAAa,WAAb,EAAuB,qBAAO;AAAA,kBAC9B,CAAC,UAAU,QAAQ,oBAAC,gBAAa,MAAK,MAAK,IAAK;AAAA,mBACnD,KAJ8C,iBAKhD;AAAA,gBACA,oBAAC,aAAa,QAAb,EAAoB,QAAQ,KAC3B;AAAA,kBAAC,aAAa;AAAA,kBAAb;AAAA,oBACC,YAAY,EAAE,GAAG,KAAK,SAAS,EAAE;AAAA,oBACjC,WAAW,EAAE,GAAG,KAAK,SAAS,EAAE;AAAA,oBAChC,SAAO;AAAA,oBACP,WAAW;AAAA,sBACT;AAAA,sBACA;AAAA,wBACE,SAAS;AAAA,0BACP,mBAAmB;AAAA,wBACrB;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA,mBAAmB;AAAA,oBAEnB;AAAA,0CAAC,aAAa,OAAb,EAAmB,UAAU,MAAM,2BAAa;AAAA,sBACjD,oBAAC,aAAa,MAAb,EAAkB,UACjB,8BAAC,aAAa,WAAb,EAAuB,yBAAW,KADM,aAE3C;AAAA,sBACA,oBAAC,aAAa,MAAb,EAAkB,UACjB,8BAAC,aAAa,WAAb,EAAuB,8BAAgB,KADC,YAE3C;AAAA,sBACA,oBAAC,aAAa,MAAb,EAAkB,UACjB,8BAAC,aAAa,WAAb,EAAuB,wBAAU,KADO,UAE3C;AAAA;AAAA;AAAA,gBACF,GACF;AAAA,iBACF;AAAA,cACA,oBAAC,aAAa,WAAb,EAAuB,WAAU,yBAAwB;AAAA,cAC1D;AAAA,gBAAC,aAAa;AAAA,gBAAb;AAAA,kBAEC,SAAS;AAAA,kBACT,iBAAiB;AAAA,kBAEjB,OAAO,mBAAmB,OAAO;AAAA,kBACjC,eAAe,CAAC,MAAM,oBAAoB,KAAK,IAAI;AAAA,kBAElD,GAAI,aACH,UAAU;AAAA,oBACR,UAAU,MAAM;AACd,mCAAa,oBAAoB,CAAC,gBAAgB;AAAA,oBACpD;AAAA,kBACF;AAAA,kBACF,KAAK;AAAA,kBAEL;AAAA,wCAAC,aAAa,eAAb,EAA2B,WAAU,6BACpC,8BAAC,SAAM,MAAK,MAAK,GACnB;AAAA,oBACA,oBAAC,aAAa,WAAb,EAAuB,0BAAY;AAAA,oBAEnC,aAAa,UAAU,oBACtB,oBAAC,aAAa,UAAb,EAAsB,iBAAgB,0BAAyB;AAAA;AAAA;AAAA,gBArB9D;AAAA,cAuBN;AAAA,cACA;AAAA,gBAAC,aAAa;AAAA,gBAAb;AAAA,kBAEC,SAAS;AAAA,kBACT,iBAAiB;AAAA,kBACjB,OAAO,SAAS,OAAO;AAAA,kBACvB,eAAe,CAAC,MAAM,UAAU,KAAK,IAAI;AAAA,kBAExC,GAAI,aACH,UAAU;AAAA,oBACR,UAAU,MAAM;AACd,gCAAU,CAAC,MAAM;AAAA,oBACnB;AAAA,kBACF;AAAA,kBACF,KAAK;AAAA,kBAEL;AAAA,wCAAC,aAAa,eAAb,EACC,8BAAC,SAAM,MAAK,MAAK,GACnB;AAAA,oBACA,oBAAC,aAAa,WAAb,EAAuB,2BAAa;AAAA,oBAEpC,aAAa,UACZ,oBAAC,aAAa,UAAb,EAAsB,iBAAgB,0BAAyB;AAAA;AAAA;AAAA,gBApB9D;AAAA,cAsBN;AAAA,cAEA,oBAAC,aAAa,OAAb,EAAmB,MAAM,MAAM;AAAA;AAAA;AAAA,QAClC,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ContextMenu } from "@tamagui/context-menu";
|
|
2
|
+
import { isAndroid, isWeb } from "@tamagui/core";
|
|
3
|
+
import { Calendar, Check } from "@tamagui/lucide-icons";
|
|
4
|
+
import { ChevronRight } from "@tamagui/lucide-icons";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Image } from "react-native-web";
|
|
7
|
+
import { Text, YStack, useEvent } from "tamagui";
|
|
8
|
+
function ContextMenuDemo() {
|
|
9
|
+
const [bookmarksChecked, setBookmarksChecked] = React.useState(!0), [native, setNative] = React.useState(!0), onSelect = useEvent(() => {
|
|
10
|
+
});
|
|
11
|
+
return <ContextMenu allowFlip native={native} placement="bottom-start">
|
|
12
|
+
<ContextMenu.Trigger asChild><YStack
|
|
13
|
+
jc="center"
|
|
14
|
+
ai="center"
|
|
15
|
+
bw={1}
|
|
16
|
+
boc="$borderColor"
|
|
17
|
+
width={250}
|
|
18
|
+
height={200}
|
|
19
|
+
><Text textAlign="center">Right Click or longPress</Text></YStack></ContextMenu.Trigger>
|
|
20
|
+
<ContextMenu.Portal zIndex={100}><ContextMenu.Content
|
|
21
|
+
paddingHorizontal={0}
|
|
22
|
+
maxWidth={180}
|
|
23
|
+
borderWidth={1}
|
|
24
|
+
ai="flex-start"
|
|
25
|
+
borderColor="$borderColor"
|
|
26
|
+
enterStyle={{ y: -10, opacity: 0 }}
|
|
27
|
+
exitStyle={{ y: -10, opacity: 0 }}
|
|
28
|
+
elevate
|
|
29
|
+
animation={[
|
|
30
|
+
"quick",
|
|
31
|
+
{
|
|
32
|
+
opacity: {
|
|
33
|
+
overshootClamping: !0
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]}
|
|
37
|
+
>
|
|
38
|
+
<ContextMenu.Preview>{() => <YStack bc="$green1" jc="center" ai="center" p={20}>
|
|
39
|
+
<Text>Your Preview here</Text>
|
|
40
|
+
<Image
|
|
41
|
+
width={240}
|
|
42
|
+
height={100}
|
|
43
|
+
resizeMode="contain"
|
|
44
|
+
source={{ uri: "https://tamagui.dev/social.png" }}
|
|
45
|
+
/>
|
|
46
|
+
</YStack>}</ContextMenu.Preview>
|
|
47
|
+
<ContextMenu.Item onSelect={onSelect} key="about-notes"><ContextMenu.ItemTitle>About Notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
48
|
+
<ContextMenu.Separator />
|
|
49
|
+
<ContextMenu.Group>
|
|
50
|
+
<ContextMenu.Item onSelect={onSelect} key="settings"><ContextMenu.ItemTitle>Settings</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
51
|
+
<ContextMenu.Item
|
|
52
|
+
onSelect={onSelect}
|
|
53
|
+
jc="space-between"
|
|
54
|
+
textValue="Calender"
|
|
55
|
+
key="accounts"
|
|
56
|
+
>
|
|
57
|
+
<ContextMenu.ItemTitle><Text>Calender</Text></ContextMenu.ItemTitle>
|
|
58
|
+
<ContextMenu.ItemIcon
|
|
59
|
+
androidIconName="ic_menu_today"
|
|
60
|
+
ios={{
|
|
61
|
+
name: "u.square",
|
|
62
|
+
hierarchicalColor: "#000",
|
|
63
|
+
pointSize: 20
|
|
64
|
+
}}
|
|
65
|
+
><Calendar color="gray" size="$1" /></ContextMenu.ItemIcon>
|
|
66
|
+
</ContextMenu.Item>
|
|
67
|
+
</ContextMenu.Group>
|
|
68
|
+
<ContextMenu.Separator />
|
|
69
|
+
<ContextMenu.Group>
|
|
70
|
+
<ContextMenu.Item onSelect={onSelect} key="close-notes" disabled><ContextMenu.ItemTitle color="gray">Locked</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
71
|
+
<ContextMenu.Item onSelect={onSelect} destructive key="delete-all"><ContextMenu.ItemTitle>Delete all</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
72
|
+
</ContextMenu.Group>
|
|
73
|
+
<ContextMenu.Separator />
|
|
74
|
+
<ContextMenu.Sub placement="right-start">
|
|
75
|
+
<ContextMenu.SubTrigger jc="space-between" key="actions-trigger"><>
|
|
76
|
+
<ContextMenu.ItemTitle>Actions</ContextMenu.ItemTitle>
|
|
77
|
+
{!native || isWeb ? <ChevronRight size="$1" /> : null}
|
|
78
|
+
</></ContextMenu.SubTrigger>
|
|
79
|
+
<ContextMenu.Portal zIndex={200}><ContextMenu.SubContent
|
|
80
|
+
enterStyle={{ y: -10, opacity: 0 }}
|
|
81
|
+
exitStyle={{ y: -10, opacity: 0 }}
|
|
82
|
+
elevate
|
|
83
|
+
animation={[
|
|
84
|
+
"quick",
|
|
85
|
+
{
|
|
86
|
+
opacity: {
|
|
87
|
+
overshootClamping: !0
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]}
|
|
91
|
+
paddingHorizontal={0}
|
|
92
|
+
>
|
|
93
|
+
<ContextMenu.Label fontSize="$1">Note settings</ContextMenu.Label>
|
|
94
|
+
<ContextMenu.Item onSelect={onSelect} key="create-note"><ContextMenu.ItemTitle>Create note</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
95
|
+
<ContextMenu.Item onSelect={onSelect} key="delete-all"><ContextMenu.ItemTitle>Delete all notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
96
|
+
<ContextMenu.Item onSelect={onSelect} key="sync-all"><ContextMenu.ItemTitle>Sync notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
97
|
+
</ContextMenu.SubContent></ContextMenu.Portal>
|
|
98
|
+
</ContextMenu.Sub>
|
|
99
|
+
<ContextMenu.Separator className="DropdownMenuSeparator" />
|
|
100
|
+
<ContextMenu.CheckboxItem
|
|
101
|
+
key="show-hidden"
|
|
102
|
+
checked={bookmarksChecked}
|
|
103
|
+
onCheckedChange={setBookmarksChecked}
|
|
104
|
+
value={bookmarksChecked ? "on" : "off"}
|
|
105
|
+
onValueChange={(v) => setBookmarksChecked(v == "on")}
|
|
106
|
+
{...isAndroid && native && {
|
|
107
|
+
onSelect: () => {
|
|
108
|
+
isAndroid && setBookmarksChecked(!bookmarksChecked);
|
|
109
|
+
}
|
|
110
|
+
}}
|
|
111
|
+
gap="$2"
|
|
112
|
+
>
|
|
113
|
+
<ContextMenu.ItemIndicator className="DropdownMenuItemIndicator"><Check size="$1" /></ContextMenu.ItemIndicator>
|
|
114
|
+
<ContextMenu.ItemTitle>Mark as read</ContextMenu.ItemTitle>
|
|
115
|
+
{
|
|
116
|
+
/* android native menu treat checkbox as simple MenuItem */
|
|
117
|
+
}
|
|
118
|
+
{isAndroid && native && bookmarksChecked && <ContextMenu.ItemIcon androidIconName="checkbox_on_background" />}
|
|
119
|
+
</ContextMenu.CheckboxItem>
|
|
120
|
+
<ContextMenu.CheckboxItem
|
|
121
|
+
key="show-other-notes"
|
|
122
|
+
checked={native}
|
|
123
|
+
onCheckedChange={setNative}
|
|
124
|
+
value={native ? "on" : "off"}
|
|
125
|
+
onValueChange={(v) => setNative(v == "on")}
|
|
126
|
+
{...isAndroid && native && {
|
|
127
|
+
onSelect: () => {
|
|
128
|
+
setNative(!native);
|
|
129
|
+
}
|
|
130
|
+
}}
|
|
131
|
+
gap="$2"
|
|
132
|
+
>
|
|
133
|
+
<ContextMenu.ItemIndicator><Check size="$1" /></ContextMenu.ItemIndicator>
|
|
134
|
+
<ContextMenu.ItemTitle>Enable Native</ContextMenu.ItemTitle>
|
|
135
|
+
{
|
|
136
|
+
/* android native menu treat checkbox as simple MenuItem */
|
|
137
|
+
}
|
|
138
|
+
{isAndroid && native && <ContextMenu.ItemIcon androidIconName="checkbox_on_background" />}
|
|
139
|
+
</ContextMenu.CheckboxItem>
|
|
140
|
+
<ContextMenu.Arrow size="$2" />
|
|
141
|
+
</ContextMenu.Content></ContextMenu.Portal>
|
|
142
|
+
</ContextMenu>;
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
ContextMenuDemo
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=ContextMenuDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ContextMenuDemo.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ContextMenu } from "@tamagui/context-menu";
|
|
2
|
+
import { isAndroid, isWeb } from "@tamagui/core";
|
|
3
|
+
import { Calendar, Check } from "@tamagui/lucide-icons";
|
|
4
|
+
import { ChevronRight } from "@tamagui/lucide-icons";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Image } from "react-native";
|
|
7
|
+
import { Text, YStack, useEvent } from "tamagui";
|
|
8
|
+
function ContextMenuDemo() {
|
|
9
|
+
const [bookmarksChecked, setBookmarksChecked] = React.useState(!0), [native, setNative] = React.useState(!0), onSelect = useEvent(() => {
|
|
10
|
+
});
|
|
11
|
+
return <ContextMenu allowFlip native={native} placement="bottom-start">
|
|
12
|
+
<ContextMenu.Trigger asChild><YStack
|
|
13
|
+
jc="center"
|
|
14
|
+
ai="center"
|
|
15
|
+
bw={1}
|
|
16
|
+
boc="$borderColor"
|
|
17
|
+
width={250}
|
|
18
|
+
height={200}
|
|
19
|
+
><Text textAlign="center">Right Click or longPress</Text></YStack></ContextMenu.Trigger>
|
|
20
|
+
<ContextMenu.Portal zIndex={100}><ContextMenu.Content
|
|
21
|
+
paddingHorizontal={0}
|
|
22
|
+
maxWidth={180}
|
|
23
|
+
borderWidth={1}
|
|
24
|
+
ai="flex-start"
|
|
25
|
+
borderColor="$borderColor"
|
|
26
|
+
enterStyle={{ y: -10, opacity: 0 }}
|
|
27
|
+
exitStyle={{ y: -10, opacity: 0 }}
|
|
28
|
+
elevate
|
|
29
|
+
animation={[
|
|
30
|
+
"quick",
|
|
31
|
+
{
|
|
32
|
+
opacity: {
|
|
33
|
+
overshootClamping: !0
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]}
|
|
37
|
+
>
|
|
38
|
+
<ContextMenu.Preview>{() => <YStack bc="$green1" jc="center" ai="center" p={20}>
|
|
39
|
+
<Text>Your Preview here</Text>
|
|
40
|
+
<Image
|
|
41
|
+
width={240}
|
|
42
|
+
height={100}
|
|
43
|
+
resizeMode="contain"
|
|
44
|
+
source={{ uri: "https://tamagui.dev/social.png" }}
|
|
45
|
+
/>
|
|
46
|
+
</YStack>}</ContextMenu.Preview>
|
|
47
|
+
<ContextMenu.Item onSelect={onSelect} key="about-notes"><ContextMenu.ItemTitle>About Notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
48
|
+
<ContextMenu.Separator />
|
|
49
|
+
<ContextMenu.Group>
|
|
50
|
+
<ContextMenu.Item onSelect={onSelect} key="settings"><ContextMenu.ItemTitle>Settings</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
51
|
+
<ContextMenu.Item
|
|
52
|
+
onSelect={onSelect}
|
|
53
|
+
jc="space-between"
|
|
54
|
+
textValue="Calender"
|
|
55
|
+
key="accounts"
|
|
56
|
+
>
|
|
57
|
+
<ContextMenu.ItemTitle><Text>Calender</Text></ContextMenu.ItemTitle>
|
|
58
|
+
<ContextMenu.ItemIcon
|
|
59
|
+
androidIconName="ic_menu_today"
|
|
60
|
+
ios={{
|
|
61
|
+
name: "u.square",
|
|
62
|
+
hierarchicalColor: "#000",
|
|
63
|
+
pointSize: 20
|
|
64
|
+
}}
|
|
65
|
+
><Calendar color="gray" size="$1" /></ContextMenu.ItemIcon>
|
|
66
|
+
</ContextMenu.Item>
|
|
67
|
+
</ContextMenu.Group>
|
|
68
|
+
<ContextMenu.Separator />
|
|
69
|
+
<ContextMenu.Group>
|
|
70
|
+
<ContextMenu.Item onSelect={onSelect} key="close-notes" disabled><ContextMenu.ItemTitle color="gray">Locked</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
71
|
+
<ContextMenu.Item onSelect={onSelect} destructive key="delete-all"><ContextMenu.ItemTitle>Delete all</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
72
|
+
</ContextMenu.Group>
|
|
73
|
+
<ContextMenu.Separator />
|
|
74
|
+
<ContextMenu.Sub placement="right-start">
|
|
75
|
+
<ContextMenu.SubTrigger jc="space-between" key="actions-trigger"><>
|
|
76
|
+
<ContextMenu.ItemTitle>Actions</ContextMenu.ItemTitle>
|
|
77
|
+
{!native || isWeb ? <ChevronRight size="$1" /> : null}
|
|
78
|
+
</></ContextMenu.SubTrigger>
|
|
79
|
+
<ContextMenu.Portal zIndex={200}><ContextMenu.SubContent
|
|
80
|
+
enterStyle={{ y: -10, opacity: 0 }}
|
|
81
|
+
exitStyle={{ y: -10, opacity: 0 }}
|
|
82
|
+
elevate
|
|
83
|
+
animation={[
|
|
84
|
+
"quick",
|
|
85
|
+
{
|
|
86
|
+
opacity: {
|
|
87
|
+
overshootClamping: !0
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
]}
|
|
91
|
+
paddingHorizontal={0}
|
|
92
|
+
>
|
|
93
|
+
<ContextMenu.Label fontSize="$1">Note settings</ContextMenu.Label>
|
|
94
|
+
<ContextMenu.Item onSelect={onSelect} key="create-note"><ContextMenu.ItemTitle>Create note</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
95
|
+
<ContextMenu.Item onSelect={onSelect} key="delete-all"><ContextMenu.ItemTitle>Delete all notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
96
|
+
<ContextMenu.Item onSelect={onSelect} key="sync-all"><ContextMenu.ItemTitle>Sync notes</ContextMenu.ItemTitle></ContextMenu.Item>
|
|
97
|
+
</ContextMenu.SubContent></ContextMenu.Portal>
|
|
98
|
+
</ContextMenu.Sub>
|
|
99
|
+
<ContextMenu.Separator className="DropdownMenuSeparator" />
|
|
100
|
+
<ContextMenu.CheckboxItem
|
|
101
|
+
key="show-hidden"
|
|
102
|
+
checked={bookmarksChecked}
|
|
103
|
+
onCheckedChange={setBookmarksChecked}
|
|
104
|
+
value={bookmarksChecked ? "on" : "off"}
|
|
105
|
+
onValueChange={(v) => setBookmarksChecked(v == "on")}
|
|
106
|
+
{...isAndroid && native && {
|
|
107
|
+
onSelect: () => {
|
|
108
|
+
isAndroid && setBookmarksChecked(!bookmarksChecked);
|
|
109
|
+
}
|
|
110
|
+
}}
|
|
111
|
+
gap="$2"
|
|
112
|
+
>
|
|
113
|
+
<ContextMenu.ItemIndicator className="DropdownMenuItemIndicator"><Check size="$1" /></ContextMenu.ItemIndicator>
|
|
114
|
+
<ContextMenu.ItemTitle>Mark as read</ContextMenu.ItemTitle>
|
|
115
|
+
{
|
|
116
|
+
/* android native menu treat checkbox as simple MenuItem */
|
|
117
|
+
}
|
|
118
|
+
{isAndroid && native && bookmarksChecked && <ContextMenu.ItemIcon androidIconName="checkbox_on_background" />}
|
|
119
|
+
</ContextMenu.CheckboxItem>
|
|
120
|
+
<ContextMenu.CheckboxItem
|
|
121
|
+
key="show-other-notes"
|
|
122
|
+
checked={native}
|
|
123
|
+
onCheckedChange={setNative}
|
|
124
|
+
value={native ? "on" : "off"}
|
|
125
|
+
onValueChange={(v) => setNative(v == "on")}
|
|
126
|
+
{...isAndroid && native && {
|
|
127
|
+
onSelect: () => {
|
|
128
|
+
setNative(!native);
|
|
129
|
+
}
|
|
130
|
+
}}
|
|
131
|
+
gap="$2"
|
|
132
|
+
>
|
|
133
|
+
<ContextMenu.ItemIndicator><Check size="$1" /></ContextMenu.ItemIndicator>
|
|
134
|
+
<ContextMenu.ItemTitle>Enable Native</ContextMenu.ItemTitle>
|
|
135
|
+
{
|
|
136
|
+
/* android native menu treat checkbox as simple MenuItem */
|
|
137
|
+
}
|
|
138
|
+
{isAndroid && native && <ContextMenu.ItemIcon androidIconName="checkbox_on_background" />}
|
|
139
|
+
</ContextMenu.CheckboxItem>
|
|
140
|
+
<ContextMenu.Arrow size="$2" />
|
|
141
|
+
</ContextMenu.Content></ContextMenu.Portal>
|
|
142
|
+
</ContextMenu>;
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
ContextMenuDemo
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=ContextMenuDemo.js.map
|