@nocios/crudify-ui 1.0.56 → 1.0.58

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/index.js CHANGED
@@ -726,56 +726,10 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
726
726
  const [fromCodeVerification, setFromCodeVerification] = (0, import_react6.useState)(false);
727
727
  const [validatingCode, setValidatingCode] = (0, import_react6.useState)(true);
728
728
  const [codeValidated, setCodeValidated] = (0, import_react6.useState)(false);
729
+ const [pendingValidation, setPendingValidation] = (0, import_react6.useState)(null);
729
730
  const { t } = useTranslation();
730
731
  const { crudify: crudify3 } = useCrudifyLogin(config);
731
732
  (0, import_react6.useEffect)(() => {
732
- const validateCode = async (emailToValidate, codeToValidate) => {
733
- if (!crudify3) return;
734
- console.log("\u{1F50D} Validating reset code:", { emailToValidate, codeToValidate });
735
- try {
736
- const data = [
737
- {
738
- operation: "validatePasswordResetCode",
739
- data: { email: emailToValidate, codePassword: codeToValidate }
740
- }
741
- ];
742
- console.log("\u{1F4E4} Sending validation request:", data);
743
- const response = await crudify3.transaction(data);
744
- console.log("\u{1F4E5} Validation response:", response);
745
- if (response.success) {
746
- console.log("\u2705 Code validation successful");
747
- setCodeValidated(true);
748
- } else {
749
- console.log("\u274C Code validation failed:", response);
750
- if (response.data?.response?.status === "TOO_MANY_REQUESTS") {
751
- setErrors([t("errors.auth.TOO_MANY_REQUESTS")]);
752
- } else {
753
- let errorMessage = t("resetPassword.invalidCode");
754
- if (response.errors?._error) {
755
- const error = response.errors._error[0];
756
- if (error === "TOO_MANY_REQUESTS") {
757
- errorMessage = t("errors.auth.TOO_MANY_REQUESTS");
758
- } else {
759
- const errorMsg = error?.toLowerCase() || "";
760
- if (errorMsg.includes("expired")) {
761
- errorMessage = t("resetPassword.codeExpiredOrInvalid");
762
- } else if (errorMsg.includes("invalid")) {
763
- errorMessage = t("resetPassword.invalidCode");
764
- }
765
- }
766
- }
767
- setErrors([errorMessage]);
768
- }
769
- setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
770
- }
771
- } catch (error) {
772
- console.error("Code validation error:", error);
773
- setErrors([t("resetPassword.invalidCode")]);
774
- setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
775
- } finally {
776
- setValidatingCode(false);
777
- }
778
- };
779
733
  if (searchParams) {
780
734
  const fromCodeVerificationParam = searchParams.get("fromCodeVerification");
781
735
  const emailParam = searchParams.get("email");
@@ -798,7 +752,8 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
798
752
  setCode(linkCode);
799
753
  setEmail(linkEmail);
800
754
  setFromCodeVerification(false);
801
- validateCode(linkEmail, linkCode);
755
+ console.log("\u23F3 Setting pending validation for reset link");
756
+ setPendingValidation({ email: linkEmail, code: linkCode });
802
757
  return;
803
758
  }
804
759
  } catch (error) {
@@ -809,7 +764,8 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
809
764
  setEmail(emailParam);
810
765
  setCode(codeParam);
811
766
  setFromCodeVerification(false);
812
- validateCode(emailParam, codeParam);
767
+ console.log("\u23F3 Setting pending validation for direct params");
768
+ setPendingValidation({ email: emailParam, code: codeParam });
813
769
  return;
814
770
  }
815
771
  }
@@ -817,6 +773,59 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
817
773
  setValidatingCode(false);
818
774
  setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
819
775
  }, [searchParams, crudify3, t, onNavigate]);
776
+ (0, import_react6.useEffect)(() => {
777
+ if (crudify3 && pendingValidation) {
778
+ console.log("\u{1F680} Crudify ready! Executing pending validation:", pendingValidation);
779
+ const validateCode = async (emailToValidate, codeToValidate) => {
780
+ console.log("\u{1F50D} Validating reset code:", { emailToValidate, codeToValidate });
781
+ try {
782
+ const data = [
783
+ {
784
+ operation: "validatePasswordResetCode",
785
+ data: { email: emailToValidate, codePassword: codeToValidate }
786
+ }
787
+ ];
788
+ console.log("\u{1F4E4} Sending validation request:", data);
789
+ const response = await crudify3.transaction(data);
790
+ console.log("\u{1F4E5} Validation response:", response);
791
+ if (response.success) {
792
+ console.log("\u2705 Code validation successful");
793
+ setCodeValidated(true);
794
+ } else {
795
+ console.log("\u274C Code validation failed:", response);
796
+ if (response.data?.response?.status === "TOO_MANY_REQUESTS") {
797
+ setErrors([t("errors.auth.TOO_MANY_REQUESTS")]);
798
+ } else {
799
+ let errorMessage = t("resetPassword.invalidCode");
800
+ if (response.errors?._error) {
801
+ const error = response.errors._error[0];
802
+ if (error === "TOO_MANY_REQUESTS") {
803
+ errorMessage = t("errors.auth.TOO_MANY_REQUESTS");
804
+ } else {
805
+ const errorMsg = error?.toLowerCase() || "";
806
+ if (errorMsg.includes("expired")) {
807
+ errorMessage = t("resetPassword.codeExpiredOrInvalid");
808
+ } else if (errorMsg.includes("invalid")) {
809
+ errorMessage = t("resetPassword.invalidCode");
810
+ }
811
+ }
812
+ }
813
+ setErrors([errorMessage]);
814
+ }
815
+ setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
816
+ }
817
+ } catch (error) {
818
+ console.error("Code validation error:", error);
819
+ setErrors([t("resetPassword.invalidCode")]);
820
+ setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
821
+ } finally {
822
+ setValidatingCode(false);
823
+ setPendingValidation(null);
824
+ }
825
+ };
826
+ validateCode(pendingValidation.email, pendingValidation.code);
827
+ }
828
+ }, [crudify3, pendingValidation, t, onNavigate]);
820
829
  const validatePassword = (password) => {
821
830
  if (password.length < 8) {
822
831
  return t("resetPassword.passwordTooShort");
package/dist/index.mjs CHANGED
@@ -682,56 +682,10 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
682
682
  const [fromCodeVerification, setFromCodeVerification] = useState4(false);
683
683
  const [validatingCode, setValidatingCode] = useState4(true);
684
684
  const [codeValidated, setCodeValidated] = useState4(false);
685
+ const [pendingValidation, setPendingValidation] = useState4(null);
685
686
  const { t } = useTranslation();
686
687
  const { crudify: crudify3 } = useCrudifyLogin(config);
687
688
  useEffect4(() => {
688
- const validateCode = async (emailToValidate, codeToValidate) => {
689
- if (!crudify3) return;
690
- console.log("\u{1F50D} Validating reset code:", { emailToValidate, codeToValidate });
691
- try {
692
- const data = [
693
- {
694
- operation: "validatePasswordResetCode",
695
- data: { email: emailToValidate, codePassword: codeToValidate }
696
- }
697
- ];
698
- console.log("\u{1F4E4} Sending validation request:", data);
699
- const response = await crudify3.transaction(data);
700
- console.log("\u{1F4E5} Validation response:", response);
701
- if (response.success) {
702
- console.log("\u2705 Code validation successful");
703
- setCodeValidated(true);
704
- } else {
705
- console.log("\u274C Code validation failed:", response);
706
- if (response.data?.response?.status === "TOO_MANY_REQUESTS") {
707
- setErrors([t("errors.auth.TOO_MANY_REQUESTS")]);
708
- } else {
709
- let errorMessage = t("resetPassword.invalidCode");
710
- if (response.errors?._error) {
711
- const error = response.errors._error[0];
712
- if (error === "TOO_MANY_REQUESTS") {
713
- errorMessage = t("errors.auth.TOO_MANY_REQUESTS");
714
- } else {
715
- const errorMsg = error?.toLowerCase() || "";
716
- if (errorMsg.includes("expired")) {
717
- errorMessage = t("resetPassword.codeExpiredOrInvalid");
718
- } else if (errorMsg.includes("invalid")) {
719
- errorMessage = t("resetPassword.invalidCode");
720
- }
721
- }
722
- }
723
- setErrors([errorMessage]);
724
- }
725
- setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
726
- }
727
- } catch (error) {
728
- console.error("Code validation error:", error);
729
- setErrors([t("resetPassword.invalidCode")]);
730
- setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
731
- } finally {
732
- setValidatingCode(false);
733
- }
734
- };
735
689
  if (searchParams) {
736
690
  const fromCodeVerificationParam = searchParams.get("fromCodeVerification");
737
691
  const emailParam = searchParams.get("email");
@@ -754,7 +708,8 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
754
708
  setCode(linkCode);
755
709
  setEmail(linkEmail);
756
710
  setFromCodeVerification(false);
757
- validateCode(linkEmail, linkCode);
711
+ console.log("\u23F3 Setting pending validation for reset link");
712
+ setPendingValidation({ email: linkEmail, code: linkCode });
758
713
  return;
759
714
  }
760
715
  } catch (error) {
@@ -765,7 +720,8 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
765
720
  setEmail(emailParam);
766
721
  setCode(codeParam);
767
722
  setFromCodeVerification(false);
768
- validateCode(emailParam, codeParam);
723
+ console.log("\u23F3 Setting pending validation for direct params");
724
+ setPendingValidation({ email: emailParam, code: codeParam });
769
725
  return;
770
726
  }
771
727
  }
@@ -773,6 +729,59 @@ var ResetPasswordForm = ({ config, onNavigate, onError, searchParams, onResetSuc
773
729
  setValidatingCode(false);
774
730
  setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
775
731
  }, [searchParams, crudify3, t, onNavigate]);
732
+ useEffect4(() => {
733
+ if (crudify3 && pendingValidation) {
734
+ console.log("\u{1F680} Crudify ready! Executing pending validation:", pendingValidation);
735
+ const validateCode = async (emailToValidate, codeToValidate) => {
736
+ console.log("\u{1F50D} Validating reset code:", { emailToValidate, codeToValidate });
737
+ try {
738
+ const data = [
739
+ {
740
+ operation: "validatePasswordResetCode",
741
+ data: { email: emailToValidate, codePassword: codeToValidate }
742
+ }
743
+ ];
744
+ console.log("\u{1F4E4} Sending validation request:", data);
745
+ const response = await crudify3.transaction(data);
746
+ console.log("\u{1F4E5} Validation response:", response);
747
+ if (response.success) {
748
+ console.log("\u2705 Code validation successful");
749
+ setCodeValidated(true);
750
+ } else {
751
+ console.log("\u274C Code validation failed:", response);
752
+ if (response.data?.response?.status === "TOO_MANY_REQUESTS") {
753
+ setErrors([t("errors.auth.TOO_MANY_REQUESTS")]);
754
+ } else {
755
+ let errorMessage = t("resetPassword.invalidCode");
756
+ if (response.errors?._error) {
757
+ const error = response.errors._error[0];
758
+ if (error === "TOO_MANY_REQUESTS") {
759
+ errorMessage = t("errors.auth.TOO_MANY_REQUESTS");
760
+ } else {
761
+ const errorMsg = error?.toLowerCase() || "";
762
+ if (errorMsg.includes("expired")) {
763
+ errorMessage = t("resetPassword.codeExpiredOrInvalid");
764
+ } else if (errorMsg.includes("invalid")) {
765
+ errorMessage = t("resetPassword.invalidCode");
766
+ }
767
+ }
768
+ }
769
+ setErrors([errorMessage]);
770
+ }
771
+ setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
772
+ }
773
+ } catch (error) {
774
+ console.error("Code validation error:", error);
775
+ setErrors([t("resetPassword.invalidCode")]);
776
+ setTimeout(() => onNavigate?.("/login/forgotPassword"), 3e3);
777
+ } finally {
778
+ setValidatingCode(false);
779
+ setPendingValidation(null);
780
+ }
781
+ };
782
+ validateCode(pendingValidation.email, pendingValidation.code);
783
+ }
784
+ }, [crudify3, pendingValidation, t, onNavigate]);
776
785
  const validatePassword = (password) => {
777
786
  if (password.length < 8) {
778
787
  return t("resetPassword.passwordTooShort");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocios/crudify-ui",
3
- "version": "1.0.56",
3
+ "version": "1.0.58",
4
4
  "description": "Biblioteca de componentes UI para Crudify",
5
5
  "author": "Nocios",
6
6
  "license": "MIT",