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);