@schemavaults/auth-ui 0.6.19 → 0.6.28
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/ApiServersCard/api_servers_card.d.ts +1 -0
- package/dist/components/ApiServersCard/api_servers_card.js +2 -2
- package/dist/components/ApiServersCard/api_servers_card.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServerRowActions.d.ts +6 -0
- package/dist/components/ApiServersTable/ApiServerRowActions.js +47 -0
- package/dist/components/ApiServersTable/ApiServerRowActions.js.map +1 -0
- package/dist/components/ApiServersTable/ApiServersTable.d.ts +2 -1
- package/dist/components/ApiServersTable/ApiServersTable.js +19 -17
- package/dist/components/ApiServersTable/ApiServersTable.js.map +1 -1
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.d.ts +4 -0
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.js +6 -0
- package/dist/components/ApiServersTable/ApiServersTableConfigContext.js.map +1 -0
- package/dist/components/ApiServersTable/columns.d.ts +1 -1
- package/dist/components/ApiServersTable/columns.js +5 -33
- package/dist/components/ApiServersTable/columns.js.map +1 -1
- package/dist/components/ApiServersTable/index.d.ts +2 -0
- package/dist/components/ApiServersTable/index.js +1 -0
- package/dist/components/ApiServersTable/index.js.map +1 -1
- package/dist/components/AppsTable/frontend_app_actions.d.ts +1 -1
- package/dist/components/AppsTable/frontend_app_actions.js +70 -44
- package/dist/components/AppsTable/frontend_app_actions.js.map +1 -1
- package/dist/components/AppsTable/useAppDomains.d.ts +1 -1
- package/dist/components/AppsTable/useAppDomains.js +12 -11
- package/dist/components/AppsTable/useAppDomains.js.map +1 -1
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.d.ts +3 -2
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js +21 -8
- package/dist/components/ConnectAppToApiDialog/ConnectAppToApiDialog.js.map +1 -1
- package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js +41 -39
- package/dist/components/CreateAppDomainDialog/CreateAppDomainDialog.js.map +1 -1
- package/dist/components/CreateOrganizationDialog/CreateOrganizationDialog.js.map +1 -1
- package/dist/components/CreateOrganizationDialog/CreateOrganizationForm.js +1 -1
- package/dist/components/CreateOrganizationDialog/CreateOrganizationForm.js.map +1 -1
- package/dist/components/InviteCodesTable/columns.js +13 -10
- package/dist/components/InviteCodesTable/columns.js.map +1 -1
- package/dist/components/InviteMemberDialog/InviteMemberDialog.d.ts +7 -3
- package/dist/components/InviteMemberDialog/InviteMemberDialog.js +25 -18
- package/dist/components/InviteMemberDialog/InviteMemberDialog.js.map +1 -1
- package/dist/components/InviteMemberDialog/InviteMemberDialogDispatchContext.d.ts +2 -0
- package/dist/components/InviteMemberDialog/InviteMemberDialogDispatchContext.js +8 -0
- package/dist/components/InviteMemberDialog/InviteMemberDialogDispatchContext.js.map +1 -0
- package/dist/components/InviteMemberDialog/index.d.ts +3 -2
- package/dist/components/InviteMemberDialog/index.js +2 -1
- package/dist/components/InviteMemberDialog/index.js.map +1 -1
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.d.ts +1 -1
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.js +4 -37
- package/dist/components/OrganizationMembersCard/OrganizationMembersCard.js.map +1 -1
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.d.ts +3 -5
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.js +40 -7
- package/dist/components/OrganizationMembersTable/OrganizationMembersTable.js.map +1 -1
- package/dist/components/OrganizationMembersTable/columns.js +69 -14
- package/dist/components/OrganizationMembersTable/columns.js.map +1 -1
- package/dist/components/OrganizationSettingsCard/DeleteOrganizationDialog.d.ts +10 -0
- package/dist/components/OrganizationSettingsCard/DeleteOrganizationDialog.js +54 -0
- package/dist/components/OrganizationSettingsCard/DeleteOrganizationDialog.js.map +1 -0
- package/dist/components/OrganizationSettingsCard/OrganizationSettingsCard.d.ts +10 -0
- package/dist/components/OrganizationSettingsCard/OrganizationSettingsCard.js +20 -0
- package/dist/components/OrganizationSettingsCard/OrganizationSettingsCard.js.map +1 -0
- package/dist/components/OrganizationSettingsCard/index.d.ts +4 -0
- package/dist/components/OrganizationSettingsCard/index.js +3 -0
- package/dist/components/OrganizationSettingsCard/index.js.map +1 -0
- package/dist/components/OrganizationsTable/columns.js +14 -10
- package/dist/components/OrganizationsTable/columns.js.map +1 -1
- package/dist/components/PendingInvitationsCard/PendingInvitationsCard.d.ts +10 -0
- package/dist/components/PendingInvitationsCard/PendingInvitationsCard.js +13 -0
- package/dist/components/PendingInvitationsCard/PendingInvitationsCard.js.map +1 -0
- package/dist/components/PendingInvitationsCard/index.d.ts +2 -0
- package/dist/components/PendingInvitationsCard/index.js +2 -0
- package/dist/components/PendingInvitationsCard/index.js.map +1 -0
- package/dist/components/PendingInvitationsTable/PendingInvitationsTable.d.ts +7 -0
- package/dist/components/PendingInvitationsTable/PendingInvitationsTable.js +30 -0
- package/dist/components/PendingInvitationsTable/PendingInvitationsTable.js.map +1 -0
- package/dist/components/PendingInvitationsTable/columns.d.ts +3 -0
- package/dist/components/PendingInvitationsTable/columns.js +100 -0
- package/dist/components/PendingInvitationsTable/columns.js.map +1 -0
- package/dist/components/PendingInvitationsTable/index.d.ts +4 -0
- package/dist/components/PendingInvitationsTable/index.js +3 -0
- package/dist/components/PendingInvitationsTable/index.js.map +1 -0
- package/dist/components/PendingInvitationsTable/usePendingInvitations.d.ts +10 -0
- package/dist/components/PendingInvitationsTable/usePendingInvitations.js +48 -0
- package/dist/components/PendingInvitationsTable/usePendingInvitations.js.map +1 -0
- package/dist/components/SentInvitationsCard/SentInvitationsCard.d.ts +11 -0
- package/dist/components/SentInvitationsCard/SentInvitationsCard.js +13 -0
- package/dist/components/SentInvitationsCard/SentInvitationsCard.js.map +1 -0
- package/dist/components/SentInvitationsCard/index.d.ts +2 -0
- package/dist/components/SentInvitationsCard/index.js +2 -0
- package/dist/components/SentInvitationsCard/index.js.map +1 -0
- package/dist/components/SentInvitationsTable/SentInvitationsTable.d.ts +8 -0
- package/dist/components/SentInvitationsTable/SentInvitationsTable.js +32 -0
- package/dist/components/SentInvitationsTable/SentInvitationsTable.js.map +1 -0
- package/dist/components/SentInvitationsTable/columns.d.ts +3 -0
- package/dist/components/SentInvitationsTable/columns.js +130 -0
- package/dist/components/SentInvitationsTable/columns.js.map +1 -0
- package/dist/components/SentInvitationsTable/index.d.ts +4 -0
- package/dist/components/SentInvitationsTable/index.js +3 -0
- package/dist/components/SentInvitationsTable/index.js.map +1 -0
- package/dist/components/SentInvitationsTable/useSentInvitations.d.ts +12 -0
- package/dist/components/SentInvitationsTable/useSentInvitations.js +52 -0
- package/dist/components/SentInvitationsTable/useSentInvitations.js.map +1 -0
- package/dist/components/UsersTable/columns.js +28 -20
- package/dist/components/UsersTable/columns.js.map +1 -1
- package/dist/components/index.d.ts +14 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -9,6 +9,7 @@ export interface ApiServersCardProps {
|
|
|
9
9
|
organization_id?: string;
|
|
10
10
|
preloaded?: PreloadedApiServersTableData;
|
|
11
11
|
uuid: () => string;
|
|
12
|
+
showConnectAppToApi?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare function ApiServersCard(props: ApiServersCardProps): ReactElement;
|
|
14
15
|
export default ApiServersCard;
|
|
@@ -13,9 +13,9 @@ export function ApiServersCard(props) {
|
|
|
13
13
|
const cardClassName = cn("w-full", props.cardClassName);
|
|
14
14
|
const [createApiServerDialogOpen, setCreateApiServerDialogOpen] = useState(false);
|
|
15
15
|
const [connectAppToApiDialogOpen, setConnectAppToApiDialogOpen] = useState(false);
|
|
16
|
-
return (_jsx(CreateApiServerDialogOpenDispatchContext.Provider, { value: setCreateApiServerDialogOpen, children: _jsxs(ConnectAppToApiDialogOpenDispatchContext.Provider, { value: setConnectAppToApiDialogOpen, children: [_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(ApiServersTable, { queryType: props.queryType, organization_id: props.organization_id, preloaded: props.preloaded }) }), _jsx(CardFooter, { children: _jsx("div", { className: "flex flex-row items-start justify-start gap-2" }) })] }), _jsx(CreateApiServerDialog, { clearApiServersCache: clearUseApiServersCache, owner_organization_id: props.queryType === "all"
|
|
16
|
+
return (_jsx(CreateApiServerDialogOpenDispatchContext.Provider, { value: setCreateApiServerDialogOpen, children: _jsxs(ConnectAppToApiDialogOpenDispatchContext.Provider, { value: setConnectAppToApiDialogOpen, children: [_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(ApiServersTable, { queryType: props.queryType, organization_id: props.organization_id, preloaded: props.preloaded, showConnectAppToApi: props.showConnectAppToApi }) }), _jsx(CardFooter, { children: _jsx("div", { className: "flex flex-row items-start justify-start gap-2" }) })] }), _jsx(CreateApiServerDialog, { clearApiServersCache: clearUseApiServersCache, owner_organization_id: props.queryType === "all"
|
|
17
17
|
? SCHEMAVAULTS_ORGANIZATION_ID
|
|
18
|
-
: props.organization_id, open: createApiServerDialogOpen, onOpenChange: setCreateApiServerDialogOpen, uuid: props.uuid }), props.queryType === "all" && (_jsx(ConnectAppToApiDialog, { open: connectAppToApiDialogOpen, onOpenChange: setConnectAppToApiDialogOpen }))] }) }));
|
|
18
|
+
: props.organization_id, open: createApiServerDialogOpen, onOpenChange: setCreateApiServerDialogOpen, uuid: props.uuid }), (props.queryType === "all" || props.showConnectAppToApi) && (_jsx(ConnectAppToApiDialog, { open: connectAppToApiDialogOpen, onOpenChange: setConnectAppToApiDialogOpen }))] }) }));
|
|
19
19
|
}
|
|
20
20
|
export default ApiServersCard;
|
|
21
21
|
//# sourceMappingURL=api_servers_card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_servers_card.js","sourceRoot":"","sources":["../../../src/components/ApiServersCard/api_servers_card.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,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,uBAAuB,GAExB,MAAM,8BAA8B,CAAC;AACtC,OAAO,qBAAqB,EAAE,EAC5B,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,qBAAqB,EAAE,EAC5B,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"api_servers_card.js","sourceRoot":"","sources":["../../../src/components/ApiServersCard/api_servers_card.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,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,uBAAuB,GAExB,MAAM,8BAA8B,CAAC;AACtC,OAAO,qBAAqB,EAAE,EAC5B,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,qBAAqB,EAAE,EAC5B,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;AAa5C,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC;IACnD,MAAM,eAAe,GACnB,KAAK,CAAC,eAAe;QACrB,0EAA0E,CAAC;IAE7E,MAAM,aAAa,GAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAC7D,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC3B,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAC7D,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE3B,OAAO,CACL,KAAC,wCAAwC,CAAC,QAAQ,IAChD,KAAK,EAAE,4BAA4B,YAEnC,MAAC,wCAAwC,CAAC,QAAQ,IAChD,KAAK,EAAE,4BAA4B,aAEnC,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,eAAe,IACd,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAC9C,GACU,EACd,KAAC,UAAU,cACT,cAAK,SAAS,EAAC,+CAA+C,GAAO,GAC1D,IACR,EACP,KAAC,qBAAqB,IACpB,oBAAoB,EAAE,uBAAuB,EAC7C,qBAAqB,EACnB,KAAK,CAAC,SAAS,KAAK,KAAK;wBACvB,CAAC,CAAC,4BAA4B;wBAC9B,CAAC,CAAC,KAAK,CAAC,eAAe,EAE3B,IAAI,EAAE,yBAAyB,EAC/B,YAAY,EAAE,4BAA4B,EAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,GAChB,EACD,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAC3D,KAAC,qBAAqB,IACpB,IAAI,EAAE,yBAAyB,EAC/B,YAAY,EAAE,4BAA4B,GAC1C,CACH,IACiD,GACF,CACrD,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import { type SchemaVaultsApiServerDefinition } from "@schemavaults/app-definitions";
|
|
3
|
+
export interface ApiServerRowActionsProps {
|
|
4
|
+
api: SchemaVaultsApiServerDefinition;
|
|
5
|
+
}
|
|
6
|
+
export declare function ApiServerRowActions({ api, }: ApiServerRowActionsProps): ReactElement;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useContext } from "react";
|
|
4
|
+
import { cn, useToast } from "@schemavaults/ui";
|
|
5
|
+
import { Button } from "@schemavaults/ui";
|
|
6
|
+
import { ClipboardCopy, Key, MoreHorizontal, PlugZap } from "lucide-react";
|
|
7
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
8
|
+
import { SCHEMAVAULTS_AUTH_SERVER, } from "@schemavaults/app-definitions";
|
|
9
|
+
import Link from "next/link";
|
|
10
|
+
import { ConnectAppToApiDialog } from "../ConnectAppToApiDialog";
|
|
11
|
+
import { ApiServersTableConfigContext } from "./ApiServersTableConfigContext";
|
|
12
|
+
const menuItemClassname = cn("flex flex-row flex-nowrap gap-2 items-center justify-start");
|
|
13
|
+
const menuItemIconClassname = cn("h-4 w-4");
|
|
14
|
+
export function ApiServerRowActions({ api, }) {
|
|
15
|
+
const api_server_id = api.api_server_id;
|
|
16
|
+
const { toast } = useToast();
|
|
17
|
+
const [connectDialogOpen, setConnectDialogOpen] = useState(false);
|
|
18
|
+
const { showConnectAppToApi } = useContext(ApiServersTableConfigContext);
|
|
19
|
+
return (_jsxs(_Fragment, { children: [_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: async (e) => {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
try {
|
|
22
|
+
if (!window.isSecureContext) {
|
|
23
|
+
throw new Error("Writing to clipboard is only allowed in secure contexts!");
|
|
24
|
+
}
|
|
25
|
+
await navigator.clipboard.writeText(api_server_id);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
toast({
|
|
29
|
+
variant: "destructive",
|
|
30
|
+
title: "Failed to copy API server ID to clipboard",
|
|
31
|
+
description: e instanceof Error
|
|
32
|
+
? e.message
|
|
33
|
+
: "An unknown error has occurred!",
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
toast({
|
|
38
|
+
title: "Successfully copied API server ID to clipboard",
|
|
39
|
+
description: `You can now paste: '${api_server_id}'`,
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}, className: menuItemClassname, children: [_jsx(ClipboardCopy, { className: menuItemIconClassname }), " Copy API Server ID"] }), api_server_id !== SCHEMAVAULTS_AUTH_SERVER.api_server_id && (_jsx(Link, { href: `/apis/${api_server_id}/jwks-access-keys`, className: "hover:cursor-pointer", children: _jsxs(DropdownMenuItem, { className: menuItemClassname, children: [_jsx(Key, { className: menuItemIconClassname }), " Manage Access Keys"] }) })), showConnectAppToApi && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: (e) => {
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
setConnectDialogOpen(true);
|
|
45
|
+
}, className: menuItemClassname, children: [_jsx(PlugZap, { className: menuItemIconClassname }), " Connect App to this API"] })] }))] })] }), showConnectAppToApi && (_jsx(ConnectAppToApiDialog, { open: connectDialogOpen, onOpenChange: setConnectDialogOpen, preselectedApiServerId: api_server_id }))] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ApiServerRowActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiServerRowActions.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/ApiServerRowActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export interface ApiServersDatatableProps {
|
|
|
5
5
|
queryType: ListApiServersQueryType;
|
|
6
6
|
organization_id?: string;
|
|
7
7
|
preloaded?: PreloadedApiServersTableData | undefined;
|
|
8
|
+
showConnectAppToApi?: boolean;
|
|
8
9
|
}
|
|
9
|
-
export declare function ApiServersTable({ queryType, organization_id, preloaded, }: ApiServersDatatableProps): ReactElement;
|
|
10
|
+
export declare function ApiServersTable({ queryType, organization_id, preloaded, showConnectAppToApi, }: ApiServersDatatableProps): ReactElement;
|
|
10
11
|
export default ApiServersTable;
|
|
@@ -7,12 +7,13 @@ import { Loader2 } from "lucide-react";
|
|
|
7
7
|
import { useApiServersList } from "./useApiServersList";
|
|
8
8
|
import { CreateApiServerDialogOpenDispatchContext, CreateApiServerDialogTrigger, } from "../CreateApiServerDialog";
|
|
9
9
|
import { ConnectAppToApiDialogOpenDispatchContext, ConnectAppToApiDialogTrigger, } from "../ConnectAppToApiDialog";
|
|
10
|
-
|
|
10
|
+
import { ApiServersTableConfigContext } from "./ApiServersTableConfigContext";
|
|
11
|
+
function ApiServersTableHeaderButtons({ queryType, showConnectAppToApi, }) {
|
|
11
12
|
const onOpenChangeCreateApi = useContext(CreateApiServerDialogOpenDispatchContext);
|
|
12
13
|
const onOpenChangeConnectAppToApi = useContext(ConnectAppToApiDialogOpenDispatchContext);
|
|
13
|
-
return (_jsxs(_Fragment, { children: [(queryType === "all" || queryType === "org") && (_jsx(CreateApiServerDialogTrigger, { onOpenChange: onOpenChangeCreateApi })), queryType === "all" && (_jsx(ConnectAppToApiDialogTrigger, { onOpenChange: onOpenChangeConnectAppToApi }))] }));
|
|
14
|
+
return (_jsxs(_Fragment, { children: [(queryType === "all" || queryType === "org") && (_jsx(CreateApiServerDialogTrigger, { onOpenChange: onOpenChangeCreateApi })), (queryType === "all" || showConnectAppToApi) && (_jsx(ConnectAppToApiDialogTrigger, { onOpenChange: onOpenChangeConnectAppToApi }))] }));
|
|
14
15
|
}
|
|
15
|
-
export function ApiServersTable({ queryType, organization_id, preloaded, }) {
|
|
16
|
+
export function ApiServersTable({ queryType, organization_id, preloaded, showConnectAppToApi, }) {
|
|
16
17
|
const apis = useApiServersList({
|
|
17
18
|
queryType,
|
|
18
19
|
initialData: preloaded ? preloaded.api_servers : undefined,
|
|
@@ -21,9 +22,9 @@ export function ApiServersTable({ queryType, organization_id, preloaded, }) {
|
|
|
21
22
|
const { isLoading, data } = apis;
|
|
22
23
|
const HeaderButtons = useMemo(() => {
|
|
23
24
|
return function ApiServersTableHeaderButtonsWithQueryType() {
|
|
24
|
-
return _jsx(ApiServersTableHeaderButtons, { queryType: queryType });
|
|
25
|
+
return _jsx(ApiServersTableHeaderButtons, { queryType: queryType, showConnectAppToApi: showConnectAppToApi });
|
|
25
26
|
};
|
|
26
|
-
}, [queryType]);
|
|
27
|
+
}, [queryType, showConnectAppToApi]);
|
|
27
28
|
// Assert that 'owner_organization_id' field is present from server
|
|
28
29
|
useMemo(() => {
|
|
29
30
|
if (apis.data && Array.isArray(apis.data)) {
|
|
@@ -32,21 +33,22 @@ export function ApiServersTable({ queryType, organization_id, preloaded, }) {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
}, [apis.data]);
|
|
36
|
+
const contextValue = useMemo(() => ({ showConnectAppToApi: showConnectAppToApi ?? false }), [showConnectAppToApi]);
|
|
35
37
|
if (!data && isLoading) {
|
|
36
38
|
return (_jsx("div", { className: "min-h-48 w-full flex items-center justify-center", children: _jsx(Loader2, { className: "h-12 w-12 animate-spin" }) }));
|
|
37
39
|
}
|
|
38
|
-
return (_jsx(Datatable, { data: [...(data ? (data.length > 0 ? data : []) : [])], columns: columns, initialVisibleColumns: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
return (_jsx(ApiServersTableConfigContext.Provider, { value: contextValue, children: _jsx(Datatable, { data: [...(data ? (data.length > 0 ? data : []) : [])], columns: columns, initialVisibleColumns: {
|
|
41
|
+
actions: true,
|
|
42
|
+
select: true,
|
|
43
|
+
api_server_id: false,
|
|
44
|
+
api_server_name: true,
|
|
45
|
+
api_server_description: true,
|
|
46
|
+
owner_organization_id: false,
|
|
47
|
+
}, HeaderButtons: HeaderButtons, datatypeLabel: "Server", searchColumn: [
|
|
48
|
+
"api_server_id",
|
|
49
|
+
"api_server_name",
|
|
50
|
+
"api_server_description",
|
|
51
|
+
] }) }));
|
|
50
52
|
}
|
|
51
53
|
export default ApiServersTable;
|
|
52
54
|
//# sourceMappingURL=ApiServersTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiServersTable.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/ApiServersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAW,UAAU,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wCAAwC,EACxC,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,wCAAwC,EACxC,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"ApiServersTable.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/ApiServersTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiServersTableConfigContext.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/ApiServersTableConfigContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,CAAC,MAAM,4BAA4B,GACvC,aAAa,CAAwB;IACnC,mBAAmB,EAAE,KAAK;CAC3B,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ColumnDef } from "@schemavaults/ui";
|
|
2
|
-
import {
|
|
2
|
+
import type { SchemaVaultsApiServerDefinition } from "@schemavaults/app-definitions";
|
|
3
3
|
export declare const columns: ColumnDef<SchemaVaultsApiServerDefinition>[];
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx
|
|
3
|
-
import { Checkbox
|
|
4
|
-
import {
|
|
5
|
-
import { ClipboardCopy, Key, MoreHorizontal } from "lucide-react";
|
|
6
|
-
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
7
|
-
import { SCHEMAVAULTS_AUTH_SERVER, } from "@schemavaults/app-definitions";
|
|
8
|
-
import Link from "next/link";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Checkbox } from "@schemavaults/ui";
|
|
4
|
+
import { ApiServerRowActions } from "./ApiServerRowActions";
|
|
9
5
|
export const columns = [
|
|
10
6
|
{
|
|
11
7
|
id: "select",
|
|
@@ -37,33 +33,9 @@ export const columns = [
|
|
|
37
33
|
},
|
|
38
34
|
{
|
|
39
35
|
id: "actions",
|
|
40
|
-
cell:
|
|
36
|
+
cell: ({ row }) => {
|
|
41
37
|
const api = row.original;
|
|
42
|
-
|
|
43
|
-
const { toast } = useToast();
|
|
44
|
-
const menuItemClassname = cn("flex flex-row flex-nowrap gap-2 items-center justify-start");
|
|
45
|
-
const menuItemIconClassname = cn("h-4 w-4");
|
|
46
|
-
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: async (e) => {
|
|
47
|
-
e.preventDefault();
|
|
48
|
-
try {
|
|
49
|
-
await navigator.clipboard.writeText(api_server_id);
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
toast({
|
|
53
|
-
variant: "destructive",
|
|
54
|
-
title: "Failed to copy API server ID to clipboard",
|
|
55
|
-
description: e instanceof Error
|
|
56
|
-
? e.message
|
|
57
|
-
: "An unknown error has occurred!",
|
|
58
|
-
});
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
toast({
|
|
62
|
-
title: "Successfully copied API server ID to clipboard",
|
|
63
|
-
description: `You can now paste: '${api_server_id}'`,
|
|
64
|
-
});
|
|
65
|
-
return;
|
|
66
|
-
}, className: menuItemClassname, children: [_jsx(ClipboardCopy, { className: menuItemIconClassname }), " Copy API Server ID"] }), api_server_id !== SCHEMAVAULTS_AUTH_SERVER.api_server_id && (_jsx(Link, { href: `/apis/${api_server_id}/jwks-access-keys`, className: "hover:cursor-pointer", children: _jsxs(DropdownMenuItem, { className: menuItemClassname, children: [_jsx(Key, { className: menuItemIconClassname }), " Manage Access Keys"] }) }))] })] }));
|
|
38
|
+
return _jsx(ApiServerRowActions, { api: api });
|
|
67
39
|
},
|
|
68
40
|
},
|
|
69
41
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAiD;IACnE;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,eAAe;QACnB,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,eAAe;KACxB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,MAAM,EAAE,iBAAiB;KAC1B;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,WAAW,EAAE,wBAAwB;QACrC,MAAM,EAAE,aAAa;KACtB;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,WAAW,EAAE,uBAAuB;QACpC,MAAM,EAAE,oBAAoB;KAC7B;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;YAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YACzB,OAAO,KAAC,mBAAmB,IAAC,GAAG,EAAE,GAAG,GAAI,CAAC;QAC3C,CAAC;KACF;CACF,CAAC"}
|
|
@@ -2,3 +2,5 @@ export { ApiServersTable, ApiServersTable as default } from "./ApiServersTable";
|
|
|
2
2
|
export type { ApiServersDatatableProps } from "./ApiServersTable";
|
|
3
3
|
export type { PreloadedApiServersTableData } from "./preloaded_api_servers_table_data";
|
|
4
4
|
export { clearUseApiServersCache, useApiServersList, } from "./useApiServersList";
|
|
5
|
+
export { ApiServersTableConfigContext } from "./ApiServersTableConfigContext";
|
|
6
|
+
export type { ApiServersTableConfig } from "./ApiServersTableConfigContext";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { ApiServersTable, ApiServersTable as default } from "./ApiServersTable";
|
|
2
2
|
export { clearUseApiServersCache, useApiServersList, } from "./useApiServersList";
|
|
3
|
+
export { ApiServersTableConfigContext } from "./ApiServersTableConfigContext";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIhF,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ApiServersTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIhF,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -4,5 +4,5 @@ interface FrontendApplicationActionsProps {
|
|
|
4
4
|
app: SchemaVaultsApp;
|
|
5
5
|
queryType: ListAppsQueryType;
|
|
6
6
|
}
|
|
7
|
-
export declare function FrontendApplicationActions({ app, queryType }: FrontendApplicationActionsProps): ReactElement;
|
|
7
|
+
export declare function FrontendApplicationActions({ app, queryType, }: FrontendApplicationActionsProps): ReactElement;
|
|
8
8
|
export {};
|
|
@@ -3,27 +3,29 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useTransition, useState, useMemo } from "react";
|
|
4
4
|
import { cn, useToast } from "@schemavaults/ui";
|
|
5
5
|
import { Button } from "@schemavaults/ui";
|
|
6
|
-
import { AppWindow, ClipboardCopy, EarthLock, MoreHorizontal, PlayCircle, PlugZap, Trash } from "lucide-react";
|
|
7
|
-
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "@schemavaults/ui";
|
|
6
|
+
import { AppWindow, ClipboardCopy, EarthLock, MoreHorizontal, PlayCircle, PlugZap, Trash, } from "lucide-react";
|
|
7
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
8
8
|
import { useAdmin, useAppEnvironment } from "@schemavaults/auth-react-provider";
|
|
9
9
|
import { sendAuthorizeFrontendAppRequest } from "./send-authorize-app-request";
|
|
10
10
|
import { getUseAppDomainsListEndpoint, useAppDomains } from "./useAppDomains";
|
|
11
11
|
import { CreateAppDomainDialog } from "../CreateAppDomainDialog";
|
|
12
12
|
import { launchWebApp } from "./launchWebApp";
|
|
13
|
-
import { isHardcodedAppId, HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS } from "@schemavaults/app-definitions";
|
|
13
|
+
import { isHardcodedAppId, HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS, } from "@schemavaults/app-definitions";
|
|
14
14
|
const dropdownMenuActionsClassName = "hover:cursor-pointer flex flex-row gap-2 items-center justify-start pointer-events-auto";
|
|
15
|
-
|
|
15
|
+
class CantCopyWithinInsecureContextError extends Error {
|
|
16
|
+
}
|
|
17
|
+
export function FrontendApplicationActions({ app, queryType, }) {
|
|
16
18
|
const app_id = app.app_id;
|
|
17
19
|
const hardcoded = app.hardcoded && isHardcodedAppId(app_id);
|
|
18
20
|
const { toast } = useToast();
|
|
19
21
|
const [authorizingApp, startAuthorizingApp] = useTransition();
|
|
20
22
|
let preloadedAppDomains = undefined;
|
|
21
23
|
if (hardcoded) {
|
|
22
|
-
preloadedAppDomains = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) =>
|
|
24
|
+
preloadedAppDomains = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) => a.app_id === app_id);
|
|
23
25
|
}
|
|
24
26
|
const appDomains = useAppDomains({
|
|
25
27
|
app_id: app.app_id,
|
|
26
|
-
initialData: preloadedAppDomains
|
|
28
|
+
initialData: preloadedAppDomains,
|
|
27
29
|
});
|
|
28
30
|
const admin = useAdmin();
|
|
29
31
|
const environment = useAppEnvironment();
|
|
@@ -32,91 +34,115 @@ export function FrontendApplicationActions({ app, queryType }) {
|
|
|
32
34
|
return [];
|
|
33
35
|
}
|
|
34
36
|
const launchable = appDomains.data.filter(function filterLaunchableAppDomains(domain) {
|
|
35
|
-
if (domain.environment ===
|
|
37
|
+
if (domain.environment === "development" &&
|
|
38
|
+
environment === "development") {
|
|
36
39
|
return true;
|
|
37
40
|
}
|
|
38
|
-
else if (domain.environment ===
|
|
41
|
+
else if (domain.environment === "production" &&
|
|
42
|
+
environment === "production") {
|
|
39
43
|
return true;
|
|
40
44
|
}
|
|
41
|
-
else if (domain.environment ===
|
|
45
|
+
else if (domain.environment === "test" && environment === "test") {
|
|
42
46
|
return true;
|
|
43
47
|
}
|
|
44
|
-
else if (domain.environment ===
|
|
48
|
+
else if (domain.environment === "staging" &&
|
|
49
|
+
environment === "staging") {
|
|
45
50
|
return true;
|
|
46
51
|
}
|
|
47
52
|
return false;
|
|
48
53
|
}); // end of filterLaunchableAppDomains
|
|
49
|
-
if (environment !==
|
|
54
|
+
if (environment !== "production") {
|
|
50
55
|
console.log("Launchable app domains: ", launchable);
|
|
51
56
|
}
|
|
52
57
|
return launchable;
|
|
53
58
|
}, [appDomains.data, environment]);
|
|
54
|
-
const launchAppDisabled =
|
|
59
|
+
const launchAppDisabled = !Array.isArray(appDomains.data) ||
|
|
55
60
|
appDomains.data.length === 0 ||
|
|
56
|
-
launchableAppDomains.length === 0
|
|
61
|
+
launchableAppDomains.length === 0;
|
|
57
62
|
const [isAddWebDomainDialogOpen, setAddWebDomainDialogOpen] = useState(false);
|
|
58
63
|
const isDeleteAppDisabled = hardcoded || !admin;
|
|
59
|
-
return (_jsxs(_Fragment, { children: [_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" }), !launchAppDisabled && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: launchAppDisabled
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
return (_jsxs(_Fragment, { children: [_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", "data-testid": "app-actions-button", 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" }), !launchAppDisabled && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: launchAppDisabled
|
|
65
|
+
? undefined
|
|
66
|
+
: () => {
|
|
67
|
+
try {
|
|
68
|
+
launchWebApp({
|
|
69
|
+
toast,
|
|
70
|
+
appDomains: Array.isArray(appDomains.data)
|
|
71
|
+
? appDomains.data
|
|
72
|
+
: [],
|
|
73
|
+
launchableAppDomains,
|
|
74
|
+
environment,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
console.error(e);
|
|
79
|
+
toast({
|
|
80
|
+
variant: "destructive",
|
|
81
|
+
title: "Failed to launch web app",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, disabled: launchAppDisabled, children: [_jsx(PlayCircle, { className: "h-4 w-4" }), " Launch App"] })), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: (e) => {
|
|
85
|
+
e.preventDefault();
|
|
86
|
+
if (!window) {
|
|
87
|
+
throw new TypeError("Failed to load reference to 'window' global variable!");
|
|
71
88
|
}
|
|
72
|
-
}, disabled: launchAppDisabled, children: [_jsx(PlayCircle, { className: "h-4 w-4" }), " Launch App"] })), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
|
|
73
89
|
try {
|
|
74
|
-
|
|
90
|
+
if (!window.isSecureContext) {
|
|
91
|
+
throw new CantCopyWithinInsecureContextError("Access to clipboard is only allowed in secure contexts!");
|
|
92
|
+
}
|
|
93
|
+
const clipboard = window.navigator.clipboard;
|
|
94
|
+
clipboard.writeText(app.app_id);
|
|
75
95
|
toast({
|
|
76
|
-
variant:
|
|
77
|
-
title: "Copied app ID to clipboard"
|
|
96
|
+
variant: "default",
|
|
97
|
+
title: "Copied app ID to clipboard",
|
|
78
98
|
});
|
|
79
99
|
}
|
|
80
100
|
catch (e) {
|
|
81
|
-
console.error(e);
|
|
101
|
+
console.error("Failed to copy app ID to clipboard: ", e);
|
|
102
|
+
let errorMessage = "An unknown error has occurred.";
|
|
103
|
+
if (e instanceof Error) {
|
|
104
|
+
errorMessage = e.message;
|
|
105
|
+
}
|
|
82
106
|
toast({
|
|
83
|
-
variant:
|
|
84
|
-
title: "Failed to copy to clipboard"
|
|
107
|
+
variant: "destructive",
|
|
108
|
+
title: "Failed to copy app ID to clipboard",
|
|
109
|
+
description: errorMessage,
|
|
85
110
|
});
|
|
86
111
|
return;
|
|
87
112
|
}
|
|
88
|
-
}, children: [_jsx(ClipboardCopy, { className: "h-4 w-4" }), " Copy app ID"] }), queryType !==
|
|
113
|
+
}, "data-testid": "copy-app-id-menu-item", children: [_jsx(ClipboardCopy, { className: "h-4 w-4" }), " Copy app ID"] }), queryType !== "authorized" && _jsx(DropdownMenuSeparator, {}), queryType !== "authorized" && (_jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
|
|
89
114
|
startAuthorizingApp(async () => {
|
|
90
115
|
try {
|
|
91
116
|
await sendAuthorizeFrontendAppRequest({
|
|
92
117
|
toast,
|
|
93
|
-
app_id: app.app_id
|
|
118
|
+
app_id: app.app_id,
|
|
94
119
|
});
|
|
95
120
|
}
|
|
96
121
|
catch (e) {
|
|
97
122
|
toast({
|
|
98
|
-
variant:
|
|
123
|
+
variant: "destructive",
|
|
99
124
|
title: "Failed to send authorize frontend app request",
|
|
100
|
-
description: e instanceof Error ? e.message : undefined
|
|
125
|
+
description: e instanceof Error ? e.message : undefined,
|
|
101
126
|
});
|
|
102
127
|
return;
|
|
103
128
|
}
|
|
104
129
|
});
|
|
105
|
-
}, disabled: authorizingApp, children: [_jsx(AppWindow, { className: "h-4 w-4" }), " Authorize app"] })),
|
|
106
|
-
|
|
130
|
+
}, disabled: authorizingApp, children: [_jsx(AppWindow, { className: "h-4 w-4" }), " Authorize app"] })),
|
|
131
|
+
// Admin 'all apps' view actions
|
|
132
|
+
admin && queryType === "all" && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
|
|
107
133
|
toast({
|
|
108
|
-
variant:
|
|
109
|
-
title: "Not implemented"
|
|
134
|
+
variant: "default",
|
|
135
|
+
title: "Not implemented",
|
|
110
136
|
});
|
|
111
137
|
}, children: [_jsx(PlugZap, { className: "h-4 w-4" }), " Connect API"] }), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
|
|
112
138
|
setAddWebDomainDialogOpen(true);
|
|
113
|
-
}, children: [_jsx(EarthLock, { className: "h-4 w-4" }), " Add domain"] })] })),
|
|
139
|
+
}, children: [_jsx(EarthLock, { className: "h-4 w-4" }), " Add domain"] })] })), !isDeleteAppDisabled && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { className: cn(dropdownMenuActionsClassName), onClick: () => {
|
|
114
140
|
toast({
|
|
115
|
-
variant:
|
|
116
|
-
title: "Not implemented"
|
|
141
|
+
variant: "default",
|
|
142
|
+
title: "Not implemented",
|
|
117
143
|
});
|
|
118
144
|
}, disabled: isDeleteAppDisabled, children: [_jsx(Trash, { className: "h-4 w-4" }), " Delete app"] })] }))] })] }), _jsx(CreateAppDomainDialog, { app_id: app.app_id, open: isAddWebDomainDialogOpen, onOpenChange: setAddWebDomainDialogOpen, clearFrontendWebAppDomainsCache: (mutate) => {
|
|
119
|
-
mutate(key => key === getUseAppDomainsListEndpoint(app.app_id), undefined, { revalidate: true });
|
|
145
|
+
mutate((key) => key === getUseAppDomainsListEndpoint(app.app_id), undefined, { revalidate: true });
|
|
120
146
|
} }, `create-domain-dialog-${app.app_id}`)] }));
|
|
121
147
|
}
|
|
122
148
|
//# sourceMappingURL=frontend_app_actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend_app_actions.js","sourceRoot":"","sources":["../../../src/components/AppsTable/frontend_app_actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"frontend_app_actions.js","sourceRoot":"","sources":["../../../src/components/AppsTable/frontend_app_actions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SchemaVaultsAppDomainRef } from "@schemavaults/app-definitions";
|
|
2
2
|
import type { SWRResponse } from "swr";
|
|
3
|
-
export declare function getUseAppDomainsListEndpoint(app_id: string): `/api/apps
|
|
3
|
+
export declare function getUseAppDomainsListEndpoint(app_id: string): `/api/apps/${string}/domains`;
|
|
4
4
|
export interface UseAppDomainsInput {
|
|
5
5
|
app_id: string;
|
|
6
6
|
initialData?: readonly SchemaVaultsAppDomainRef[];
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS, isHardcodedAppId, schemaVaultsAppDomainRefSchema } from "@schemavaults/app-definitions";
|
|
2
|
+
import { HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS, isHardcodedAppId, schemaVaultsAppDomainRefSchema, } from "@schemavaults/app-definitions";
|
|
3
3
|
import useSWR from "swr";
|
|
4
4
|
export function getUseAppDomainsListEndpoint(app_id) {
|
|
5
|
-
return `/api/apps
|
|
5
|
+
return `/api/apps/${app_id}/domains`;
|
|
6
6
|
}
|
|
7
7
|
export function useAppDomains(input) {
|
|
8
|
-
const app_id = typeof input ===
|
|
8
|
+
const app_id = typeof input === "string" ? input : input.app_id;
|
|
9
9
|
return useSWR(getUseAppDomainsListEndpoint(app_id), async () => {
|
|
10
10
|
if (isHardcodedAppId(app_id)) {
|
|
11
|
-
const hardcoded = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) =>
|
|
11
|
+
const hardcoded = HARDCODED_CORE_SCHEMAVAULTS_APP_DOMAINS.filter((a) => a.app_id === app_id);
|
|
12
12
|
return hardcoded;
|
|
13
13
|
}
|
|
14
14
|
const response = await fetch(getUseAppDomainsListEndpoint(app_id), {
|
|
15
|
-
method: "
|
|
15
|
+
method: "GET",
|
|
16
16
|
credentials: "include",
|
|
17
17
|
});
|
|
18
18
|
if (!response.ok || response.status !== 200)
|
|
19
19
|
throw new Error(response.statusText);
|
|
20
20
|
const body = await response.json();
|
|
21
|
-
if (typeof body !==
|
|
22
|
-
throw new Error(
|
|
21
|
+
if (typeof body !== "object")
|
|
22
|
+
throw new Error("Invalid response body");
|
|
23
23
|
if (!body.success)
|
|
24
24
|
throw new Error(body.message);
|
|
25
25
|
const parsed = schemaVaultsAppDomainRefSchema.array().parse(body.list);
|
|
26
26
|
return parsed;
|
|
27
27
|
}, {
|
|
28
|
-
fallbackData: typeof input ===
|
|
29
|
-
undefined
|
|
30
|
-
:
|
|
31
|
-
|
|
28
|
+
fallbackData: typeof input === "string"
|
|
29
|
+
? undefined
|
|
30
|
+
: input.initialData
|
|
31
|
+
? [...input.initialData]
|
|
32
|
+
: undefined,
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=useAppDomains.js.map
|