An easy-to-host PDS on the ATProtocol, iPhone and MacOS. Maintain control of your keys and data, always.
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(identity-wallet): address PR #67 frontend review feedback

- Add default cases to both error switch statements (onMount and handleSubmit) to catch any new RecoveryError codes and prevent silent error swallowing. Uses type assertion (as { message?: string }) to avoid TypeScript 'never' type issue after exhaustive case handling.
- Add submitting = false before onsuccess() in handleSubmit success path to ensure the button state is properly reset, matching the error path behavior.
- Reduce timer interval from 60000ms to 15000ms in onMount for more accurate countdown display on recovery deadline, balancing accuracy with performance.

+8 -1
+8 -1
apps/identity-wallet/src/lib/components/home/RecoveryOverrideScreen.svelte
··· 36 36 // Start the countdown timer 37 37 timer = setInterval(() => { 38 38 now = Date.now(); 39 - }, 60_000); 39 + }, 15_000); 40 40 41 41 // Build the recovery operation 42 42 loading = true; ··· 68 68 break; 69 69 case 'NETWORK_ERROR': 70 70 error = `Network error: ${err.message || 'unknown error'}`; 71 + break; 72 + default: 73 + error = (err as { message?: string }).message || 'An unexpected error occurred.'; 71 74 break; 72 75 } 73 76 } else { ··· 88 91 89 92 try { 90 93 await submitRecoveryOverride(did); 94 + submitting = false; 91 95 onsuccess(); 92 96 } catch (raw: unknown) { 93 97 console.error('Recovery submission failed:', raw); ··· 112 116 break; 113 117 case 'UNAUTHORIZED_CHANGE_NOT_FOUND': 114 118 error = 'Unauthorized change not found in audit log.'; 119 + break; 120 + default: 121 + error = (err as { message?: string }).message || 'An unexpected error occurred.'; 115 122 break; 116 123 } 117 124 } else {