+13
-5
src/lib/states/session.tsx
+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