import { Accessor, createResource } from "solid-js"; import type { mastodon } from "masto"; import { useSessions } from "./clients"; import { updateAcctInf } from "../accounts/stores"; export function useAcctProfile(client: Accessor) { return createResource( client, (client) => { return client.v1.accounts.verifyCredentials(); }, { name: "MastodonAccountProfile", }, ); } export function useSignedInProfiles() { const sessions = useSessions(); const [accessor, tools] = createResource(sessions, async (all) => { return Promise.all( all.map(async (x, i) => ({ ...x, inf: await updateAcctInf(i) })), ); }); return [ () => { if (accessor.loading) { accessor(); return sessions().map((x) => ({ ...x, inf: x.account.inf })); } return accessor(); }, tools, ] as const; }