import { browser } from '$app/environment'; import { writable } from 'svelte/store'; import { NDKNip07Signer, NDKUser } from '@nostr-dev-kit/ndk'; import NDKSvelte from '@nostr-dev-kit/ndk-svelte'; import NDKCacheAdapterDexie from '@nostr-dev-kit/ndk-cache-dexie'; const dexieAdapter = new NDKCacheAdapterDexie({ dbName: 'npub-email-cache' }); const nip07signer = new NDKNip07Signer(); export const _ndk = new NDKSvelte({ explicitRelayUrls: ['wss://relay.primal.net', 'wss://relay.snort.social'], autoConnectUserRelays: false, relayAuthDefaultPolicy: async (r) => true, enableOutboxModel: true, // signer: nip07signer, cacheAdapter: dexieAdapter }); if (browser && localStorage.getItem('useNip07')) _ndk.signer = nip07signer; export const ndk = writable(_ndk); export const activeUser = writable(undefined); if (browser && _ndk.activeUser) activeUser.set(_ndk.activeUser); export const validSortOptions = ['stamps', 'date', 'sender', 'subject']; export const baseHue = writable( browser ? parseInt(localStorage.getItem('baseHue')) || 200 : 200 ); // export const sortBy = writable(browser ? localStorage.getItem('sortBy') || 'date' : 'date'); export const dateFormat = writable( browser ? localStorage.getItem('dateFormat') || 'y-m-d' : 'y-m-d' ); export const timeFormat = writable( browser ? localStorage.getItem('timeFormat') || 'h:m:s' : 'h:m:s' ); export let pageTitle = writable('loading'); export let pageIcon = writable(''); if (browser) { baseHue.subscribe((value) => { document.documentElement.style.setProperty('--base-hue', value.toString()); localStorage.setItem('baseHue', value.toString()); }); // sortBy.subscribe((value) => { // if (!validSortOptions.includes(value)) value = 'date'; // localStorage.setItem('sortBy', value); // }); dateFormat.subscribe((value) => { localStorage.setItem('dateFormat', value); }); timeFormat.subscribe((value) => { localStorage.setItem('timeFormat', value); }); }