@carlonicora/nextjs-jsonapi 1.35.0 → 1.36.1
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/{BlockNoteEditor-3NFHRHR5.js → BlockNoteEditor-4MDHRUS2.js} +13 -13
- package/dist/{BlockNoteEditor-3NFHRHR5.js.map → BlockNoteEditor-4MDHRUS2.js.map} +1 -1
- package/dist/{BlockNoteEditor-O2GEMLA5.mjs → BlockNoteEditor-SZWO3MDO.mjs} +3 -3
- package/dist/billing/index.js +333 -333
- package/dist/billing/index.mjs +2 -2
- package/dist/{chunk-IZKIM7U5.js → chunk-53IPQJVH.js} +12 -1
- package/dist/chunk-53IPQJVH.js.map +1 -0
- package/dist/{chunk-T4UAULVP.js → chunk-E6PQQTWF.js} +702 -651
- package/dist/chunk-E6PQQTWF.js.map +1 -0
- package/dist/{chunk-NJXGCB7Q.mjs → chunk-I7DFEJFF.mjs} +113 -62
- package/dist/chunk-I7DFEJFF.mjs.map +1 -0
- package/dist/{chunk-FJUMCH77.mjs → chunk-P7R2DPD6.mjs} +12 -1
- package/dist/{chunk-FJUMCH77.mjs.map → chunk-P7R2DPD6.mjs.map} +1 -1
- package/dist/client/index.js +3 -3
- package/dist/client/index.mjs +2 -2
- package/dist/components/index.js +3 -3
- package/dist/components/index.mjs +2 -2
- package/dist/contexts/index.d.mts +3 -1
- package/dist/contexts/index.d.ts +3 -1
- package/dist/contexts/index.js +3 -3
- package/dist/contexts/index.mjs +2 -2
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{s3.service-DcqkGrKD.d.ts → s3.service-DXkDoMf1.d.ts} +3 -0
- package/dist/{s3.service-ag6M_7GO.d.mts → s3.service-hnTPVTm2.d.mts} +3 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/package.json +1 -1
- package/src/features/company/components/forms/CompanyDeleter.tsx +134 -70
- package/src/features/company/contexts/CompanyContext.tsx +1 -1
- package/src/features/company/data/company.service.ts +12 -0
- package/src/features/user/contexts/CurrentUserContext.tsx +19 -13
- package/dist/chunk-IZKIM7U5.js.map +0 -1
- package/dist/chunk-NJXGCB7Q.mjs.map +0 -1
- package/dist/chunk-T4UAULVP.js.map +0 -1
- /package/dist/{BlockNoteEditor-O2GEMLA5.mjs.map → BlockNoteEditor-SZWO3MDO.mjs.map} +0 -0
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
showToast,
|
|
42
42
|
useComposedRefs,
|
|
43
43
|
useIsMobile
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-P7R2DPD6.mjs";
|
|
45
45
|
import {
|
|
46
46
|
JsonApiContext
|
|
47
47
|
} from "./chunk-VOXD3ZLY.mjs";
|
|
@@ -1004,7 +1004,7 @@ var CurrentUserProvider = /* @__PURE__ */ __name(({ children }) => {
|
|
|
1004
1004
|
}
|
|
1005
1005
|
__name(hasPermissionToPath, "hasPermissionToPath");
|
|
1006
1006
|
const [isRefreshing, setIsRefreshing] = useState2(false);
|
|
1007
|
-
const refreshUser = useCallback5(async () => {
|
|
1007
|
+
const refreshUser = useCallback5(async (options) => {
|
|
1008
1008
|
if (isRefreshing) {
|
|
1009
1009
|
return;
|
|
1010
1010
|
}
|
|
@@ -1015,16 +1015,18 @@ var CurrentUserProvider = /* @__PURE__ */ __name(({ children }) => {
|
|
|
1015
1015
|
const dehydrated = fullUser.dehydrate();
|
|
1016
1016
|
setDehydratedUser(dehydrated);
|
|
1017
1017
|
setUser(fullUser);
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1018
|
+
if (!options?.skipCookieUpdate) {
|
|
1019
|
+
await getTokenHandler()?.updateToken({
|
|
1020
|
+
userId: fullUser.id,
|
|
1021
|
+
companyId: fullUser.company?.id,
|
|
1022
|
+
roles: fullUser.roles.map((role) => role.id),
|
|
1023
|
+
features: fullUser.company?.features?.map((feature) => feature.id) ?? [],
|
|
1024
|
+
modules: fullUser.modules.map((module) => ({
|
|
1025
|
+
id: module.id,
|
|
1026
|
+
permissions: module.permissions
|
|
1027
|
+
}))
|
|
1028
|
+
});
|
|
1029
|
+
}
|
|
1028
1030
|
}
|
|
1029
1031
|
} catch (error) {
|
|
1030
1032
|
console.error("Failed to refresh user data:", error);
|
|
@@ -1043,7 +1045,7 @@ var CurrentUserProvider = /* @__PURE__ */ __name(({ children }) => {
|
|
|
1043
1045
|
const handleCompanyUpdate = /* @__PURE__ */ __name((data) => {
|
|
1044
1046
|
if (data.companyId === currentUser.company?.id && !isRefreshingRef.current) {
|
|
1045
1047
|
isRefreshingRef.current = true;
|
|
1046
|
-
refreshUserRef.current().finally(() => {
|
|
1048
|
+
refreshUserRef.current({ skipCookieUpdate: true }).finally(() => {
|
|
1047
1049
|
isRefreshingRef.current = false;
|
|
1048
1050
|
});
|
|
1049
1051
|
}
|
|
@@ -9903,88 +9905,137 @@ import { LoaderCircleIcon as LoaderCircleIcon2, Trash2Icon as Trash2Icon2 } from
|
|
|
9903
9905
|
import { useTranslations as useTranslations29 } from "next-intl";
|
|
9904
9906
|
import { useState as useState26 } from "react";
|
|
9905
9907
|
import { Fragment as Fragment10, jsx as jsx103, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
9906
|
-
function CompanyDeleterInternal({ company }) {
|
|
9908
|
+
function CompanyDeleterInternal({ company, isAdministrator: isAdministrator2 }) {
|
|
9907
9909
|
const t = useTranslations29();
|
|
9908
|
-
const
|
|
9910
|
+
const generateUrl = usePageUrlGenerator();
|
|
9909
9911
|
const [open, setOpen] = useState26(false);
|
|
9912
|
+
const [finalWarningOpen, setFinalWarningOpen] = useState26(false);
|
|
9910
9913
|
const [isDeleting, setIsDeleting] = useState26(false);
|
|
9911
9914
|
const [companyName, setCompanyName] = useState26("");
|
|
9912
|
-
const
|
|
9915
|
+
const handleProceedToFinalWarning = /* @__PURE__ */ __name(() => {
|
|
9916
|
+
setOpen(false);
|
|
9917
|
+
setFinalWarningOpen(true);
|
|
9918
|
+
}, "handleProceedToFinalWarning");
|
|
9919
|
+
const handleFinalDelete = /* @__PURE__ */ __name(async () => {
|
|
9913
9920
|
setIsDeleting(true);
|
|
9914
9921
|
try {
|
|
9915
|
-
|
|
9916
|
-
|
|
9922
|
+
if (isAdministrator2) {
|
|
9923
|
+
await CompanyService.delete({ companyId: company.id });
|
|
9924
|
+
} else {
|
|
9925
|
+
await CompanyService.selfDelete({ companyId: company.id });
|
|
9926
|
+
}
|
|
9927
|
+
await AuthService.logout();
|
|
9928
|
+
window.location.href = generateUrl({ page: `/` });
|
|
9917
9929
|
} catch (error) {
|
|
9918
9930
|
errorToast({ title: t(`common.errors.delete`), error });
|
|
9931
|
+
setIsDeleting(false);
|
|
9919
9932
|
}
|
|
9920
|
-
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
|
|
9924
|
-
|
|
9925
|
-
|
|
9926
|
-
|
|
9927
|
-
|
|
9928
|
-
|
|
9929
|
-
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
|
|
9933
|
+
}, "handleFinalDelete");
|
|
9934
|
+
const handleGoBack = /* @__PURE__ */ __name(() => {
|
|
9935
|
+
setFinalWarningOpen(false);
|
|
9936
|
+
setCompanyName("");
|
|
9937
|
+
}, "handleGoBack");
|
|
9938
|
+
return /* @__PURE__ */ jsxs60(Fragment10, { children: [
|
|
9939
|
+
/* @__PURE__ */ jsxs60(AlertDialog, { open, onOpenChange: setOpen, children: [
|
|
9940
|
+
/* @__PURE__ */ jsx103(AlertDialogTrigger, { children: /* @__PURE__ */ jsx103(
|
|
9941
|
+
Button,
|
|
9942
|
+
{
|
|
9943
|
+
render: /* @__PURE__ */ jsx103("div", {}),
|
|
9944
|
+
nativeButton: false,
|
|
9945
|
+
size: "sm",
|
|
9946
|
+
variant: "ghost",
|
|
9947
|
+
className: "text-muted-foreground hover:text-destructive",
|
|
9948
|
+
children: /* @__PURE__ */ jsx103(Trash2Icon2, {})
|
|
9949
|
+
}
|
|
9950
|
+
) }),
|
|
9951
|
+
/* @__PURE__ */ jsxs60(AlertDialogContent, { className: `flex max-h-[70vh] max-w-3xl flex-col overflow-y-auto`, children: [
|
|
9952
|
+
/* @__PURE__ */ jsxs60(AlertDialogHeader, { children: [
|
|
9953
|
+
/* @__PURE__ */ jsx103(AlertDialogTitle, { children: t(`common.delete.title`, { type: t(`entities.companies`, { count: 1 }) }) }),
|
|
9954
|
+
/* @__PURE__ */ jsx103(AlertDialogDescription, { children: t(`common.delete.subtitle`, { type: t(`entities.companies`, { count: 1 }) }) })
|
|
9955
|
+
] }),
|
|
9956
|
+
/* @__PURE__ */ jsx103("div", { className: "text-destructive p-4 text-sm", children: t(`common.delete.description`, { type: t(`entities.companies`, { count: 1 }) }) }),
|
|
9957
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex w-full flex-col gap-y-2", children: [
|
|
9958
|
+
/* @__PURE__ */ jsx103("div", { children: t(`common.delete.confirmation`, { type: t(`entities.companies`, { count: 1 }) }) }),
|
|
9959
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex w-full flex-col", children: [
|
|
9960
|
+
/* @__PURE__ */ jsxs60(Label, { className: "flex items-center", children: [
|
|
9961
|
+
t(`company.fields.name.label`),
|
|
9962
|
+
/* @__PURE__ */ jsx103("span", { className: "text-destructive ml-2 font-semibold", children: "*" })
|
|
9963
|
+
] }),
|
|
9964
|
+
/* @__PURE__ */ jsx103(
|
|
9965
|
+
Input,
|
|
9966
|
+
{
|
|
9967
|
+
className: `w-full`,
|
|
9968
|
+
placeholder: t(`company.fields.name.placeholder`),
|
|
9969
|
+
onChange: (e) => setCompanyName(e.target.value)
|
|
9970
|
+
}
|
|
9971
|
+
)
|
|
9972
|
+
] })
|
|
9973
|
+
] }),
|
|
9974
|
+
/* @__PURE__ */ jsxs60("div", { className: "flex justify-end", children: [
|
|
9975
|
+
/* @__PURE__ */ jsx103(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
|
|
9940
9976
|
/* @__PURE__ */ jsx103(
|
|
9941
|
-
|
|
9977
|
+
Button,
|
|
9942
9978
|
{
|
|
9943
|
-
|
|
9944
|
-
|
|
9945
|
-
|
|
9979
|
+
type: "submit",
|
|
9980
|
+
onClick: (e) => {
|
|
9981
|
+
e.preventDefault();
|
|
9982
|
+
handleProceedToFinalWarning();
|
|
9983
|
+
},
|
|
9984
|
+
variant: "destructive",
|
|
9985
|
+
disabled: company.name !== companyName,
|
|
9986
|
+
children: t(`ui.buttons.delete`)
|
|
9946
9987
|
}
|
|
9947
9988
|
)
|
|
9948
9989
|
] })
|
|
9990
|
+
] })
|
|
9991
|
+
] }),
|
|
9992
|
+
/* @__PURE__ */ jsx103(AlertDialog, { open: finalWarningOpen, onOpenChange: setFinalWarningOpen, children: /* @__PURE__ */ jsxs60(AlertDialogContent, { className: `flex max-h-[70vh] max-w-3xl flex-col overflow-y-auto`, children: [
|
|
9993
|
+
/* @__PURE__ */ jsxs60(AlertDialogHeader, { children: [
|
|
9994
|
+
/* @__PURE__ */ jsx103(AlertDialogTitle, { children: t(`common.delete.finalWarning.title`) }),
|
|
9995
|
+
/* @__PURE__ */ jsx103(AlertDialogDescription, { children: t(`common.delete.finalWarning.subtitle`) })
|
|
9996
|
+
] }),
|
|
9997
|
+
/* @__PURE__ */ jsxs60("div", { className: "bg-destructive/10 border-destructive text-destructive rounded-md border p-4 text-sm", children: [
|
|
9998
|
+
/* @__PURE__ */ jsx103("p", { className: "mb-3 font-semibold", children: t(`common.delete.finalWarning.description`) }),
|
|
9999
|
+
/* @__PURE__ */ jsxs60("ul", { className: "list-disc space-y-1 pl-5", children: [
|
|
10000
|
+
/* @__PURE__ */ jsx103("li", { children: t(`common.delete.finalWarning.bullet1`) }),
|
|
10001
|
+
/* @__PURE__ */ jsx103("li", { children: t(`common.delete.finalWarning.bullet2`) }),
|
|
10002
|
+
/* @__PURE__ */ jsx103("li", { children: t(`common.delete.finalWarning.bullet3`) }),
|
|
10003
|
+
/* @__PURE__ */ jsx103("li", { children: t(`common.delete.finalWarning.bullet4`) }),
|
|
10004
|
+
/* @__PURE__ */ jsx103("li", { children: t(`common.delete.finalWarning.bullet5`) })
|
|
10005
|
+
] })
|
|
9949
10006
|
] }),
|
|
9950
10007
|
/* @__PURE__ */ jsxs60("div", { className: "flex justify-end", children: [
|
|
9951
|
-
/* @__PURE__ */ jsx103(
|
|
9952
|
-
Button,
|
|
9953
|
-
{
|
|
9954
|
-
className: "mr-2",
|
|
9955
|
-
variant: "outline",
|
|
9956
|
-
type: `button`,
|
|
9957
|
-
onClick: () => setOpen(false),
|
|
9958
|
-
disabled: isDeleting,
|
|
9959
|
-
children: t(`ui.buttons.cancel`)
|
|
9960
|
-
}
|
|
9961
|
-
),
|
|
10008
|
+
/* @__PURE__ */ jsx103(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: handleGoBack, disabled: isDeleting, children: t(`ui.buttons.go_back`) }),
|
|
9962
10009
|
/* @__PURE__ */ jsx103(
|
|
9963
10010
|
Button,
|
|
9964
10011
|
{
|
|
9965
10012
|
type: "submit",
|
|
9966
10013
|
onClick: (e) => {
|
|
9967
10014
|
e.preventDefault();
|
|
9968
|
-
|
|
10015
|
+
handleFinalDelete();
|
|
9969
10016
|
},
|
|
9970
10017
|
variant: "destructive",
|
|
9971
|
-
disabled:
|
|
10018
|
+
disabled: isDeleting,
|
|
9972
10019
|
children: isDeleting ? /* @__PURE__ */ jsxs60(Fragment10, { children: [
|
|
9973
10020
|
t(`ui.buttons.deleting`),
|
|
9974
10021
|
/* @__PURE__ */ jsx103(LoaderCircleIcon2, { className: "animate-spin-slow h-5 w-5" })
|
|
9975
|
-
] }) : t(`ui.buttons.
|
|
10022
|
+
] }) : t(`ui.buttons.delete_forever`)
|
|
9976
10023
|
}
|
|
9977
10024
|
)
|
|
9978
10025
|
] })
|
|
9979
|
-
] })
|
|
10026
|
+
] }) })
|
|
9980
10027
|
] });
|
|
9981
10028
|
}
|
|
9982
10029
|
__name(CompanyDeleterInternal, "CompanyDeleterInternal");
|
|
9983
10030
|
function CompanyDeleter({ company }) {
|
|
9984
10031
|
const { hasPermissionToModule, hasRole } = useCurrentUserContext();
|
|
9985
|
-
|
|
10032
|
+
const isAdministrator2 = hasRole(getRoleId().Administrator);
|
|
10033
|
+
const isCompanyAdministrator = hasRole(getRoleId().CompanyAdministrator);
|
|
10034
|
+
const hasDeletePermission = hasPermissionToModule({ module: Modules.Company, action: "delete" /* Delete */ });
|
|
10035
|
+
if (!isAdministrator2 && !isCompanyAdministrator && !hasDeletePermission) {
|
|
9986
10036
|
return null;
|
|
9987
|
-
|
|
10037
|
+
}
|
|
10038
|
+
return /* @__PURE__ */ jsx103(CompanyDeleterInternal, { company, isAdministrator: isAdministrator2 });
|
|
9988
10039
|
}
|
|
9989
10040
|
__name(CompanyDeleter, "CompanyDeleter");
|
|
9990
10041
|
|
|
@@ -10213,7 +10264,7 @@ var CompanyProvider = /* @__PURE__ */ __name(({ children, dehydratedCompany }) =
|
|
|
10213
10264
|
};
|
|
10214
10265
|
if (company) response.element = company.name;
|
|
10215
10266
|
const functions = [];
|
|
10216
|
-
if (company && hasRole(getRoleId().Administrator) && hasPermissionToModule({ module: Modules.Company, action: "delete" /* Delete */ }))
|
|
10267
|
+
if (company && (hasRole(getRoleId().Administrator) || hasRole(getRoleId().CompanyAdministrator)) && hasPermissionToModule({ module: Modules.Company, action: "delete" /* Delete */ }))
|
|
10217
10268
|
functions.push(/* @__PURE__ */ jsx106(CompanyDeleter, { company }, "companyDeleter"));
|
|
10218
10269
|
if (hasRole(getRoleId().Administrator) || hasPermissionToModule({ module: Modules.Company, action: "update" /* Update */ })) {
|
|
10219
10270
|
functions.push(/* @__PURE__ */ jsx106(CompanyEditor, { company, propagateChanges: setCompany }, "companyEditor"));
|
|
@@ -11350,7 +11401,7 @@ __name(AllowedUsersDetails, "AllowedUsersDetails");
|
|
|
11350
11401
|
import dynamic from "next/dynamic";
|
|
11351
11402
|
import React15 from "react";
|
|
11352
11403
|
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
11353
|
-
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-
|
|
11404
|
+
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-SZWO3MDO.mjs"), {
|
|
11354
11405
|
ssr: false
|
|
11355
11406
|
});
|
|
11356
11407
|
var BlockNoteEditorContainer = React15.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
|
|
@@ -15423,4 +15474,4 @@ export {
|
|
|
15423
15474
|
useOAuthClients,
|
|
15424
15475
|
useOAuthClient
|
|
15425
15476
|
};
|
|
15426
|
-
//# sourceMappingURL=chunk-
|
|
15477
|
+
//# sourceMappingURL=chunk-I7DFEJFF.mjs.map
|