personal web client for Bluesky
typescript solidjs bluesky atcute

fix: make sure we're writing to the correct account data

mary.my.id 56689207 2914e344

verified
Changed files
+13 -5
src
lib
states
+13 -5
src/lib/states/session.tsx
··· 60 60 }; 61 61 62 62 const createAccountState = ( 63 - account: AccountData, 63 + did: At.DID, 64 64 session: OAuthUserAgent | undefined, 65 65 rpc: XRPC, 66 66 ): CurrentAccountState => { 67 67 return createRoot((cleanup): CurrentAccountState => { 68 - const preferences = createAccountPreferences(account.did); 68 + const preferences = createAccountPreferences(did); 69 69 70 70 const [abortable] = makeAbortable(); 71 + 72 + const data = createMemo(() => { 73 + return sessions.accounts.find((acc) => acc.did === did); 74 + }); 71 75 72 76 const labelers = createMemo((): Labeler[] => { 73 77 return Object.entries(preferences.moderation.labelers).map(([did, info]): Labeler => { ··· 117 121 }); 118 122 119 123 return { 120 - did: account.did, 121 - data: account, 124 + did: did, 122 125 preferences: preferences, 126 + get data() { 127 + const $data = data(); 128 + assert($data !== undefined); 129 + return $data; 130 + }, 123 131 124 132 rpc: rpc, 125 133 agent: session, ··· 180 188 sessions.active = did; 181 189 sessions.accounts = [account, ...sessions.accounts.filter((acc) => acc.did !== did)]; 182 190 183 - replaceState(createAccountState(account, agent, rpc)); 191 + replaceState(createAccountState(did, agent, rpc)); 184 192 }); 185 193 }, 186 194