@lumiapassport/ui-kit 1.14.25 → 1.14.26

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
@@ -4342,8 +4342,9 @@ async function changeNickname(handle) {
4342
4342
  }
4343
4343
  async function checkNicknameAvailability(handle) {
4344
4344
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4345
- const response = await tssClient.get(
4346
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/check`,
4345
+ const response = await tssClient.post(
4346
+ "/api/auth/nicknames/check",
4347
+ { handle: normalizedHandle },
4347
4348
  false
4348
4349
  // Public endpoint, no auth required
4349
4350
  );
@@ -4355,14 +4356,15 @@ async function checkNicknameAvailability(handle) {
4355
4356
  }
4356
4357
  async function resolveNickname(handle) {
4357
4358
  const normalizedHandle = handle.toLowerCase().replace(/^@/, "");
4358
- const response = await tssClient.get(
4359
- `/api/auth/nicknames/${encodeURIComponent(normalizedHandle)}/resolve`,
4359
+ const response = await tssClient.post(
4360
+ "/api/auth/nicknames/resolve",
4361
+ { handle: normalizedHandle },
4360
4362
  false
4361
4363
  // Public endpoint, no auth required
4362
4364
  );
4363
4365
  if (!response.success || !response.data) {
4364
- const errorData = response.data;
4365
- if (errorData?.code === "NICKNAME_NOT_FOUND") {
4366
+ const errorData = response.data || {};
4367
+ if (errorData.code === "NICKNAME_NOT_FOUND") {
4366
4368
  const error = new Error("Nickname not found");
4367
4369
  error.code = "NICKNAME_NOT_FOUND";
4368
4370
  throw error;
@@ -5900,12 +5902,21 @@ function useBackupStatusChanges() {
5900
5902
  const { mutate: handleBackupStatusChanged } = useMutation2({
5901
5903
  mutationFn: async (event) => {
5902
5904
  const customEvent = event;
5903
- return await getShareRecoveryStats();
5905
+ console.log("[BACKUP STATUS] changed:", customEvent?.detail);
5906
+ return { stats: await getShareRecoveryStats(), detail: customEvent?.detail };
5904
5907
  },
5905
- onSuccess: (stats) => {
5908
+ onSuccess: ({ stats, detail }) => {
5906
5909
  const hasRecoveryData = stats && (!!stats.created || !!stats?.devices?.length);
5907
5910
  if (!!hasRecoveryData) {
5911
+ console.log(
5912
+ "[BACKUP STATUS] Recovery data found after backup status change.\n Redirect to main menu:",
5913
+ detail?.navigateToMainMenu
5914
+ );
5908
5915
  setHasServerVault(true);
5916
+ if (!!detail?.navigateToMainMenu) {
5917
+ setTimeout(() => setPage("main-menu" /* MAIN_MENU */), 1e3);
5918
+ }
5919
+ console.info("[BACKUP STATUS] Recovery data found in vault, marking as has-server-vault");
5909
5920
  } else {
5910
5921
  setHasServerVault(false);
5911
5922
  setPage("keysare-backup" /* KEYSARE_BACKUP */);
@@ -8320,6 +8331,9 @@ Switch.displayName = "Switch";
8320
8331
  import { Cloud, FileDown, FileUp } from "lucide-react";
8321
8332
  import { Fragment as Fragment8, useMemo as useMemo2 } from "react";
8322
8333
 
8334
+ // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8335
+ import { useCallback as useCallback9 } from "react";
8336
+
8323
8337
  // src/internal/components/KeyshareRestoreMenu/hooks/useRestoreStore.ts
8324
8338
  import { create as create4 } from "zustand";
8325
8339
  var useRestoreStore = create4((set) => ({
@@ -8348,7 +8362,6 @@ var useRestoreStore = create4((set) => ({
8348
8362
  }));
8349
8363
 
8350
8364
  // src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts
8351
- import { useCallback as useCallback9 } from "react";
8352
8365
  function useOnRestoreSuccess() {
8353
8366
  const { config, callbacks } = useLumiaPassportConfig();
8354
8367
  const setIsDialogForced = useLayoutStore((st) => st.setIsDialogForced);
@@ -8486,20 +8499,25 @@ function useCreateBackup() {
8486
8499
  if (!usePasskey && !restorePassword) {
8487
8500
  throw new Error("Please provide a password for the backup");
8488
8501
  }
8489
- return await iframeManager.createBackup(
8490
- passportUserId,
8491
- { method: "server", password: restorePassword },
8492
- jwt.accessToken
8493
- );
8502
+ const navigateToMainMenu = jwt.isNewUser || !hasServerVault;
8503
+ console.log("[BACKUP STATUS] is new user:", jwt.isNewUser, !hasServerVault);
8504
+ return {
8505
+ response: await iframeManager.createBackup(
8506
+ passportUserId,
8507
+ { method: "server", password: restorePassword },
8508
+ jwt.accessToken
8509
+ ),
8510
+ navigateToMainMenu
8511
+ };
8494
8512
  },
8495
- onSuccess: async (response) => {
8513
+ onSuccess: async ({ response, navigateToMainMenu }) => {
8496
8514
  qc.invalidateQueries({ queryKey: [CHECK_BACKUP_QUERY_KEY, address] });
8497
8515
  if (response.success) {
8498
8516
  setSuccess("Successfully created server backup");
8499
8517
  if (typeof window !== "undefined") {
8500
8518
  window.dispatchEvent(
8501
8519
  new CustomEvent("lumia-passport-backup-status-changed", {
8502
- detail: { method: "server", success: true }
8520
+ detail: { method: "server", success: true, navigateToMainMenu }
8503
8521
  })
8504
8522
  );
8505
8523
  }
@@ -9550,6 +9568,12 @@ function KeyshareBackupMenu() {
9550
9568
  useEffect19(() => {
9551
9569
  setMainPageHeight(DEFAULT_SETTINGS_MENU_HEIGHT);
9552
9570
  return () => {
9571
+ setSuccess(null);
9572
+ setError(null);
9573
+ setRestoreFile(null);
9574
+ setRestorePassword("");
9575
+ setShowPassword(false);
9576
+ setUsePasskey(false);
9553
9577
  setMethod(null);
9554
9578
  };
9555
9579
  }, []);