strapi-plugin-firebase-authentication 1.1.12 → 1.2.0
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/_chunks/{App-BqjE8BHb.js → App-B7d4qS3T.js} +112 -29
- package/dist/_chunks/{App-BY1gNGKH.mjs → App-CQ9ehArz.mjs} +112 -29
- package/dist/_chunks/{api-D_4cdJU5.mjs → api-BM2UtpvM.mjs} +1 -1
- package/dist/_chunks/{api-DQCdqlCd.js → api-DYP-1kdx.js} +1 -1
- package/dist/_chunks/{index-D8pv1Q6h.mjs → index-0tTyhxbb.mjs} +148 -34
- package/dist/_chunks/{index-DlPxMuSK.js → index-B5EwGI_y.js} +2 -2
- package/dist/_chunks/{index-DtGfwf9S.mjs → index-CMFutRyI.mjs} +2 -2
- package/dist/_chunks/{index-C4t4JZZ_.js → index-Cwp9xkG4.js} +148 -34
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/user-management/ResendVerification/ResendVerification.d.ts +9 -0
- package/dist/admin/src/components/user-management/index.d.ts +1 -0
- package/dist/admin/src/pages/Settings/api.d.ts +4 -0
- package/dist/admin/src/pages/utils/api.d.ts +2 -1
- package/dist/server/index.js +691 -10
- package/dist/server/index.mjs +691 -10
- package/dist/server/src/config/index.d.ts +1 -1
- package/dist/server/src/content-types/index.d.ts +16 -0
- package/dist/server/src/controllers/firebaseController.d.ts +15 -0
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/userController.d.ts +1 -0
- package/dist/server/src/index.d.ts +37 -1
- package/dist/server/src/services/emailService.d.ts +10 -0
- package/dist/server/src/services/firebaseService.d.ts +16 -0
- package/dist/server/src/services/index.d.ts +17 -0
- package/dist/server/src/services/settingsService.d.ts +2 -0
- package/dist/server/src/services/tokenService.d.ts +21 -0
- package/dist/server/src/services/userService.d.ts +5 -0
- package/dist/server/src/templates/defaults/email-verification.d.ts +2 -0
- package/dist/server/src/templates/defaults/index.d.ts +1 -0
- package/dist/server/src/templates/types.d.ts +3 -1
- package/package.json +1 -1
|
@@ -7,13 +7,13 @@ const reactTooltip = require("@radix-ui/react-tooltip");
|
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const designSystem = require("@strapi/design-system");
|
|
9
9
|
const reactIntl = require("react-intl");
|
|
10
|
-
const index = require("./index-
|
|
10
|
+
const index = require("./index-B5EwGI_y.js");
|
|
11
11
|
const icons = require("@strapi/icons");
|
|
12
12
|
const styled = require("styled-components");
|
|
13
13
|
const rx = require("react-icons/rx");
|
|
14
14
|
const ai = require("react-icons/ai");
|
|
15
15
|
const md = require("react-icons/md");
|
|
16
|
-
const api = require("./api-
|
|
16
|
+
const api = require("./api-DYP-1kdx.js");
|
|
17
17
|
const PhoneInputModule = require("react-phone-input-2");
|
|
18
18
|
require("react-phone-input-2/lib/style.css");
|
|
19
19
|
const validator = require("validator");
|
|
@@ -2731,6 +2731,12 @@ const getFirebaseConfig = async () => {
|
|
|
2731
2731
|
};
|
|
2732
2732
|
}
|
|
2733
2733
|
};
|
|
2734
|
+
const sendVerificationEmail = async (userId) => {
|
|
2735
|
+
const url = `/${index.PLUGIN_ID}/users/sendVerificationEmail/${userId}`;
|
|
2736
|
+
const { put } = admin.getFetchClient();
|
|
2737
|
+
const { data: result } = await put(url, {});
|
|
2738
|
+
return result;
|
|
2739
|
+
};
|
|
2734
2740
|
const PaginationFooter = ({ pageCount = 0 }) => {
|
|
2735
2741
|
const [{ query }, setQuery] = admin.useQueryParams();
|
|
2736
2742
|
const pageSize = query?.pageSize || "10";
|
|
@@ -5037,6 +5043,59 @@ const ResetPassword = ({
|
|
|
5037
5043
|
] })
|
|
5038
5044
|
] }) });
|
|
5039
5045
|
};
|
|
5046
|
+
const ResendVerification = ({
|
|
5047
|
+
isOpen,
|
|
5048
|
+
email,
|
|
5049
|
+
userId,
|
|
5050
|
+
onClose,
|
|
5051
|
+
onSendVerificationEmail
|
|
5052
|
+
}) => {
|
|
5053
|
+
const [isLoading, setIsLoading] = React.useState(false);
|
|
5054
|
+
const [emailSent, setEmailSent] = React.useState(false);
|
|
5055
|
+
const [error, setError] = React.useState("");
|
|
5056
|
+
const resetState = () => {
|
|
5057
|
+
setEmailSent(false);
|
|
5058
|
+
setError("");
|
|
5059
|
+
setIsLoading(false);
|
|
5060
|
+
};
|
|
5061
|
+
const handleClose = () => {
|
|
5062
|
+
resetState();
|
|
5063
|
+
onClose();
|
|
5064
|
+
};
|
|
5065
|
+
const handleSendEmail = async () => {
|
|
5066
|
+
try {
|
|
5067
|
+
setIsLoading(true);
|
|
5068
|
+
setError("");
|
|
5069
|
+
await onSendVerificationEmail();
|
|
5070
|
+
setEmailSent(true);
|
|
5071
|
+
} catch (err) {
|
|
5072
|
+
setError(err.message || "Failed to send verification email");
|
|
5073
|
+
} finally {
|
|
5074
|
+
setIsLoading(false);
|
|
5075
|
+
}
|
|
5076
|
+
};
|
|
5077
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Root, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Content, { children: [
|
|
5078
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Header, { children: "Resend Verification Email" }),
|
|
5079
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 4, alignItems: "center", children: [
|
|
5080
|
+
!emailSent ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5081
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { textAlign: "center", children: [
|
|
5082
|
+
"Send a verification email to ",
|
|
5083
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: email }),
|
|
5084
|
+
"?"
|
|
5085
|
+
] }),
|
|
5086
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "neutral600", textAlign: "center", children: "The link will expire in 1 hour." })
|
|
5087
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Alert, { variant: "success", title: "Email Sent", children: [
|
|
5088
|
+
"Verification email has been sent to ",
|
|
5089
|
+
email
|
|
5090
|
+
] }),
|
|
5091
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Alert, { variant: "danger", title: "Error", children: error })
|
|
5092
|
+
] }) }),
|
|
5093
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Footer, { children: [
|
|
5094
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: handleClose, variant: "tertiary", children: emailSent ? "Close" : "Cancel" }),
|
|
5095
|
+
!emailSent && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "success", loading: isLoading, onClick: handleSendEmail, children: "Send" })
|
|
5096
|
+
] })
|
|
5097
|
+
] }) });
|
|
5098
|
+
};
|
|
5040
5099
|
const HEADER_TITLE = "Firebase Users";
|
|
5041
5100
|
const NOTIFICATION_MESSAGES = {
|
|
5042
5101
|
DELETED: "Deleted",
|
|
@@ -5397,24 +5456,10 @@ const HomePage = () => {
|
|
|
5397
5456
|
let PhoneInputTemp = PhoneInputModule__namespace;
|
|
5398
5457
|
let unwrapCount = 0;
|
|
5399
5458
|
while (PhoneInputTemp && typeof PhoneInputTemp === "object" && PhoneInputTemp.default && unwrapCount < 5) {
|
|
5400
|
-
console.log(`🔧 Unwrapping PhoneInput layer ${unwrapCount}:`, PhoneInputTemp);
|
|
5401
5459
|
PhoneInputTemp = PhoneInputTemp.default;
|
|
5402
5460
|
unwrapCount++;
|
|
5403
5461
|
}
|
|
5404
5462
|
const PhoneInput = PhoneInputTemp;
|
|
5405
|
-
console.log("🔍 ==================== PhoneInput Final Check ====================");
|
|
5406
|
-
console.log(" Unwrap iterations:", unwrapCount);
|
|
5407
|
-
console.log(" PhoneInput FINAL:", PhoneInput);
|
|
5408
|
-
console.log(" PhoneInput type:", typeof PhoneInput);
|
|
5409
|
-
console.log(" PhoneInput $$typeof:", PhoneInput?.$$typeof);
|
|
5410
|
-
console.log(" PhoneInput name:", PhoneInput?.name);
|
|
5411
|
-
console.log(" PhoneInput displayName:", PhoneInput?.displayName);
|
|
5412
|
-
console.log(" Is function?:", typeof PhoneInput === "function");
|
|
5413
|
-
console.log(
|
|
5414
|
-
" Is valid React component?:",
|
|
5415
|
-
typeof PhoneInput === "function" || PhoneInput && PhoneInput.$$typeof
|
|
5416
|
-
);
|
|
5417
|
-
console.log("🔍 ================================================================");
|
|
5418
5463
|
const StyledPhoneInputWrapper = styled__default.default.div`
|
|
5419
5464
|
width: 100%;
|
|
5420
5465
|
|
|
@@ -5938,6 +5983,11 @@ const EditUserForm = ({ data }) => {
|
|
|
5938
5983
|
email: "",
|
|
5939
5984
|
id: ""
|
|
5940
5985
|
});
|
|
5986
|
+
const [showVerificationDialog, setShowVerificationDialog] = React.useState({
|
|
5987
|
+
isOpen: false,
|
|
5988
|
+
email: "",
|
|
5989
|
+
id: ""
|
|
5990
|
+
});
|
|
5941
5991
|
const [passwordConfig, setPasswordConfig] = React.useState({
|
|
5942
5992
|
passwordRequirementsRegex: "^.{6,}$",
|
|
5943
5993
|
passwordRequirementsMessage: "Password must be at least 6 characters long"
|
|
@@ -6025,6 +6075,12 @@ const EditUserForm = ({ data }) => {
|
|
|
6025
6075
|
});
|
|
6026
6076
|
}
|
|
6027
6077
|
}, [userData.uid, toggleNotification]);
|
|
6078
|
+
const handleCloseVerificationDialog = React.useCallback(() => {
|
|
6079
|
+
setShowVerificationDialog({ isOpen: false, email: "", id: "" });
|
|
6080
|
+
}, []);
|
|
6081
|
+
const handleSendVerificationEmail = React.useCallback(async () => {
|
|
6082
|
+
await sendVerificationEmail(userData.uid);
|
|
6083
|
+
}, [userData.uid]);
|
|
6028
6084
|
if (isLoading) {
|
|
6029
6085
|
return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Loading, {});
|
|
6030
6086
|
}
|
|
@@ -6128,20 +6184,37 @@ const EditUserForm = ({ data }) => {
|
|
|
6128
6184
|
shadow: "tableShadow",
|
|
6129
6185
|
children: [
|
|
6130
6186
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", marginBottom: 2, children: "Account Actions" }),
|
|
6131
|
-
/* @__PURE__ */ jsxRuntime.
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6139
|
-
|
|
6140
|
-
|
|
6141
|
-
|
|
6187
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
|
|
6188
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6189
|
+
PasswordResetButton,
|
|
6190
|
+
{
|
|
6191
|
+
user: userData,
|
|
6192
|
+
fullWidth: true,
|
|
6193
|
+
onClick: () => {
|
|
6194
|
+
setShowResetPasswordDialog({
|
|
6195
|
+
isOpen: true,
|
|
6196
|
+
email: userData.email || "",
|
|
6197
|
+
id: userData.uid || ""
|
|
6198
|
+
});
|
|
6199
|
+
}
|
|
6142
6200
|
}
|
|
6143
|
-
|
|
6144
|
-
|
|
6201
|
+
),
|
|
6202
|
+
userData.email && !userData.emailVerified && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6203
|
+
designSystem.Button,
|
|
6204
|
+
{
|
|
6205
|
+
variant: "secondary",
|
|
6206
|
+
fullWidth: true,
|
|
6207
|
+
onClick: () => {
|
|
6208
|
+
setShowVerificationDialog({
|
|
6209
|
+
isOpen: true,
|
|
6210
|
+
email: userData.email || "",
|
|
6211
|
+
id: userData.uid || ""
|
|
6212
|
+
});
|
|
6213
|
+
},
|
|
6214
|
+
children: "Resend Verification Email"
|
|
6215
|
+
}
|
|
6216
|
+
)
|
|
6217
|
+
] })
|
|
6145
6218
|
]
|
|
6146
6219
|
}
|
|
6147
6220
|
),
|
|
@@ -6206,6 +6279,16 @@ const EditUserForm = ({ data }) => {
|
|
|
6206
6279
|
passwordMessage: passwordConfig.passwordRequirementsMessage,
|
|
6207
6280
|
onSendResetEmail: handleSendResetEmail
|
|
6208
6281
|
}
|
|
6282
|
+
),
|
|
6283
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6284
|
+
ResendVerification,
|
|
6285
|
+
{
|
|
6286
|
+
isOpen: showVerificationDialog.isOpen,
|
|
6287
|
+
onClose: handleCloseVerificationDialog,
|
|
6288
|
+
email: showVerificationDialog.email,
|
|
6289
|
+
userId: showVerificationDialog.id,
|
|
6290
|
+
onSendVerificationEmail: handleSendVerificationEmail
|
|
6291
|
+
}
|
|
6209
6292
|
)
|
|
6210
6293
|
] });
|
|
6211
6294
|
};
|
|
@@ -5,13 +5,13 @@ import { Provider } from "@radix-ui/react-tooltip";
|
|
|
5
5
|
import React, { useState, useCallback, useMemo, useEffect, useRef, useLayoutEffect } from "react";
|
|
6
6
|
import { Link, Flex, Box, Button, Tooltip, Tbody, Tr, Td, Checkbox, Typography, Modal, Table, Thead, Th, SingleSelect, SingleSelectOption, SearchForm, Searchbar, IconButton, Dialog, Tabs, TextInput, Alert, Field, Toggle, Divider } from "@strapi/design-system";
|
|
7
7
|
import { useIntl } from "react-intl";
|
|
8
|
-
import { i as isArguments_1, a as isBufferExports, b as isTypedArray_1, c as isLength_1, d as isFunction_1, _ as _getTag, e as _Stack, f as _equalArrays, g as _equalByTag, h as isObjectLike_1, j as getDefaultExportFromCjs, k as _baseGetTag, l as _MapCache, m as _Symbol, P as PLUGIN_ID, n as getAugmentedNamespace, o as commonjsGlobal } from "./index-
|
|
8
|
+
import { i as isArguments_1, a as isBufferExports, b as isTypedArray_1, c as isLength_1, d as isFunction_1, _ as _getTag, e as _Stack, f as _equalArrays, g as _equalByTag, h as isObjectLike_1, j as getDefaultExportFromCjs, k as _baseGetTag, l as _MapCache, m as _Symbol, P as PLUGIN_ID, n as getAugmentedNamespace, o as commonjsGlobal } from "./index-CMFutRyI.mjs";
|
|
9
9
|
import { ArrowLeft, Key, Trash, WarningCircle, CaretUp, CaretDown, Search, Plus, Pencil } from "@strapi/icons";
|
|
10
10
|
import styled from "styled-components";
|
|
11
11
|
import { RxCheck, RxCross2 } from "react-icons/rx";
|
|
12
12
|
import { AiOutlineUserAdd, AiFillPhone, AiFillMail, AiFillYahoo, AiFillGithub, AiFillTwitterCircle, AiFillFacebook, AiFillApple, AiFillGoogleCircle } from "react-icons/ai";
|
|
13
13
|
import { MdPassword } from "react-icons/md";
|
|
14
|
-
import { g as getFirebaseConfig$1 } from "./api-
|
|
14
|
+
import { g as getFirebaseConfig$1 } from "./api-BM2UtpvM.mjs";
|
|
15
15
|
import * as PhoneInputModule from "react-phone-input-2";
|
|
16
16
|
import "react-phone-input-2/lib/style.css";
|
|
17
17
|
import validator from "validator";
|
|
@@ -2707,6 +2707,12 @@ const getFirebaseConfig = async () => {
|
|
|
2707
2707
|
};
|
|
2708
2708
|
}
|
|
2709
2709
|
};
|
|
2710
|
+
const sendVerificationEmail = async (userId) => {
|
|
2711
|
+
const url = `/${PLUGIN_ID}/users/sendVerificationEmail/${userId}`;
|
|
2712
|
+
const { put } = getFetchClient();
|
|
2713
|
+
const { data: result } = await put(url, {});
|
|
2714
|
+
return result;
|
|
2715
|
+
};
|
|
2710
2716
|
const PaginationFooter = ({ pageCount = 0 }) => {
|
|
2711
2717
|
const [{ query }, setQuery] = useQueryParams$1();
|
|
2712
2718
|
const pageSize = query?.pageSize || "10";
|
|
@@ -5034,6 +5040,59 @@ const ResetPassword = ({
|
|
|
5034
5040
|
] })
|
|
5035
5041
|
] }) });
|
|
5036
5042
|
};
|
|
5043
|
+
const ResendVerification = ({
|
|
5044
|
+
isOpen,
|
|
5045
|
+
email,
|
|
5046
|
+
userId,
|
|
5047
|
+
onClose,
|
|
5048
|
+
onSendVerificationEmail
|
|
5049
|
+
}) => {
|
|
5050
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
5051
|
+
const [emailSent, setEmailSent] = useState(false);
|
|
5052
|
+
const [error, setError] = useState("");
|
|
5053
|
+
const resetState = () => {
|
|
5054
|
+
setEmailSent(false);
|
|
5055
|
+
setError("");
|
|
5056
|
+
setIsLoading(false);
|
|
5057
|
+
};
|
|
5058
|
+
const handleClose = () => {
|
|
5059
|
+
resetState();
|
|
5060
|
+
onClose();
|
|
5061
|
+
};
|
|
5062
|
+
const handleSendEmail = async () => {
|
|
5063
|
+
try {
|
|
5064
|
+
setIsLoading(true);
|
|
5065
|
+
setError("");
|
|
5066
|
+
await onSendVerificationEmail();
|
|
5067
|
+
setEmailSent(true);
|
|
5068
|
+
} catch (err) {
|
|
5069
|
+
setError(err.message || "Failed to send verification email");
|
|
5070
|
+
} finally {
|
|
5071
|
+
setIsLoading(false);
|
|
5072
|
+
}
|
|
5073
|
+
};
|
|
5074
|
+
return /* @__PURE__ */ jsx(Dialog.Root, { open: isOpen, onOpenChange: (open) => !open && handleClose(), children: /* @__PURE__ */ jsxs(Dialog.Content, { children: [
|
|
5075
|
+
/* @__PURE__ */ jsx(Dialog.Header, { children: "Resend Verification Email" }),
|
|
5076
|
+
/* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 4, alignItems: "center", children: [
|
|
5077
|
+
!emailSent ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5078
|
+
/* @__PURE__ */ jsxs(Typography, { textAlign: "center", children: [
|
|
5079
|
+
"Send a verification email to ",
|
|
5080
|
+
/* @__PURE__ */ jsx("strong", { children: email }),
|
|
5081
|
+
"?"
|
|
5082
|
+
] }),
|
|
5083
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "neutral600", textAlign: "center", children: "The link will expire in 1 hour." })
|
|
5084
|
+
] }) : /* @__PURE__ */ jsxs(Alert, { variant: "success", title: "Email Sent", children: [
|
|
5085
|
+
"Verification email has been sent to ",
|
|
5086
|
+
email
|
|
5087
|
+
] }),
|
|
5088
|
+
error && /* @__PURE__ */ jsx(Alert, { variant: "danger", title: "Error", children: error })
|
|
5089
|
+
] }) }),
|
|
5090
|
+
/* @__PURE__ */ jsxs(Dialog.Footer, { children: [
|
|
5091
|
+
/* @__PURE__ */ jsx(Button, { onClick: handleClose, variant: "tertiary", children: emailSent ? "Close" : "Cancel" }),
|
|
5092
|
+
!emailSent && /* @__PURE__ */ jsx(Button, { variant: "success", loading: isLoading, onClick: handleSendEmail, children: "Send" })
|
|
5093
|
+
] })
|
|
5094
|
+
] }) });
|
|
5095
|
+
};
|
|
5037
5096
|
const HEADER_TITLE = "Firebase Users";
|
|
5038
5097
|
const NOTIFICATION_MESSAGES = {
|
|
5039
5098
|
DELETED: "Deleted",
|
|
@@ -5394,24 +5453,10 @@ const HomePage = () => {
|
|
|
5394
5453
|
let PhoneInputTemp = PhoneInputModule;
|
|
5395
5454
|
let unwrapCount = 0;
|
|
5396
5455
|
while (PhoneInputTemp && typeof PhoneInputTemp === "object" && PhoneInputTemp.default && unwrapCount < 5) {
|
|
5397
|
-
console.log(`🔧 Unwrapping PhoneInput layer ${unwrapCount}:`, PhoneInputTemp);
|
|
5398
5456
|
PhoneInputTemp = PhoneInputTemp.default;
|
|
5399
5457
|
unwrapCount++;
|
|
5400
5458
|
}
|
|
5401
5459
|
const PhoneInput = PhoneInputTemp;
|
|
5402
|
-
console.log("🔍 ==================== PhoneInput Final Check ====================");
|
|
5403
|
-
console.log(" Unwrap iterations:", unwrapCount);
|
|
5404
|
-
console.log(" PhoneInput FINAL:", PhoneInput);
|
|
5405
|
-
console.log(" PhoneInput type:", typeof PhoneInput);
|
|
5406
|
-
console.log(" PhoneInput $$typeof:", PhoneInput?.$$typeof);
|
|
5407
|
-
console.log(" PhoneInput name:", PhoneInput?.name);
|
|
5408
|
-
console.log(" PhoneInput displayName:", PhoneInput?.displayName);
|
|
5409
|
-
console.log(" Is function?:", typeof PhoneInput === "function");
|
|
5410
|
-
console.log(
|
|
5411
|
-
" Is valid React component?:",
|
|
5412
|
-
typeof PhoneInput === "function" || PhoneInput && PhoneInput.$$typeof
|
|
5413
|
-
);
|
|
5414
|
-
console.log("🔍 ================================================================");
|
|
5415
5460
|
const StyledPhoneInputWrapper = styled.div`
|
|
5416
5461
|
width: 100%;
|
|
5417
5462
|
|
|
@@ -5935,6 +5980,11 @@ const EditUserForm = ({ data }) => {
|
|
|
5935
5980
|
email: "",
|
|
5936
5981
|
id: ""
|
|
5937
5982
|
});
|
|
5983
|
+
const [showVerificationDialog, setShowVerificationDialog] = useState({
|
|
5984
|
+
isOpen: false,
|
|
5985
|
+
email: "",
|
|
5986
|
+
id: ""
|
|
5987
|
+
});
|
|
5938
5988
|
const [passwordConfig, setPasswordConfig] = useState({
|
|
5939
5989
|
passwordRequirementsRegex: "^.{6,}$",
|
|
5940
5990
|
passwordRequirementsMessage: "Password must be at least 6 characters long"
|
|
@@ -6022,6 +6072,12 @@ const EditUserForm = ({ data }) => {
|
|
|
6022
6072
|
});
|
|
6023
6073
|
}
|
|
6024
6074
|
}, [userData.uid, toggleNotification]);
|
|
6075
|
+
const handleCloseVerificationDialog = useCallback(() => {
|
|
6076
|
+
setShowVerificationDialog({ isOpen: false, email: "", id: "" });
|
|
6077
|
+
}, []);
|
|
6078
|
+
const handleSendVerificationEmail = useCallback(async () => {
|
|
6079
|
+
await sendVerificationEmail(userData.uid);
|
|
6080
|
+
}, [userData.uid]);
|
|
6025
6081
|
if (isLoading) {
|
|
6026
6082
|
return /* @__PURE__ */ jsx(Page.Loading, {});
|
|
6027
6083
|
}
|
|
@@ -6125,20 +6181,37 @@ const EditUserForm = ({ data }) => {
|
|
|
6125
6181
|
shadow: "tableShadow",
|
|
6126
6182
|
children: [
|
|
6127
6183
|
/* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", marginBottom: 2, children: "Account Actions" }),
|
|
6128
|
-
/* @__PURE__ */
|
|
6129
|
-
|
|
6130
|
-
|
|
6131
|
-
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
|
|
6138
|
-
|
|
6184
|
+
/* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
|
6185
|
+
/* @__PURE__ */ jsx(
|
|
6186
|
+
PasswordResetButton,
|
|
6187
|
+
{
|
|
6188
|
+
user: userData,
|
|
6189
|
+
fullWidth: true,
|
|
6190
|
+
onClick: () => {
|
|
6191
|
+
setShowResetPasswordDialog({
|
|
6192
|
+
isOpen: true,
|
|
6193
|
+
email: userData.email || "",
|
|
6194
|
+
id: userData.uid || ""
|
|
6195
|
+
});
|
|
6196
|
+
}
|
|
6139
6197
|
}
|
|
6140
|
-
|
|
6141
|
-
|
|
6198
|
+
),
|
|
6199
|
+
userData.email && !userData.emailVerified && /* @__PURE__ */ jsx(
|
|
6200
|
+
Button,
|
|
6201
|
+
{
|
|
6202
|
+
variant: "secondary",
|
|
6203
|
+
fullWidth: true,
|
|
6204
|
+
onClick: () => {
|
|
6205
|
+
setShowVerificationDialog({
|
|
6206
|
+
isOpen: true,
|
|
6207
|
+
email: userData.email || "",
|
|
6208
|
+
id: userData.uid || ""
|
|
6209
|
+
});
|
|
6210
|
+
},
|
|
6211
|
+
children: "Resend Verification Email"
|
|
6212
|
+
}
|
|
6213
|
+
)
|
|
6214
|
+
] })
|
|
6142
6215
|
]
|
|
6143
6216
|
}
|
|
6144
6217
|
),
|
|
@@ -6203,6 +6276,16 @@ const EditUserForm = ({ data }) => {
|
|
|
6203
6276
|
passwordMessage: passwordConfig.passwordRequirementsMessage,
|
|
6204
6277
|
onSendResetEmail: handleSendResetEmail
|
|
6205
6278
|
}
|
|
6279
|
+
),
|
|
6280
|
+
/* @__PURE__ */ jsx(
|
|
6281
|
+
ResendVerification,
|
|
6282
|
+
{
|
|
6283
|
+
isOpen: showVerificationDialog.isOpen,
|
|
6284
|
+
onClose: handleCloseVerificationDialog,
|
|
6285
|
+
email: showVerificationDialog.email,
|
|
6286
|
+
userId: showVerificationDialog.id,
|
|
6287
|
+
onSendVerificationEmail: handleSendVerificationEmail
|
|
6288
|
+
}
|
|
6206
6289
|
)
|
|
6207
6290
|
] });
|
|
6208
6291
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getFetchClient } from "@strapi/strapi/admin";
|
|
2
|
-
import { P as PLUGIN_ID } from "./index-
|
|
2
|
+
import { P as PLUGIN_ID } from "./index-CMFutRyI.mjs";
|
|
3
3
|
const saveFirebaseConfig = async (json, firebaseWebApiKey, passwordConfig) => {
|
|
4
4
|
const url = `/${PLUGIN_ID}/settings/firebase-config`;
|
|
5
5
|
const { post } = getFetchClient();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const admin = require("@strapi/strapi/admin");
|
|
3
|
-
const index = require("./index-
|
|
3
|
+
const index = require("./index-B5EwGI_y.js");
|
|
4
4
|
const saveFirebaseConfig = async (json, firebaseWebApiKey, passwordConfig) => {
|
|
5
5
|
const url = `/${index.PLUGIN_ID}/settings/firebase-config`;
|
|
6
6
|
const { post } = admin.getFetchClient();
|