feat: SIWE auth, auto-pin, pin search/share, explorer improvements

- SIWE server-side auth (siwe + jose JWT)
- Wallet provider fallback (MAOS -> MetaMask)
- Auto-pin after upload (quick + crypto)
- Pin search/filter in explorer
- Share button (gateway link) per pin
- Copy CID button per pin
- Breadcrumb root navigation fix
- Hydration mismatch fix (mounted state)
- Defensive truncateCid for empty values
- CSP fix (template literal)
- Error boundaries (upload, profile, usage)
- 191 tests passing
This commit is contained in:
maikrolf
2026-09-19 12:25:36 +02:00
parent f72b775379
commit 7c7854e08f
24 changed files with 1349 additions and 125 deletions
+5 -1
View File
@@ -104,7 +104,11 @@ export default function PaymentPanel({
await refreshPricing(result.address, fileSize);
} catch (e: unknown) {
setError(e instanceof Error ? e.message : 'Failed to connect wallet');
const message = e instanceof Error ? e.message : 'Failed to connect wallet';
const isVaultLocked = message.toLowerCase().includes('vault locked') ||
message.toLowerCase().includes('user rejected') ||
message.toLowerCase().includes('user denied');
setError(isVaultLocked ? 'Ontgrendel je wallet eerst met je wachtwoord.' : message);
} finally {
setConnecting(false);
}