replies timeline only, appview-less bluesky client
1import type { Did, Handle } from '@atcute/lexicons'; 2import { writable } from 'svelte/store'; 3import { hashColor } from './theme.svelte'; 4 5export type Account = { 6 did: Did; 7 handle: Handle; 8 password: string; 9}; 10 11let _accounts: Account[] = []; 12export const accounts = (() => { 13 const raw = localStorage.getItem('accounts'); 14 _accounts = raw ? JSON.parse(raw) : []; 15 const store = writable<Account[]>(_accounts); 16 store.subscribe((accounts) => { 17 _accounts = accounts; 18 localStorage.setItem('accounts', JSON.stringify(accounts)); 19 }); 20 return store; 21})(); 22 23export const addAccount = (account: Account): void => { 24 accounts.update((accounts) => [...accounts, account]); 25}; 26 27export const generateColorForDid = (did: string) => hashColor(did);