@schemavaults/auth-ui 0.5.56 → 0.6.19
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/components/AccountCard/account_card.d.ts +1 -0
- package/dist/components/AccountCard/account_card.js +4 -2
- package/dist/components/AccountCard/account_card.js.map +1 -1
- package/dist/components/AccountCard/index.d.ts +2 -2
- package/dist/components/AccountCard/index.js +1 -1
- package/dist/components/AccountCard/index.js.map +1 -1
- package/dist/components/ApiServersCard/api_servers_card.d.ts +3 -1
- package/dist/components/ApiServersCard/api_servers_card.js +11 -2
- package/dist/components/ApiServersCard/api_servers_card.js.map +1 -1
- package/dist/components/ApiServersCard/index.d.ts +2 -2
- package/dist/components/ApiServersCard/index.js +1 -1
- package/dist/components/ApiServersCard/index.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServersTable.d.ts +1 -1
- package/dist/components/ApiServersTable/ApiServersTable.js +23 -12
- package/dist/components/ApiServersTable/ApiServersTable.js.map +1 -1
- package/dist/components/ApiServersTable/columns.d.ts +1 -1
- package/dist/components/ApiServersTable/index.d.ts +4 -3
- package/dist/components/ApiServersTable/index.js +2 -1
- package/dist/components/ApiServersTable/index.js.map +1 -1
- package/dist/components/ApiServersTable/useApiServersList.d.ts +2 -3
- package/dist/components/ApiServersTable/useApiServersList.js +14 -47
- package/dist/components/ApiServersTable/useApiServersList.js.map +1 -1
- package/dist/components/AppsCard/apps_card.d.ts +3 -1
- package/dist/components/AppsCard/apps_card.js +13 -5
- package/dist/components/AppsCard/apps_card.js.map +1 -1
- package/dist/components/AppsCard/index.d.ts +3 -2
- package/dist/components/AppsCard/index.js +2 -1
- package/dist/components/AppsCard/index.js.map +1 -1
- package/dist/components/AppsTable/AppDomainsList.d.ts +2 -1
- package/dist/components/AppsTable/AppDomainsList.js +11 -5
- package/dist/components/AppsTable/AppDomainsList.js.map +1 -1
- package/dist/components/AppsTable/AppsTable.js +9 -13
- package/dist/components/AppsTable/AppsTable.js.map +1 -1
- package/dist/components/AppsTable/columns.d.ts +1 -1
- package/dist/components/AppsTable/columns.js +1 -1
- package/dist/components/AppsTable/columns.js.map +1 -1
- package/dist/components/AppsTable/frontend_app_actions.js +1 -3
- package/dist/components/AppsTable/frontend_app_actions.js.map +1 -1
- package/dist/components/AppsTable/index.d.ts +4 -3
- package/dist/components/AppsTable/index.js +2 -1
- package/dist/components/AppsTable/index.js.map +1 -1
- package/dist/components/AppsTable/send-authorize-app-request.d.ts +1 -3
- package/dist/components/AppsTable/send-authorize-app-request.js +3 -33
- package/dist/components/AppsTable/send-authorize-app-request.js.map +1 -1
- package/dist/components/AppsTable/useAppDomains.js +2 -43
- package/dist/components/AppsTable/useAppDomains.js.map +1 -1
- package/dist/components/AppsTable/useAppsList.d.ts +3 -24
- package/dist/components/AppsTable/useAppsList.js +12 -46
- package/dist/components/AppsTable/useAppsList.js.map +1 -1
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.d.ts +10 -1
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js +24 -36
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js.map +1 -1
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialogOpenDispatchContext.d.ts +2 -0
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialogOpenDispatchContext.js +8 -0
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialogOpenDispatchContext.js.map +1 -0
- package/dist/components/ConnectAppToApiDialog/index.d.ts +3 -2
- package/dist/components/ConnectAppToApiDialog/index.js +2 -1
- package/dist/components/ConnectAppToApiDialog/index.js.map +1 -1
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.d.ts +8 -1
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js +13 -117
- package/dist/components/CreateApiServerDialog/CreateApiServerDialog.js.map +1 -1
- package/dist/components/CreateApiServerDialog/CreateApiServerDialogOpenDispatchContext.d.ts +2 -0
- package/dist/components/CreateApiServerDialog/CreateApiServerDialogOpenDispatchContext.js +8 -0
- package/dist/components/CreateApiServerDialog/CreateApiServerDialogOpenDispatchContext.js.map +1 -0
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.d.ts +11 -0
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.js +86 -0
- package/dist/components/CreateApiServerDialog/CreateApiServerForm.js.map +1 -0
- package/dist/components/CreateApiServerDialog/index.d.ts +3 -2
- package/dist/components/CreateApiServerDialog/index.js +2 -1
- package/dist/components/CreateApiServerDialog/index.js.map +1 -1
- package/dist/components/CreateAppDialog/CreateAppDialog.d.ts +9 -2
- package/dist/components/CreateAppDialog/CreateAppDialog.js +11 -138
- package/dist/components/CreateAppDialog/CreateAppDialog.js.map +1 -1
- package/dist/components/CreateAppDialog/CreateAppDialogOpenDispatchContext.d.ts +2 -0
- package/dist/components/CreateAppDialog/CreateAppDialogOpenDispatchContext.js +8 -0
- package/dist/components/CreateAppDialog/CreateAppDialogOpenDispatchContext.js.map +1 -0
- package/dist/components/CreateAppDialog/CreateAppForm.d.ts +10 -0
- package/dist/components/CreateAppDialog/CreateAppForm.js +119 -0
- package/dist/components/CreateAppDialog/CreateAppForm.js.map +1 -0
- package/dist/components/CreateAppDialog/index.d.ts +3 -2
- package/dist/components/CreateAppDialog/index.js +2 -1
- package/dist/components/CreateAppDialog/index.js.map +1 -1
- package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js +3 -33
- package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js.map +1 -1
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.d.ts +10 -2
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.js +11 -121
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialog.js.map +1 -1
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialogDispatchContext.d.ts +2 -0
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialogDispatchContext.js +8 -0
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeDialogDispatchContext.js.map +1 -0
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeForm.d.ts +6 -0
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeForm.js +113 -0
- package/dist/components/CreateInviteCodeDialog/CreateInviteCodeForm.js.map +1 -0
- package/dist/components/CreateInviteCodeDialog/index.d.ts +3 -1
- package/dist/components/CreateInviteCodeDialog/index.js +2 -1
- package/dist/components/CreateInviteCodeDialog/index.js.map +1 -1
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialog.d.ts +10 -6
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialog.js +12 -113
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialog.js.map +1 -1
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialogDispatchContext.d.ts +2 -0
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialogDispatchContext.js +8 -0
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialogDispatchContext.js.map +1 -0
- package/dist/components/CreateOrganizationDialog/CreateOrganizationForm.d.ts +6 -0
- package/dist/components/CreateOrganizationDialog/CreateOrganizationForm.js +113 -0
- package/dist/components/CreateOrganizationDialog/CreateOrganizationForm.js.map +1 -0
- package/dist/components/CreateOrganizationDialog/index.d.ts +3 -2
- package/dist/components/CreateOrganizationDialog/index.js +2 -1
- package/dist/components/CreateOrganizationDialog/index.js.map +1 -1
- package/dist/components/InviteCodesCard/InviteCodesCard.d.ts +2 -2
- package/dist/components/InviteCodesCard/InviteCodesCard.js +4 -65
- package/dist/components/InviteCodesCard/InviteCodesCard.js.map +1 -1
- package/dist/components/InviteCodesTable/InviteCodesTable.d.ts +5 -5
- package/dist/components/InviteCodesTable/InviteCodesTable.js +18 -7
- package/dist/components/InviteCodesTable/InviteCodesTable.js.map +1 -1
- package/dist/components/InviteCodesTable/columns.d.ts +1 -1
- package/dist/components/InviteCodesTable/index.d.ts +2 -0
- package/dist/components/InviteCodesTable/index.js +1 -0
- package/dist/components/InviteCodesTable/index.js.map +1 -1
- package/dist/components/InviteCodesTable/useAllInviteCodes.d.ts +10 -0
- package/dist/components/InviteCodesTable/useAllInviteCodes.js +56 -0
- package/dist/components/InviteCodesTable/useAllInviteCodes.js.map +1 -0
- package/dist/components/InviteMemberDialog/InviteMemberDialog.d.ts +12 -0
- package/dist/components/InviteMemberDialog/InviteMemberDialog.js +79 -0
- package/dist/components/InviteMemberDialog/InviteMemberDialog.js.map +1 -0
- package/dist/components/InviteMemberDialog/index.d.ts +2 -0
- package/dist/components/InviteMemberDialog/index.js +2 -0
- package/dist/components/InviteMemberDialog/index.js.map +1 -0
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.d.ts +2 -0
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.js +2 -23
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.js.map +1 -1
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.d.ts +4 -1
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.js +4 -3
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.js.map +1 -1
- package/dist/components/OrganizationMembersTable/columns.d.ts +1 -1
- package/dist/components/OrganizationMembersTable/columns.js +3 -3
- package/dist/components/OrganizationMembersTable/columns.js.map +1 -1
- package/dist/components/OrganizationsCard/OrganizationsCard.d.ts +2 -2
- package/dist/components/OrganizationsCard/OrganizationsCard.js +4 -65
- package/dist/components/OrganizationsCard/OrganizationsCard.js.map +1 -1
- package/dist/components/OrganizationsTable/OrganizationsTable.d.ts +2 -3
- package/dist/components/OrganizationsTable/OrganizationsTable.js +12 -8
- package/dist/components/OrganizationsTable/OrganizationsTable.js.map +1 -1
- package/dist/components/OrganizationsTable/columns.d.ts +1 -1
- package/dist/components/OrganizationsTable/columns.js.map +1 -1
- package/dist/components/OrganizationsTable/index.d.ts +3 -1
- package/dist/components/OrganizationsTable/index.js +2 -1
- package/dist/components/OrganizationsTable/index.js.map +1 -1
- package/dist/components/OrganizationsTable/useAllOrganizationsList.d.ts +8 -0
- package/dist/components/OrganizationsTable/useAllOrganizationsList.js +58 -0
- package/dist/components/OrganizationsTable/useAllOrganizationsList.js.map +1 -0
- package/dist/components/UsersCard/UsersCard.js +1 -22
- package/dist/components/UsersCard/UsersCard.js.map +1 -1
- package/dist/components/UsersTable/columns.d.ts +1 -1
- package/dist/components/UsersTable/columns.js +1 -1
- package/dist/components/UsersTable/columns.js.map +1 -1
- package/dist/components/index.d.ts +7 -5
- package/dist/components/index.js +3 -2
- package/dist/components/index.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, RadioGroup, RadioGroupItem, Label, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, useForm, useToast, } from "@schemavaults/ui";
|
|
4
|
+
import { useState, useTransition } from "react";
|
|
5
|
+
import { zodResolver } from "@hookform/resolvers/zod";
|
|
6
|
+
import { UserPlus } from "lucide-react";
|
|
7
|
+
import { inviteMemberFormSchema, } from "@schemavaults/auth-common";
|
|
8
|
+
export function InviteMemberDialog({ organization_id, onSubmit, open: controlledOpen, onOpenChange: controlledOnOpenChange, triggerButtonLabel = "Invite Member", }) {
|
|
9
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
10
|
+
const [submitting, startSubmitting] = useTransition();
|
|
11
|
+
const { toast } = useToast();
|
|
12
|
+
const isControlled = controlledOpen !== undefined && controlledOnOpenChange !== undefined;
|
|
13
|
+
const open = isControlled ? controlledOpen : internalOpen;
|
|
14
|
+
const setOpen = isControlled ? controlledOnOpenChange : setInternalOpen;
|
|
15
|
+
const form = useForm({
|
|
16
|
+
resolver: zodResolver(inviteMemberFormSchema),
|
|
17
|
+
defaultValues: {
|
|
18
|
+
input_mode: "email",
|
|
19
|
+
identifier: "",
|
|
20
|
+
organization_id,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
const currentInputMode = form.watch("input_mode");
|
|
24
|
+
function handleInputModeChange(value) {
|
|
25
|
+
form.setValue("input_mode", value);
|
|
26
|
+
form.setValue("identifier", "");
|
|
27
|
+
form.clearErrors("identifier");
|
|
28
|
+
}
|
|
29
|
+
async function handleSubmit(values) {
|
|
30
|
+
startSubmitting(async () => {
|
|
31
|
+
const submitData = {
|
|
32
|
+
organization_id,
|
|
33
|
+
input_mode: values.input_mode,
|
|
34
|
+
};
|
|
35
|
+
if (values.input_mode === "uid") {
|
|
36
|
+
submitData.uid = values.identifier;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
submitData.email = values.identifier;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
await onSubmit(submitData);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error("Error submitting invite member form: ", e);
|
|
46
|
+
toast({
|
|
47
|
+
variant: "destructive",
|
|
48
|
+
title: "Error submitting invite member form!",
|
|
49
|
+
description: e instanceof Error ? e.message : "An unknown error has occurred!",
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
form.reset();
|
|
54
|
+
setOpen(false);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function handleCancel() {
|
|
58
|
+
form.reset();
|
|
59
|
+
setOpen(false);
|
|
60
|
+
}
|
|
61
|
+
const inputLabel = currentInputMode === "email" ? "Email Address" : "User ID";
|
|
62
|
+
const inputPlaceholder = currentInputMode === "email"
|
|
63
|
+
? "user@example.com"
|
|
64
|
+
: "00000000-0000-0000-0000-000000000000";
|
|
65
|
+
const inputDescription = currentInputMode === "email"
|
|
66
|
+
? "Enter the email address of the user to invite."
|
|
67
|
+
: "Enter the UUID of the user to invite.";
|
|
68
|
+
return (_jsxs(Dialog, { open: open, onOpenChange: setOpen, children: [!isControlled && (_jsx(DialogTrigger, { asChild: true, children: _jsxs(Button, { id: "open-invite-member-dialog-button", children: [_jsx(UserPlus, { className: "h-4 w-4 mr-2" }), triggerButtonLabel] }) })), _jsx(DialogContent, { "data-testid": "invite-member-dialog-content", className: "sm:max-w-[425px]", children: _jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(handleSubmit, function onFormValidationError(errs) {
|
|
69
|
+
console.error("Error validating invite member form inputs: ", errs);
|
|
70
|
+
toast({
|
|
71
|
+
variant: "destructive",
|
|
72
|
+
title: "Error validating invite member form inputs!",
|
|
73
|
+
description: "Please ensure that the inputs have been filled correctly.",
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}), className: "flex flex-col justify-start gap-4", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Invite a member" }), _jsx(DialogDescription, { children: "Invite a user to join this organization by email address or user ID." })] }), _jsx(FormField, { control: form.control, name: "input_mode", render: ({ field }) => (_jsxs(FormItem, { className: "flex flex-row gap-2 items-center flex-wrap", children: [_jsx(FormLabel, { className: "w-full", children: "Invite by" }), _jsx(FormControl, { children: _jsxs(RadioGroup, { "data-testid": "invite-member-input-mode-radio-group", onValueChange: (value) => handleInputModeChange(value), value: field.value, disabled: submitting, name: field.name, className: "flex flex-row gap-4", children: [_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "email", id: "input-mode-email", "data-testid": "input-mode-email" }), _jsx(Label, { htmlFor: "input-mode-email", children: "Email" })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx(RadioGroupItem, { value: "uid", id: "input-mode-user-id", "data-testid": "input-mode-user-id" }), _jsx(Label, { htmlFor: "input-mode-user-id", children: "User ID" })] })] }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "identifier", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: inputLabel }), _jsx(FormControl, { children: _jsx(Input, { "data-testid": "invite-member-identifier-input", placeholder: inputPlaceholder, ...field, disabled: submitting }) }), _jsx(FormDescription, { children: inputDescription }), _jsx(FormMessage, {})] })) }), _jsxs(DialogFooter, { className: "gap-2 sm:gap-0", children: [_jsx(Button, { type: "button", variant: "outline", onClick: handleCancel, disabled: submitting, "data-testid": "cancel-invite-member-button", children: "Cancel" }), _jsxs(Button, { type: "submit", disabled: submitting, "data-testid": "submit-invite-member-form-button", children: [_jsx(UserPlus, { className: "h-4 w-4 mr-2" }), "Invite Member"] })] })] }) }) })] }));
|
|
77
|
+
}
|
|
78
|
+
export default InviteMemberDialog;
|
|
79
|
+
//# sourceMappingURL=InviteMemberDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InviteMemberDialog.js","sourceRoot":"","sources":["../../../src/components/InviteMemberDialog/InviteMemberDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/InviteMemberDialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import { type OrganizationMemberTableData } from "../OrganizationMembersTable";
|
|
3
|
+
import type { InviteMemberSubmitData } from "@schemavaults/auth-common";
|
|
3
4
|
export interface OrganizationMembersCardProps {
|
|
4
5
|
organization_id: string;
|
|
5
6
|
cardTitle?: string;
|
|
6
7
|
cardDescription?: string;
|
|
7
8
|
cardClassName?: string;
|
|
8
9
|
preloaded?: readonly OrganizationMemberTableData[];
|
|
10
|
+
inviteMember: (inviteMemberFormSubmissionData: InviteMemberSubmitData) => Promise<void>;
|
|
9
11
|
}
|
|
10
12
|
export declare function OrganizationMembersCard(props: OrganizationMembersCardProps): ReactElement;
|
|
11
13
|
export default OrganizationMembersCard;
|
|
@@ -1,39 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle, cn, } from "@schemavaults/ui";
|
|
4
|
-
import { useAuth, } from "@schemavaults/auth-react-provider";
|
|
5
4
|
import OrganizationMembersTable from "../OrganizationMembersTable";
|
|
6
5
|
import useSWR from "swr";
|
|
7
|
-
import { SCHEMAVAULTS_AUTH_APP_DEFINITION } from "@schemavaults/app-definitions";
|
|
8
6
|
export function OrganizationMembersCard(props) {
|
|
9
|
-
const authClient = useAuth();
|
|
10
7
|
const cardTitle = props.cardTitle ?? "Organization Members";
|
|
11
8
|
const cardDescription = props.cardDescription ?? "View organization members.";
|
|
12
9
|
const cardClassName = cn("w-full", props.cardClassName);
|
|
13
10
|
const listOrganizationMembersEndpoint = `/api/organizations/${props.organization_id}/members`;
|
|
14
11
|
const members = useSWR(listOrganizationMembersEndpoint, async () => {
|
|
15
|
-
if (!authClient.ready || !authClient.client.current) {
|
|
16
|
-
throw new Error("Auth client is not ready to list data!");
|
|
17
|
-
}
|
|
18
|
-
const auth = authClient.client.current;
|
|
19
|
-
let jwt;
|
|
20
|
-
try {
|
|
21
|
-
const accessToken = await auth.acquireAccessToken({
|
|
22
|
-
audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
23
|
-
token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
24
|
-
});
|
|
25
|
-
jwt = accessToken.token;
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
console.error("Failed to acquire access token in order to list organization members: ", e);
|
|
29
|
-
throw new Error("Failed to acquire access token in order to list organization members!");
|
|
30
|
-
}
|
|
31
12
|
try {
|
|
32
13
|
const response = await fetch(listOrganizationMembersEndpoint, {
|
|
33
14
|
method: "GET",
|
|
34
|
-
|
|
35
|
-
Authorization: `Bearer ${jwt}`,
|
|
36
|
-
},
|
|
15
|
+
credentials: "include",
|
|
37
16
|
});
|
|
38
17
|
if (!response.ok || response.status !== 200) {
|
|
39
18
|
throw new Error(`Failed to list organization members (response status: ${response.status})!`);
|
|
@@ -63,7 +42,7 @@ export function OrganizationMembersCard(props) {
|
|
|
63
42
|
}, {
|
|
64
43
|
fallbackData: props.preloaded,
|
|
65
44
|
});
|
|
66
|
-
return (_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(OrganizationMembersTable, { members: members }) })] }));
|
|
45
|
+
return (_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(OrganizationMembersTable, { organization_id: props.organization_id, members: members, inviteMember: props.inviteMember }) })] }));
|
|
67
46
|
}
|
|
68
47
|
export default OrganizationMembersCard;
|
|
69
48
|
//# sourceMappingURL=OrganizationMembersCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationMembersCard.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersCard/OrganizationMembersCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"OrganizationMembersCard.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersCard/OrganizationMembersCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,wBAEN,MAAM,uCAAuC,CAAC;AAC/C,OAAO,MAAM,MAAM,KAAK,CAAC;AAczB,MAAM,UAAU,uBAAuB,CACrC,KAAmC;IAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,4BAA4B,CAAC;IAE9E,MAAM,aAAa,GAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAEhE,MAAM,+BAA+B,GAAG,sBAAsB,KAAK,CAAC,eAAe,UAAU,CAAC;IAE9F,MAAM,OAAO,GAAG,MAAM,CACpB,+BAA+B,EAC/B,KAAK,IAAqD,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+BAA+B,EAAE;gBAC5D,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,CAAC,MAAM,IAAI,CAC7E,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,IACE,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,IAAI;gBACL,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBACpB,CAAC,IAAI,CAAC,OAAO,EACb,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;YACJ,CAAC;YACD,IACE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBACjB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC7B,CAAC,IAAI,CAAC,IAAI;gBACV,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC;gBACzB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EACjC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,OAAO,GAA2C,IAAI,CAAC,IAAI;iBAC9D,OAAwC,CAAC;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,EACD;QACE,YAAY,EAAE,KAAK,CAAC,SAAS;KAC9B,CACF,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,aAAa,aAC5B,MAAC,UAAU,eACT,KAAC,SAAS,cAAE,SAAS,GAAa,EAClC,KAAC,eAAe,cAAE,eAAe,GAAmB,IACzC,EACb,KAAC,WAAW,cACV,KAAC,wBAAwB,IACvB,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,CAAC,YAAY,GAChC,GACU,IAIT,CACR,CAAC;AACJ,CAAC;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { SWRResponse } from "swr";
|
|
3
3
|
import { type OrganizationMemberTableData } from "./columns";
|
|
4
|
+
import type { InviteMemberSubmitData, OrganizationID } from "@schemavaults/auth-common";
|
|
4
5
|
export interface OrganizationMembersDatatableProps {
|
|
6
|
+
organization_id: OrganizationID;
|
|
5
7
|
members: SWRResponse<readonly OrganizationMemberTableData[], Error>;
|
|
8
|
+
inviteMember: (inviteMemberFormSubmissionData: InviteMemberSubmitData) => Promise<void>;
|
|
6
9
|
}
|
|
7
|
-
export declare function OrganizationMembersTable({ members }: OrganizationMembersDatatableProps): ReactElement;
|
|
10
|
+
export declare function OrganizationMembersTable({ organization_id, members, inviteMember, }: OrganizationMembersDatatableProps): ReactElement;
|
|
@@ -3,7 +3,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
3
3
|
import { Datatable } from "@schemavaults/ui";
|
|
4
4
|
import { columns } from "./columns";
|
|
5
5
|
import { Loader2 } from "lucide-react";
|
|
6
|
-
|
|
6
|
+
import InviteMemberDialog from "../InviteMemberDialog";
|
|
7
|
+
export function OrganizationMembersTable({ organization_id, members, inviteMember, }) {
|
|
7
8
|
const { isLoading, data } = members;
|
|
8
9
|
if (!data && isLoading) {
|
|
9
10
|
return (_jsx("div", { className: "min-h-48 w-full flex items-center justify-center", children: _jsx(Loader2, { className: "h-12 w-12 animate-spin" }) }));
|
|
@@ -17,7 +18,7 @@ export function OrganizationMembersTable({ members }) {
|
|
|
17
18
|
email_verified: false,
|
|
18
19
|
membership_created_at: true,
|
|
19
20
|
}, HeaderButtons: () => {
|
|
20
|
-
return _jsx(_Fragment, {});
|
|
21
|
-
}, datatypeLabel: "Member", searchColumn: [
|
|
21
|
+
return (_jsx(_Fragment, { children: _jsx(InviteMemberDialog, { organization_id: organization_id, onSubmit: inviteMember }) }));
|
|
22
|
+
}, datatypeLabel: "Member", searchColumn: ["email"] }));
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=OrganizationMembersTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationMembersTable.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersTable/OrganizationMembersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAoC,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"OrganizationMembersTable.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersTable/OrganizationMembersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAoC,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAcjE,MAAM,UAAU,wBAAwB,CAAC,EACvC,eAAe,EACf,OAAO,EACP,YAAY,GACsB;IAClC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,KAAK;YACrB,qBAAqB,EAAE,IAAI;SAC5B,EACD,aAAa,EAAE,GAAiB,EAAE;YAChC,OAAO,CACL,4BACE,KAAC,kBAAkB,IACjB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,YAAY,GACtB,GACD,CACJ,CAAC;QACJ,CAAC,EACD,aAAa,EAAC,QAAQ,EACtB,YAAY,EAAE,CAAC,OAAO,CAAC,GACvB,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Checkbox, useToast } from "@schemavaults/ui";
|
|
4
4
|
import { Button } from "@schemavaults/ui";
|
|
5
|
-
import { ClipboardCopy, MoreHorizontal, ShieldCheck, ShieldX } from "lucide-react";
|
|
5
|
+
import { ClipboardCopy, MoreHorizontal, ShieldCheck, ShieldX, } from "lucide-react";
|
|
6
6
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
7
7
|
import printDateTime from "../../lib/printDateTime";
|
|
8
8
|
export const columns = [
|
|
@@ -25,7 +25,7 @@ export const columns = [
|
|
|
25
25
|
header: "Role",
|
|
26
26
|
cell: ({ row }) => {
|
|
27
27
|
const member = row.original;
|
|
28
|
-
return
|
|
28
|
+
return _jsx("span", { className: "capitalize", children: member.role });
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
31
|
{
|
|
@@ -61,7 +61,7 @@ export const columns = [
|
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
id: "actions",
|
|
64
|
-
cell: function OrganizationMembersTableRowActionsCell({ row }) {
|
|
64
|
+
cell: function OrganizationMembersTableRowActionsCell({ row, }) {
|
|
65
65
|
const { toast } = useToast();
|
|
66
66
|
const member = row.original;
|
|
67
67
|
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", children: [_jsx("span", { className: "sr-only", children: "Open menu" }), _jsx(MoreHorizontal, { className: "h-4 w-4" })] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuLabel, { children: "Actions" }), _jsxs(DropdownMenuItem, { onClick: (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/OrganizationMembersTable/columns.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import {
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { OrganizationDefinition } from "@schemavaults/auth-common";
|
|
3
3
|
export interface OrganizationsCardProps {
|
|
4
4
|
cardTitle?: string;
|
|
5
5
|
cardDescription?: string;
|
|
@@ -1,75 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
3
4
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle, cn, } from "@schemavaults/ui";
|
|
4
|
-
import { useAuth, } from "@schemavaults/auth-react-provider";
|
|
5
5
|
import OrganizationsTable from "../OrganizationsTable";
|
|
6
|
-
import {
|
|
7
|
-
import useSWR from "swr";
|
|
8
|
-
import { SCHEMAVAULTS_AUTH_APP_DEFINITION } from "@schemavaults/app-definitions";
|
|
9
|
-
const listAllOrganizationsEndpoint = "/api/admin/organizations";
|
|
6
|
+
import CreateOrganizationDialog, { CreateOrganizationDialogDispatchContext, } from "../CreateOrganizationDialog";
|
|
10
7
|
export function OrganizationsCard(props) {
|
|
11
|
-
const authClient = useAuth();
|
|
12
8
|
const cardTitle = props.cardTitle ?? "Organizations";
|
|
13
9
|
const cardDescription = props.cardDescription ?? "View and manage organizations.";
|
|
10
|
+
const [createOrganizationDialogOpen, setCreateOrganizationDialogOpen] = useState(false);
|
|
14
11
|
const cardClassName = cn("w-full", props.cardClassName);
|
|
15
|
-
|
|
16
|
-
if (!authClient.ready || !authClient.client.current) {
|
|
17
|
-
throw new Error("Auth client is not ready to list data!");
|
|
18
|
-
}
|
|
19
|
-
const auth = authClient.client.current;
|
|
20
|
-
let jwt;
|
|
21
|
-
try {
|
|
22
|
-
const accessToken = await auth.acquireAccessToken({
|
|
23
|
-
audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
24
|
-
token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
25
|
-
});
|
|
26
|
-
jwt = accessToken.token;
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
console.error("Failed to acquire access token in order to list organizations: ", e);
|
|
30
|
-
throw new Error("Failed to acquire access token in order to list organizations!");
|
|
31
|
-
}
|
|
32
|
-
try {
|
|
33
|
-
const response = await fetch(listAllOrganizationsEndpoint, {
|
|
34
|
-
method: "GET",
|
|
35
|
-
headers: {
|
|
36
|
-
Authorization: `Bearer ${jwt}`,
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
if (!response.ok || response.status !== 200) {
|
|
40
|
-
throw new Error(`Failed to list organizations (response status: ${response.status})!`);
|
|
41
|
-
}
|
|
42
|
-
const body = await response.json();
|
|
43
|
-
if (typeof body !== "object" ||
|
|
44
|
-
!body ||
|
|
45
|
-
!("success" in body) ||
|
|
46
|
-
!body.success) {
|
|
47
|
-
throw new Error("Received failure response when attempting to list organizations");
|
|
48
|
-
}
|
|
49
|
-
if (!("data" in body) ||
|
|
50
|
-
typeof body.data !== "object" ||
|
|
51
|
-
!body.data ||
|
|
52
|
-
!("organizations" in body.data) ||
|
|
53
|
-
!Array.isArray(body.data.organizations)) {
|
|
54
|
-
throw new Error("Failed to extract 'organizations' array from response!");
|
|
55
|
-
}
|
|
56
|
-
const parsed_organizations = await organizationDefinitionSchema
|
|
57
|
-
.array()
|
|
58
|
-
.safeParseAsync(body.data.organizations);
|
|
59
|
-
if (!parsed_organizations.success) {
|
|
60
|
-
console.error(`Failed to parse 'organizations' from response object: `, parsed_organizations.error);
|
|
61
|
-
throw new Error("Failed to parse 'organizations' from response object!");
|
|
62
|
-
}
|
|
63
|
-
const organizations = parsed_organizations.data;
|
|
64
|
-
return organizations;
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
console.error(`Failed to list organizations: `, e);
|
|
68
|
-
throw new Error(`Failed to list organizations!`);
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
fallbackData: props.preloaded,
|
|
72
|
-
});
|
|
73
|
-
return (_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(OrganizationsTable, { organizations: organizations }) })] }));
|
|
12
|
+
return (_jsxs(CreateOrganizationDialogDispatchContext.Provider, { value: setCreateOrganizationDialogOpen, children: [_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(OrganizationsTable, { preloaded_organizations: props.preloaded }) })] }), _jsx(CreateOrganizationDialog, { open: createOrganizationDialogOpen, onOpenChange: setCreateOrganizationDialogOpen })] }));
|
|
74
13
|
}
|
|
75
14
|
//# sourceMappingURL=OrganizationsCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationsCard.js","sourceRoot":"","sources":["../../../src/components/OrganizationsCard/OrganizationsCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"OrganizationsCard.js","sourceRoot":"","sources":["../../../src/components/OrganizationsCard/OrganizationsCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAEjE,OAAO,wBAAwB,EAAE,EAC/B,uCAAuC,GACxC,MAAM,uCAAuC,CAAC;AAS/C,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,eAAe,CAAC;IACrD,MAAM,eAAe,GACnB,KAAK,CAAC,eAAe,IAAI,gCAAgC,CAAC;IAC5D,MAAM,CAAC,4BAA4B,EAAE,+BAA+B,CAAC,GACnE,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC3B,MAAM,aAAa,GAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAEhE,OAAO,CACL,MAAC,uCAAuC,CAAC,QAAQ,IAC/C,KAAK,EAAE,+BAA+B,aAEtC,MAAC,IAAI,IAAC,SAAS,EAAE,aAAa,aAC5B,MAAC,UAAU,eACT,KAAC,SAAS,cAAE,SAAS,GAAa,EAClC,KAAC,eAAe,cAAE,eAAe,GAAmB,IACzC,EACb,KAAC,WAAW,cACV,KAAC,kBAAkB,IAAC,uBAAuB,EAAE,KAAK,CAAC,SAAS,GAAI,GACpD,IACT,EACP,KAAC,wBAAwB,IACvB,IAAI,EAAE,4BAA4B,EAClC,YAAY,EAAE,+BAA+B,GAC7C,IAC+C,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type ReactElement } from "react";
|
|
2
|
-
import type { SWRResponse } from "swr";
|
|
3
2
|
import type { OrganizationDefinition } from "@schemavaults/auth-common";
|
|
4
3
|
export interface OrganizationsDatatableProps {
|
|
5
|
-
|
|
4
|
+
preloaded_organizations: readonly OrganizationDefinition[] | undefined;
|
|
6
5
|
}
|
|
7
|
-
export declare function OrganizationsTable({
|
|
6
|
+
export declare function OrganizationsTable({ preloaded_organizations, }: OrganizationsDatatableProps): ReactElement;
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useContext } from "react";
|
|
3
4
|
import { Datatable } from "@schemavaults/ui";
|
|
4
5
|
import { columns } from "./columns";
|
|
5
6
|
import { Loader2 } from "lucide-react";
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
import { CreateOrganizationDialogTrigger } from "../CreateOrganizationDialog";
|
|
8
|
+
import { CreateOrganizationDialogDispatchContext } from "../CreateOrganizationDialog";
|
|
9
|
+
import useAllOrganizationsList from "./useAllOrganizationsList";
|
|
10
|
+
function OrganizationsTableHeaderButtons() {
|
|
11
|
+
const onOpenChange = useContext(CreateOrganizationDialogDispatchContext);
|
|
12
|
+
return _jsx(CreateOrganizationDialogTrigger, { onOpenChange: onOpenChange });
|
|
9
13
|
}
|
|
10
|
-
export function OrganizationsTable({
|
|
11
|
-
const { isLoading, data } =
|
|
14
|
+
export function OrganizationsTable({ preloaded_organizations, }) {
|
|
15
|
+
const { isLoading, data } = useAllOrganizationsList({
|
|
16
|
+
initialData: preloaded_organizations,
|
|
17
|
+
});
|
|
12
18
|
if (!data && isLoading) {
|
|
13
19
|
return (_jsx("div", { className: "min-h-48 w-full flex items-center justify-center", children: _jsx(Loader2, { className: "h-12 w-12 animate-spin" }) }));
|
|
14
20
|
}
|
|
@@ -18,8 +24,6 @@ export function OrganizationsTable({ organizations, }) {
|
|
|
18
24
|
organization_id: true,
|
|
19
25
|
name: true,
|
|
20
26
|
created_at: true,
|
|
21
|
-
}, HeaderButtons:
|
|
22
|
-
return (_jsx(CreateOrganizationDialog, { clearOrganizationsCache: clearOrganizationsCache }));
|
|
23
|
-
}, datatypeLabel: "Organization", searchColumn: ["organization_id", "name"] }));
|
|
27
|
+
}, HeaderButtons: OrganizationsTableHeaderButtons, datatypeLabel: "Organization", searchColumn: ["organization_id", "name"] }));
|
|
24
28
|
}
|
|
25
29
|
//# sourceMappingURL=OrganizationsTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationsTable.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/OrganizationsTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"OrganizationsTable.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/OrganizationsTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAqB,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,uCAAuC,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAMhE,SAAS,+BAA+B;IACtC,MAAM,YAAY,GAA2B,UAAU,CACrD,uCAAuC,CACxC,CAAC;IACF,OAAO,KAAC,+BAA+B,IAAC,YAAY,EAAE,YAAY,GAAI,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,uBAAuB,GACK;IAC5B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,uBAAuB,CAAC;QAClD,WAAW,EAAE,uBAAuB;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI;SACjB,EACD,aAAa,EAAE,+BAA+B,EAC9C,aAAa,EAAC,cAAc,EAC5B,YAAY,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,GACzC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/columns.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,OAAO,GAAwC;IAC1D;QACE,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,QAAQ,IACP,OAAO,EACL,KAAK,CAAC,wBAAwB,EAAE;gBAChC,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,EAExD,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAClC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAE/B,YAAY,GACvB,CACH;QACD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,gBACrD,YAAY,GACvB,CACH;QACD,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;KACpB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,GAAG,GAA2B,GAAG,CAAC,QAAQ,CAAC;YACjD,OAAO,CACL,KAAC,IAAI,IACH,IAAI,EAAE,QAAQ,GAAG,CAAC,eAAe,EAAE,EACnC,SAAS,EAAC,8BAA8B,YAEvC,GAAG,CAAC,eAAe,GACf,CACR,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,GAAG,GAA2B,GAAG,CAAC,QAAQ,CAAC;YACjD,OAAO,CACL,KAAC,IAAI,IACH,IAAI,EAAE,QAAQ,GAAG,CAAC,eAAe,EAAE,EACnC,SAAS,EAAC,8BAA8B,YAEvC,GAAG,CAAC,IAAI,GACJ,CACR,CAAC;QACJ,CAAC;KACF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,GAAG,GAA2B,GAAG,CAAC,QAAQ,CAAC;YACjD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,wBAAM,aAAa,CAAC,MAAM,CAAC,GAAO,CAAC;QAC5C,CAAC;KACF;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS,gCAAgC,CAAC,EAAE,GAAG,EAAE;YACrD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAA2B,GAAG,CAAC,QAAQ,CAAC;YAEjD,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,aAAa,aAC7C,eAAM,SAAS,EAAC,SAAS,0BAAiB,EAC1C,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,GAAG,IAC/B,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,aAC9B,KAAC,iBAAiB,0BAA4B,EAC9C,KAAC,gBAAgB,IAAC,OAAO,kBACvB,MAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,eAAe,EAAE,aACvC,KAAC,GAAG,IAAC,SAAS,EAAC,cAAc,GAAG,0BAC3B,GACU,EACnB,MAAC,gBAAgB,IACf,OAAO,EAAE,CAAC,CAAC,EAAQ,EAAE;oCACnB,CAAC,CAAC,cAAc,EAAE,CAAC;oCACnB,MAAM,eAAe,GAAW,GAAG,CAAC,eAAe,CAAC;oCACpD,SAAS,CAAC,SAAS;yCAChB,SAAS,CAAC,eAAe,CAAC;yCAC1B,IAAI,CAAC,GAAS,EAAE;wCACf,KAAK,CAAC;4CACJ,KAAK,EACH,mDAAmD;4CACrD,WAAW,EAAE,oCAAoC,eAAe,wBAAwB;yCACzF,CAAC,CAAC;oCACL,CAAC,CAAC;yCACD,KAAK,CAAC,CAAC,CAAU,EAAQ,EAAE;wCAC1B,KAAK,CAAC;4CACJ,KAAK,EAAE,8CAA8C;4CACrD,WAAW,EACT,CAAC,YAAY,KAAK;gDAChB,CAAC,CAAC,CAAC,CAAC,OAAO;gDACX,CAAC,CAAC,gCAAgC;yCACvC,CAAC,CAAC;oCACL,CAAC,CAAC,CAAC;gCACP,CAAC,aAED,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,GAAG,6BACzB,IACC,IACT,CAChB,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export { OrganizationsTable, OrganizationsTable as default } from "./OrganizationsTable";
|
|
1
|
+
export { OrganizationsTable, OrganizationsTable as default, } from "./OrganizationsTable";
|
|
2
2
|
export type { OrganizationsDatatableProps } from "./OrganizationsTable";
|
|
3
|
+
export { useAllOrganizationsList, clearUseAllOrganizationsListCache, } from "./useAllOrganizationsList";
|
|
4
|
+
export type { UseAllOrganizationsListOptions } from "./useAllOrganizationsList";
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { OrganizationsTable, OrganizationsTable as default } from "./OrganizationsTable";
|
|
1
|
+
export { OrganizationsTable, OrganizationsTable as default, } from "./OrganizationsTable";
|
|
2
|
+
export { useAllOrganizationsList, clearUseAllOrganizationsListCache, } from "./useAllOrganizationsList";
|
|
2
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,IAAI,OAAO,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SWRResponse, useSWRConfig } from "swr";
|
|
2
|
+
import { type OrganizationDefinition } from "@schemavaults/auth-common";
|
|
3
|
+
export interface UseAllOrganizationsListOptions {
|
|
4
|
+
initialData?: readonly OrganizationDefinition[] | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare function clearUseAllOrganizationsListCache(mutate: ReturnType<typeof useSWRConfig>["mutate"]): void;
|
|
7
|
+
export declare function useAllOrganizationsList({ initialData, }: UseAllOrganizationsListOptions): SWRResponse<readonly OrganizationDefinition[]>;
|
|
8
|
+
export default useAllOrganizationsList;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useToast } from "@schemavaults/ui";
|
|
3
|
+
import useSWR from "swr";
|
|
4
|
+
import { organizationDefinitionSchema, } from "@schemavaults/auth-common";
|
|
5
|
+
const LIST_ALL_ORGANIZATIONS_ENDPOINT = "/api/organizations";
|
|
6
|
+
export function clearUseAllOrganizationsListCache(mutate) {
|
|
7
|
+
mutate((key) => key.startsWith(LIST_ALL_ORGANIZATIONS_ENDPOINT), undefined, {
|
|
8
|
+
revalidate: true,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export function useAllOrganizationsList({ initialData, }) {
|
|
12
|
+
const { toast } = useToast();
|
|
13
|
+
return useSWR(LIST_ALL_ORGANIZATIONS_ENDPOINT, async () => {
|
|
14
|
+
try {
|
|
15
|
+
const response = await fetch(LIST_ALL_ORGANIZATIONS_ENDPOINT, {
|
|
16
|
+
method: "GET",
|
|
17
|
+
credentials: "include",
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok || response.status !== 200) {
|
|
20
|
+
throw new Error(`Failed to list organizations (response status: ${response.status})!`);
|
|
21
|
+
}
|
|
22
|
+
const body = await response.json();
|
|
23
|
+
if (typeof body !== "object" ||
|
|
24
|
+
!body ||
|
|
25
|
+
!("success" in body) ||
|
|
26
|
+
!body.success) {
|
|
27
|
+
throw new Error("Received failure response when attempting to list organizations");
|
|
28
|
+
}
|
|
29
|
+
if (!("data" in body) ||
|
|
30
|
+
typeof body.data !== "object" ||
|
|
31
|
+
!body.data ||
|
|
32
|
+
!("organizations" in body.data) ||
|
|
33
|
+
!Array.isArray(body.data.organizations)) {
|
|
34
|
+
throw new Error("Failed to extract 'organizations' array from response!");
|
|
35
|
+
}
|
|
36
|
+
const parsed_organizations = await organizationDefinitionSchema
|
|
37
|
+
.array()
|
|
38
|
+
.safeParseAsync(body.data.organizations);
|
|
39
|
+
if (!parsed_organizations.success) {
|
|
40
|
+
console.error(`Failed to parse 'organizations' from response object: `, parsed_organizations.error);
|
|
41
|
+
throw new Error("Failed to parse 'organizations' from response object!");
|
|
42
|
+
}
|
|
43
|
+
return parsed_organizations.data;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
toast({
|
|
47
|
+
variant: "destructive",
|
|
48
|
+
title: "Error loading organizations",
|
|
49
|
+
description: `${error instanceof Error ? error.message : "An unknown error occurred."}`,
|
|
50
|
+
});
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
fallbackData: initialData ? [...initialData] : undefined,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export default useAllOrganizationsList;
|
|
58
|
+
//# sourceMappingURL=useAllOrganizationsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAllOrganizationsList.js","sourceRoot":"","sources":["../../../src/components/OrganizationsTable/useAllOrganizationsList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,MAA0C,MAAM,KAAK,CAAC;AAC7D,OAAO,EACL,4BAA4B,GAE7B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,+BAA+B,GAAG,oBAAoB,CAAC;AAE7D,MAAM,UAAU,iCAAiC,CAC/C,MAAiD;IAEjD,MAAM,CACJ,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAChE,SAAS,EACT;QACE,UAAU,EAAE,IAAI;KACjB,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,EACtC,WAAW,GACoB;IAG/B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,OAAO,MAAM,CACX,+BAA+B,EAC/B,KAAK,IAAgD,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+BAA+B,EAAE;gBAC5D,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,kDAAkD,QAAQ,CAAC,MAAM,IAAI,CACtE,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,IACE,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,IAAI;gBACL,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC;gBACpB,CAAC,IAAI,CAAC,OAAO,EACb,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;YACJ,CAAC;YACD,IACE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;gBACjB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC7B,CAAC,IAAI,CAAC,IAAI;gBACV,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC;gBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EACvC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;YACJ,CAAC;YAED,MAAM,oBAAoB,GAAG,MAAM,4BAA4B;iBAC5D,KAAK,EAAE;iBACP,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE3C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,oBAAoB,CAAC,KAAK,CAC3B,CAAC;gBACF,MAAM,IAAI,KAAK,CACb,uDAAuD,CACxD,CAAC;YACJ,CAAC;YAED,OAAO,oBAAoB,CAAC,IAAI,CAAC;QACnC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,KAAK,CAAC;gBACJ,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,EAAE;aACxF,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,EACD;QACE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;KACzD,CACF,CAAC;AACJ,CAAC;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,40 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cn, } from "@schemavaults/ui";
|
|
4
|
-
import { useAuth, } from "@schemavaults/auth-react-provider";
|
|
5
4
|
import UsersTable from "../UsersTable";
|
|
6
5
|
import { userDataSchema } from "@schemavaults/auth-common";
|
|
7
6
|
import useSWR from "swr";
|
|
8
|
-
import { SCHEMAVAULTS_AUTH_APP_DEFINITION } from "@schemavaults/app-definitions";
|
|
9
7
|
export function UsersCard(props) {
|
|
10
|
-
const authClient = useAuth();
|
|
11
8
|
const cardTitle = props.cardTitle ?? "Users";
|
|
12
9
|
const cardDescription = props.cardDescription ?? "View and manage registered users.";
|
|
13
10
|
const cardClassName = cn("w-full", props.cardClassName);
|
|
14
11
|
const listAllUsersEndpoint = "/api/admin/users/list";
|
|
15
12
|
const users = useSWR(listAllUsersEndpoint, async () => {
|
|
16
|
-
if (!authClient.ready || !authClient.client.current) {
|
|
17
|
-
throw new Error("Auth client is not ready to list data!");
|
|
18
|
-
}
|
|
19
|
-
const auth = authClient.client.current;
|
|
20
|
-
let jwt;
|
|
21
|
-
try {
|
|
22
|
-
const accessToken = await auth.acquireAccessToken({
|
|
23
|
-
audience: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
24
|
-
token_id: SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
25
|
-
});
|
|
26
|
-
jwt = accessToken.token;
|
|
27
|
-
}
|
|
28
|
-
catch (e) {
|
|
29
|
-
console.error("Failed to acquire access token in order to list users: ", e);
|
|
30
|
-
throw new Error("Failed to acquire access token in order to list users!");
|
|
31
|
-
}
|
|
32
13
|
try {
|
|
33
14
|
const response = await fetch(listAllUsersEndpoint, {
|
|
34
15
|
method: "GET",
|
|
35
|
-
|
|
36
|
-
Authorization: `Bearer ${jwt}`,
|
|
37
|
-
},
|
|
16
|
+
credentials: "include",
|
|
38
17
|
});
|
|
39
18
|
if (!response.ok || response.status !== 200) {
|
|
40
19
|
throw new Error(`Failed to list users (response status: ${response.status})!`);
|