@workos-inc/widgets 0.0.0-pre.1 → 0.0.0-pre.3
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/lib/api/role.d.ts.map +1 -1
- package/dist/cjs/lib/api/role.js +35 -14
- package/dist/cjs/lib/api/role.js.map +1 -1
- package/dist/cjs/lib/api/user.d.ts.map +1 -1
- package/dist/cjs/lib/api/user.js +105 -67
- package/dist/cjs/lib/api/user.js.map +1 -1
- package/dist/cjs/lib/constants.d.ts +2 -1
- package/dist/cjs/lib/constants.d.ts.map +1 -1
- package/dist/cjs/lib/constants.js +3 -2
- package/dist/cjs/lib/constants.js.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/delete-user-dialog.js +1 -1
- package/dist/cjs/lib/delete-user-dialog.js.map +1 -1
- package/dist/cjs/lib/edit-user-details-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/edit-user-details-dialog.js +3 -5
- package/dist/cjs/lib/edit-user-details-dialog.js.map +1 -1
- package/dist/cjs/lib/elements.d.ts +23 -12
- package/dist/cjs/lib/elements.d.ts.map +1 -1
- package/dist/cjs/lib/elements.js +104 -30
- package/dist/cjs/lib/elements.js.map +1 -1
- package/dist/cjs/lib/error-boundary.d.ts +58 -0
- package/dist/cjs/lib/error-boundary.d.ts.map +1 -0
- package/dist/cjs/lib/error-boundary.js +113 -0
- package/dist/cjs/lib/error-boundary.js.map +1 -0
- package/dist/cjs/lib/errors.d.ts +34 -0
- package/dist/cjs/lib/errors.d.ts.map +1 -0
- package/dist/cjs/lib/errors.js +40 -0
- package/dist/cjs/lib/errors.js.map +1 -0
- package/dist/cjs/lib/invite-user-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/invite-user-dialog.js +4 -4
- package/dist/cjs/lib/invite-user-dialog.js.map +1 -1
- package/dist/cjs/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/resend-invite-dialog.js +2 -2
- package/dist/cjs/lib/resend-invite-dialog.js.map +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.js +1 -1
- package/dist/cjs/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/cjs/lib/use-layout-effect.d.ts +4 -0
- package/dist/cjs/lib/use-layout-effect.d.ts.map +1 -0
- package/dist/cjs/lib/use-layout-effect.js +8 -0
- package/dist/cjs/lib/use-layout-effect.js.map +1 -0
- package/dist/cjs/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/cjs/lib/user-actions-dropdown.js +2 -9
- package/dist/cjs/lib/user-actions-dropdown.js.map +1 -1
- package/dist/cjs/lib/users-filter.d.ts +1 -0
- package/dist/cjs/lib/users-filter.d.ts.map +1 -1
- package/dist/cjs/lib/users-filter.js +2 -9
- package/dist/cjs/lib/users-filter.js.map +1 -1
- package/dist/cjs/lib/users-management-context.d.ts +2 -2
- package/dist/cjs/lib/users-management-context.d.ts.map +1 -1
- package/dist/cjs/lib/users-management.d.ts +9 -6
- package/dist/cjs/lib/users-management.d.ts.map +1 -1
- package/dist/cjs/lib/users-management.js +77 -20
- package/dist/cjs/lib/users-management.js.map +1 -1
- package/dist/cjs/lib/users-search.d.ts +1 -1
- package/dist/cjs/lib/users-search.d.ts.map +1 -1
- package/dist/cjs/lib/users-search.js +3 -9
- package/dist/cjs/lib/users-search.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +2 -0
- package/dist/cjs/lib/utils.d.ts.map +1 -1
- package/dist/cjs/lib/utils.js +18 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/users-management.client.d.ts +1 -1
- package/dist/cjs/users-management.client.d.ts.map +1 -1
- package/dist/cjs/users-management.client.js +15 -5
- package/dist/cjs/users-management.client.js.map +1 -1
- package/dist/cjs/workos-widgets.client.d.ts.map +1 -1
- package/dist/cjs/workos-widgets.client.js +2 -1
- package/dist/cjs/workos-widgets.client.js.map +1 -1
- package/dist/esm/lib/api/role.d.ts.map +1 -1
- package/dist/esm/lib/api/role.js +35 -14
- package/dist/esm/lib/api/role.js.map +1 -1
- package/dist/esm/lib/api/user.d.ts.map +1 -1
- package/dist/esm/lib/api/user.js +105 -67
- package/dist/esm/lib/api/user.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +2 -1
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +2 -1
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/delete-user-dialog.d.ts.map +1 -1
- package/dist/esm/lib/delete-user-dialog.js +2 -2
- package/dist/esm/lib/delete-user-dialog.js.map +1 -1
- package/dist/esm/lib/edit-user-details-dialog.d.ts.map +1 -1
- package/dist/esm/lib/edit-user-details-dialog.js +4 -6
- package/dist/esm/lib/edit-user-details-dialog.js.map +1 -1
- package/dist/esm/lib/elements.d.ts +23 -12
- package/dist/esm/lib/elements.d.ts.map +1 -1
- package/dist/esm/lib/elements.js +81 -30
- package/dist/esm/lib/elements.js.map +1 -1
- package/dist/esm/lib/error-boundary.d.ts +58 -0
- package/dist/esm/lib/error-boundary.d.ts.map +1 -0
- package/dist/esm/lib/error-boundary.js +86 -0
- package/dist/esm/lib/error-boundary.js.map +1 -0
- package/dist/esm/lib/errors.d.ts +34 -0
- package/dist/esm/lib/errors.d.ts.map +1 -0
- package/dist/esm/lib/errors.js +34 -0
- package/dist/esm/lib/errors.js.map +1 -0
- package/dist/esm/lib/invite-user-dialog.d.ts.map +1 -1
- package/dist/esm/lib/invite-user-dialog.js +4 -4
- package/dist/esm/lib/invite-user-dialog.js.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/resend-invite-dialog.js +3 -3
- package/dist/esm/lib/resend-invite-dialog.js.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.d.ts.map +1 -1
- package/dist/esm/lib/revoke-invite-dialog.js +2 -2
- package/dist/esm/lib/revoke-invite-dialog.js.map +1 -1
- package/dist/esm/lib/use-layout-effect.d.ts +4 -0
- package/dist/esm/lib/use-layout-effect.d.ts.map +1 -0
- package/dist/esm/lib/use-layout-effect.js +5 -0
- package/dist/esm/lib/use-layout-effect.js.map +1 -0
- package/dist/esm/lib/user-actions-dropdown.d.ts.map +1 -1
- package/dist/esm/lib/user-actions-dropdown.js +3 -10
- package/dist/esm/lib/user-actions-dropdown.js.map +1 -1
- package/dist/esm/lib/users-filter.d.ts +1 -0
- package/dist/esm/lib/users-filter.d.ts.map +1 -1
- package/dist/esm/lib/users-filter.js +4 -11
- package/dist/esm/lib/users-filter.js.map +1 -1
- package/dist/esm/lib/users-management-context.d.ts +2 -2
- package/dist/esm/lib/users-management-context.d.ts.map +1 -1
- package/dist/esm/lib/users-management.d.ts +9 -6
- package/dist/esm/lib/users-management.d.ts.map +1 -1
- package/dist/esm/lib/users-management.js +74 -22
- package/dist/esm/lib/users-management.js.map +1 -1
- package/dist/esm/lib/users-search.d.ts +1 -1
- package/dist/esm/lib/users-search.d.ts.map +1 -1
- package/dist/esm/lib/users-search.js +5 -11
- package/dist/esm/lib/users-search.js.map +1 -1
- package/dist/esm/lib/utils.d.ts +2 -0
- package/dist/esm/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +13 -0
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/users-management.client.d.ts +1 -1
- package/dist/esm/users-management.client.d.ts.map +1 -1
- package/dist/esm/users-management.client.js +16 -6
- package/dist/esm/users-management.client.js.map +1 -1
- package/dist/esm/workos-widgets.client.d.ts.map +1 -1
- package/dist/esm/workos-widgets.client.js +2 -1
- package/dist/esm/workos-widgets.client.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +8 -3
- package/src/base.css +111 -0
- package/src/lib/api/role.ts +39 -16
- package/src/lib/api/user.ts +119 -75
- package/src/lib/constants.ts +2 -1
- package/src/lib/delete-user-dialog.tsx +7 -3
- package/src/lib/edit-user-details-dialog.tsx +15 -10
- package/src/lib/elements.tsx +254 -70
- package/src/lib/error-boundary.tsx +166 -0
- package/src/lib/errors.ts +49 -0
- package/src/lib/invite-user-dialog.tsx +22 -13
- package/src/lib/resend-invite-dialog.tsx +11 -5
- package/src/lib/revoke-invite-dialog.tsx +7 -3
- package/src/lib/use-layout-effect.ts +6 -0
- package/src/lib/user-actions-dropdown.tsx +8 -16
- package/src/lib/users-filter.tsx +13 -73
- package/src/lib/users-management-context.tsx +1 -1
- package/src/lib/users-management.tsx +339 -184
- package/src/lib/users-search.tsx +5 -63
- package/src/lib/utils.ts +21 -0
- package/src/users-management.client.tsx +37 -16
- package/src/users-management.css +4 -0
- package/src/workos-widgets.client.tsx +2 -1
- package/dist/cjs/lib/label.d.ts +0 -7
- package/dist/cjs/lib/label.d.ts.map +0 -1
- package/dist/cjs/lib/label.js +0 -9
- package/dist/cjs/lib/label.js.map +0 -1
- package/dist/cjs/lib/pagination.d.ts +0 -8
- package/dist/cjs/lib/pagination.d.ts.map +0 -1
- package/dist/cjs/lib/pagination.js +0 -67
- package/dist/cjs/lib/pagination.js.map +0 -1
- package/dist/esm/lib/label.d.ts +0 -7
- package/dist/esm/lib/label.d.ts.map +0 -1
- package/dist/esm/lib/label.js +0 -6
- package/dist/esm/lib/label.js.map +0 -1
- package/dist/esm/lib/pagination.d.ts +0 -8
- package/dist/esm/lib/pagination.d.ts.map +0 -1
- package/dist/esm/lib/pagination.js +0 -40
- package/dist/esm/lib/pagination.js.map +0 -1
- package/src/lib/label.tsx +0 -14
- package/src/lib/pagination.tsx +0 -69
|
@@ -11,8 +11,16 @@ import {
|
|
|
11
11
|
import * as React from "react";
|
|
12
12
|
import { type Role, useRoles } from "./api/role";
|
|
13
13
|
import { type InviteUserPayload, useInviteUser } from "./api/user";
|
|
14
|
-
import {
|
|
15
|
-
|
|
14
|
+
import {
|
|
15
|
+
DialogContent,
|
|
16
|
+
PrimaryButton,
|
|
17
|
+
SecondaryButton,
|
|
18
|
+
SelectContent,
|
|
19
|
+
SelectItem,
|
|
20
|
+
SelectTrigger,
|
|
21
|
+
TextField,
|
|
22
|
+
} from "./elements";
|
|
23
|
+
import { Label } from "./elements";
|
|
16
24
|
import { isErrorLike } from "./utils";
|
|
17
25
|
|
|
18
26
|
/**
|
|
@@ -74,7 +82,7 @@ export const InviteUserDialog = ({ children }: InviteUserDialogProps) => {
|
|
|
74
82
|
return (
|
|
75
83
|
<Dialog.Root open={open} onOpenChange={setOpen}>
|
|
76
84
|
{children && <Dialog.Trigger>{children}</Dialog.Trigger>}
|
|
77
|
-
<
|
|
85
|
+
<DialogContent maxWidth="480px" key={String(open)}>
|
|
78
86
|
<Dialog.Title>Invite user</Dialog.Title>
|
|
79
87
|
<Dialog.Description>
|
|
80
88
|
An invitation will be sent to this email address with a link to
|
|
@@ -100,9 +108,10 @@ export const InviteUserDialog = ({ children }: InviteUserDialogProps) => {
|
|
|
100
108
|
control={(props) => (
|
|
101
109
|
<TextField
|
|
102
110
|
{...props}
|
|
103
|
-
data-1p-ignore
|
|
111
|
+
data-1p-ignore="true"
|
|
112
|
+
data-lpignore="true"
|
|
104
113
|
type="email"
|
|
105
|
-
autoComplete="
|
|
114
|
+
autoComplete="off"
|
|
106
115
|
placeholder="Enter an email address"
|
|
107
116
|
/>
|
|
108
117
|
)}
|
|
@@ -133,21 +142,21 @@ export const InviteUserDialog = ({ children }: InviteUserDialogProps) => {
|
|
|
133
142
|
value={selectedRole}
|
|
134
143
|
onValueChange={setSelectedRole}
|
|
135
144
|
>
|
|
136
|
-
<
|
|
145
|
+
<SelectTrigger
|
|
137
146
|
id={id}
|
|
138
147
|
aria-invalid={ariaInvalid}
|
|
139
148
|
aria-describedby={ariaDescribedBy}
|
|
140
149
|
/>
|
|
141
|
-
<
|
|
142
|
-
<
|
|
150
|
+
<SelectContent>
|
|
151
|
+
<SelectItem value={PLACEHOLDER_ROLE} disabled>
|
|
143
152
|
Select a role
|
|
144
|
-
</
|
|
153
|
+
</SelectItem>
|
|
145
154
|
{roles.map((role) => (
|
|
146
|
-
<
|
|
155
|
+
<SelectItem key={role.slug} value={role.slug}>
|
|
147
156
|
{role.name}
|
|
148
|
-
</
|
|
157
|
+
</SelectItem>
|
|
149
158
|
))}
|
|
150
|
-
</
|
|
159
|
+
</SelectContent>
|
|
151
160
|
</Select.Root>
|
|
152
161
|
)}
|
|
153
162
|
/>
|
|
@@ -179,7 +188,7 @@ export const InviteUserDialog = ({ children }: InviteUserDialogProps) => {
|
|
|
179
188
|
<VisuallyHidden asChild>
|
|
180
189
|
<section aria-live="polite">{formErrors.form}</section>
|
|
181
190
|
</VisuallyHidden>
|
|
182
|
-
</
|
|
191
|
+
</DialogContent>
|
|
183
192
|
</Dialog.Root>
|
|
184
193
|
);
|
|
185
194
|
};
|
|
@@ -11,7 +11,13 @@ import {
|
|
|
11
11
|
import * as React from "react";
|
|
12
12
|
import { useResendUserInvite } from "./api/user";
|
|
13
13
|
import type { User } from "./api/user";
|
|
14
|
-
import {
|
|
14
|
+
import {
|
|
15
|
+
AlertDialogContent,
|
|
16
|
+
DestructiveButton,
|
|
17
|
+
DialogContent,
|
|
18
|
+
PrimaryButton,
|
|
19
|
+
SecondaryButton,
|
|
20
|
+
} from "./elements";
|
|
15
21
|
|
|
16
22
|
interface ResendInviteDialogProps extends AlertDialog.RootProps {
|
|
17
23
|
user: User;
|
|
@@ -41,7 +47,7 @@ export const ResendInviteDialog = ({
|
|
|
41
47
|
<AlertDialog.Root {...props}>
|
|
42
48
|
{children && <AlertDialog.Trigger>{children}</AlertDialog.Trigger>}
|
|
43
49
|
|
|
44
|
-
<
|
|
50
|
+
<AlertDialogContent
|
|
45
51
|
maxWidth="480px"
|
|
46
52
|
onOpenAutoFocus={() => {
|
|
47
53
|
requestAnimationFrame(() => {
|
|
@@ -85,7 +91,7 @@ export const ResendInviteDialog = ({
|
|
|
85
91
|
</DestructiveButton>
|
|
86
92
|
</form>
|
|
87
93
|
</Flex>
|
|
88
|
-
</
|
|
94
|
+
</AlertDialogContent>
|
|
89
95
|
|
|
90
96
|
{/* mirror errors in a live region */}
|
|
91
97
|
<VisuallyHidden asChild>
|
|
@@ -103,7 +109,7 @@ export const ResendInviteDialog = ({
|
|
|
103
109
|
setSuccessDialogIsOpen(isOpen);
|
|
104
110
|
}}
|
|
105
111
|
>
|
|
106
|
-
<
|
|
112
|
+
<DialogContent
|
|
107
113
|
maxWidth="360px"
|
|
108
114
|
onOpenAutoFocus={() => {
|
|
109
115
|
requestAnimationFrame(() => {
|
|
@@ -121,7 +127,7 @@ export const ResendInviteDialog = ({
|
|
|
121
127
|
<PrimaryButton ref={successButtonRef}>Close</PrimaryButton>
|
|
122
128
|
</Dialog.Close>
|
|
123
129
|
</Flex>
|
|
124
|
-
</
|
|
130
|
+
</DialogContent>
|
|
125
131
|
</Dialog.Root>
|
|
126
132
|
</>
|
|
127
133
|
);
|
|
@@ -10,7 +10,11 @@ import {
|
|
|
10
10
|
import { type ReactNode, useRef } from "react";
|
|
11
11
|
import { useRevokeUserInvite } from "./api/user";
|
|
12
12
|
import type { User } from "./api/user";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
AlertDialogContent,
|
|
15
|
+
DestructiveButton,
|
|
16
|
+
SecondaryButton,
|
|
17
|
+
} from "./elements";
|
|
14
18
|
|
|
15
19
|
interface RevokeInviteDialogProps extends AlertDialog.RootProps {
|
|
16
20
|
user: User;
|
|
@@ -37,7 +41,7 @@ export const RevokeInviteDialog = ({
|
|
|
37
41
|
<AlertDialog.Root {...props}>
|
|
38
42
|
{children && <AlertDialog.Trigger>{children}</AlertDialog.Trigger>}
|
|
39
43
|
|
|
40
|
-
<
|
|
44
|
+
<AlertDialogContent
|
|
41
45
|
maxWidth="480px"
|
|
42
46
|
onOpenAutoFocus={() => {
|
|
43
47
|
requestAnimationFrame(() => {
|
|
@@ -83,7 +87,7 @@ export const RevokeInviteDialog = ({
|
|
|
83
87
|
</DestructiveButton>
|
|
84
88
|
</form>
|
|
85
89
|
</Flex>
|
|
86
|
-
</
|
|
90
|
+
</AlertDialogContent>
|
|
87
91
|
|
|
88
92
|
{/* mirror errors in a live region */}
|
|
89
93
|
<VisuallyHidden asChild>
|
|
@@ -5,10 +5,13 @@ import * as React from "react";
|
|
|
5
5
|
import type { User } from "./api/user";
|
|
6
6
|
import { DeleteUserDialog } from "./delete-user-dialog";
|
|
7
7
|
import { EditUserDetailsDialog } from "./edit-user-details-dialog";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
DestructiveMenuItem,
|
|
10
|
+
DropdownMenuContent,
|
|
11
|
+
PrimaryMenuItem,
|
|
12
|
+
} from "./elements";
|
|
9
13
|
import { ResendInviteDialog } from "./resend-invite-dialog";
|
|
10
14
|
import { RevokeInviteDialog } from "./revoke-invite-dialog";
|
|
11
|
-
import { useElement } from "./widgets-context";
|
|
12
15
|
import { useRoles } from "./api/role";
|
|
13
16
|
|
|
14
17
|
interface UserActionsDropdownProps {
|
|
@@ -30,7 +33,6 @@ export const UserActionsDropdown = ({
|
|
|
30
33
|
const [openDialog, setOpenDialog] = React.useState<UserActionDialog | null>(
|
|
31
34
|
null,
|
|
32
35
|
);
|
|
33
|
-
const dropdownProps = useElement("dropdown");
|
|
34
36
|
|
|
35
37
|
/**
|
|
36
38
|
* Assigns a key for each dialog based on its open state to ensure its
|
|
@@ -94,17 +96,7 @@ export const UserActionsDropdown = ({
|
|
|
94
96
|
}
|
|
95
97
|
return {
|
|
96
98
|
actions,
|
|
97
|
-
items
|
|
98
|
-
if (index !== array.length - 1) {
|
|
99
|
-
return (
|
|
100
|
-
<React.Fragment key={item.key}>
|
|
101
|
-
{item}
|
|
102
|
-
<DropdownMenu.Separator />
|
|
103
|
-
</React.Fragment>
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
return item;
|
|
107
|
-
}),
|
|
99
|
+
items,
|
|
108
100
|
};
|
|
109
101
|
}, [rolesQuery, user.actions]);
|
|
110
102
|
|
|
@@ -116,9 +108,9 @@ export const UserActionsDropdown = ({
|
|
|
116
108
|
<>
|
|
117
109
|
<DropdownMenu.Root>
|
|
118
110
|
<DropdownMenu.Trigger>{children}</DropdownMenu.Trigger>
|
|
119
|
-
<
|
|
111
|
+
<DropdownMenuContent size="2" align="end">
|
|
120
112
|
{items}
|
|
121
|
-
</
|
|
113
|
+
</DropdownMenuContent>
|
|
122
114
|
</DropdownMenu.Root>
|
|
123
115
|
|
|
124
116
|
{actions.has("edit-role") && (
|
package/src/lib/users-filter.tsx
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
Checkbox,
|
|
5
|
-
DropdownMenu,
|
|
6
|
-
Flex,
|
|
7
|
-
IconButton,
|
|
8
|
-
Select,
|
|
9
|
-
} from "@radix-ui/themes";
|
|
3
|
+
import { Select } from "@radix-ui/themes";
|
|
10
4
|
import * as React from "react";
|
|
11
5
|
import type { Role } from "./api/role";
|
|
12
|
-
import {
|
|
6
|
+
import { SelectContent, SelectItem, SelectTrigger } from "./elements";
|
|
13
7
|
import { useUsersManagementContext } from "./users-management-context";
|
|
14
8
|
|
|
15
9
|
const ALL_ROLES_NAME = "All";
|
|
@@ -17,9 +11,13 @@ const ALL_ROLES_VALUE = "null";
|
|
|
17
11
|
|
|
18
12
|
type UsersFilterProps = React.ComponentPropsWithoutRef<typeof Select.Root> & {
|
|
19
13
|
roles: Role[] | undefined;
|
|
14
|
+
disabled?: boolean;
|
|
20
15
|
};
|
|
21
16
|
|
|
22
|
-
export const UsersFilter: React.FC<UsersFilterProps> = ({
|
|
17
|
+
export const UsersFilter: React.FC<UsersFilterProps> = ({
|
|
18
|
+
roles,
|
|
19
|
+
disabled,
|
|
20
|
+
}) => {
|
|
23
21
|
const {
|
|
24
22
|
dispatch,
|
|
25
23
|
state: { role },
|
|
@@ -48,75 +46,17 @@ export const UsersFilter: React.FC<UsersFilterProps> = ({ roles }) => {
|
|
|
48
46
|
<Select.Root
|
|
49
47
|
value={roles ? filteredRole : "null"}
|
|
50
48
|
onValueChange={onValueChange}
|
|
49
|
+
disabled={disabled}
|
|
51
50
|
>
|
|
52
|
-
<
|
|
53
|
-
<
|
|
54
|
-
<
|
|
51
|
+
<SelectTrigger>{roles ? roleName : ALL_ROLES_NAME}</SelectTrigger>
|
|
52
|
+
<SelectContent>
|
|
53
|
+
<SelectItem value={ALL_ROLES_VALUE}>{ALL_ROLES_NAME}</SelectItem>
|
|
55
54
|
{roles?.map((role) => (
|
|
56
55
|
<React.Fragment key={role.slug}>
|
|
57
|
-
<
|
|
56
|
+
<SelectItem value={role.slug}>{role.name}</SelectItem>
|
|
58
57
|
</React.Fragment>
|
|
59
58
|
))}
|
|
60
|
-
</
|
|
59
|
+
</SelectContent>
|
|
61
60
|
</Select.Root>
|
|
62
61
|
);
|
|
63
62
|
};
|
|
64
|
-
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
66
|
-
function FilterMenu() {
|
|
67
|
-
return (
|
|
68
|
-
<DropdownMenu.Root>
|
|
69
|
-
<DropdownMenu.Trigger>
|
|
70
|
-
<IconButton
|
|
71
|
-
size="1"
|
|
72
|
-
color="gray"
|
|
73
|
-
variant="ghost"
|
|
74
|
-
radius="full"
|
|
75
|
-
aria-label="Filter users"
|
|
76
|
-
title="Filter users"
|
|
77
|
-
>
|
|
78
|
-
<FilterIcon aria-hidden="true" />
|
|
79
|
-
</IconButton>
|
|
80
|
-
</DropdownMenu.Trigger>
|
|
81
|
-
<DropdownMenu.Content size="2" align="end">
|
|
82
|
-
<PrimaryMenuItem>
|
|
83
|
-
<Flex gap="2" align="center">
|
|
84
|
-
<Checkbox variant="surface" />
|
|
85
|
-
One
|
|
86
|
-
</Flex>
|
|
87
|
-
</PrimaryMenuItem>
|
|
88
|
-
<PrimaryMenuItem>
|
|
89
|
-
<Flex gap="2" align="center">
|
|
90
|
-
<Checkbox />
|
|
91
|
-
Two
|
|
92
|
-
</Flex>
|
|
93
|
-
</PrimaryMenuItem>
|
|
94
|
-
</DropdownMenu.Content>
|
|
95
|
-
</DropdownMenu.Root>
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const FilterIcon = React.forwardRef<
|
|
100
|
-
SVGSVGElement,
|
|
101
|
-
React.ComponentPropsWithRef<"svg">
|
|
102
|
-
>(function FilterIcon({ children, ...props }, forwardedRef) {
|
|
103
|
-
return (
|
|
104
|
-
<svg
|
|
105
|
-
width="15"
|
|
106
|
-
height="15"
|
|
107
|
-
viewBox="0 0 15 15"
|
|
108
|
-
fill="currentColor"
|
|
109
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
110
|
-
ref={forwardedRef}
|
|
111
|
-
{...props}
|
|
112
|
-
>
|
|
113
|
-
{children}
|
|
114
|
-
<path
|
|
115
|
-
fillRule="evenodd"
|
|
116
|
-
clipRule="evenodd"
|
|
117
|
-
d="M1.5 1C1.22386 1 1 1.22386 1 1.5V4.5C1 4.66316 1.07961 4.81605 1.21327 4.90962L6 8.26033V13.5C6 13.6733 6.08973 13.8342 6.23713 13.9253C6.38454 14.0164 6.56861 14.0247 6.72361 13.9472L8.72361 12.9472C8.893 12.8625 9 12.6894 9 12.5V8.26033L13.7867 4.90962C13.9204 4.81605 14 4.66316 14 4.5V1.5C14 1.22386 13.7761 1 13.5 1H1.5ZM2 4.23967V2H13V4.23967L8.21327 7.59038C8.07961 7.68395 8 7.83684 8 8V12.191L7 12.691V8C7 7.83684 6.92039 7.68395 6.78673 7.59038L2 4.23967ZM12 3H3V4H12V3Z"
|
|
118
|
-
fill="black"
|
|
119
|
-
/>
|
|
120
|
-
</svg>
|
|
121
|
-
);
|
|
122
|
-
});
|