This commit is contained in:
Shusui MOYATANI
2023-03-23 09:48:13 +09:00
parent 04eaa5b0ad
commit ba54f9f7e8
3 changed files with 13 additions and 15 deletions

View File

@@ -447,7 +447,7 @@ export const useFollowings = (propsProvider: () => UseFollowingsProps | null): U
},
{
staleTime: 5 * 60 * 1000, // 5 min
cacheTime: 4 * 60 * 60 * 1000, // 4 hour
cacheTime: 24 * 60 * 60 * 1000, // 24 hour
refetchOnWindowFocus: false,
},
);
@@ -475,9 +475,7 @@ export const useFollowings = (propsProvider: () => UseFollowingsProps | null): U
return result;
};
const followingPubkeys = (): string[] => {
return followings().map((follow) => follow.pubkey);
};
const followingPubkeys = (): string[] => followings().map((follow) => follow.pubkey);
return { followings, followingPubkeys, query };
};

View File

@@ -7,10 +7,10 @@ const [pubkey, setPubkey] = createSignal<string | undefined>(undefined);
// TODO 失敗したときに通知等を表示したい
const usePubkey = (): Accessor<string | undefined> => {
onMount(() => {
console.time('pubkey loaded');
if (pubkey() != null) return;
let count = 0;
let intervalId: ReturnType<typeof setInterval> | undefined;
const loadPubkey = () => {
const intervalId = setInterval(() => {
if (count >= 20) {
clearInterval(intervalId);
if (pubkey() == null) {
@@ -29,7 +29,6 @@ const usePubkey = (): Accessor<string | undefined> => {
.then((key) => {
clearInterval(intervalId);
setPubkey(key);
console.timeEnd('pubkey loaded');
})
.catch((err) => console.error('failed to obtain public key: ', err))
.finally(() => {
@@ -37,8 +36,7 @@ const usePubkey = (): Accessor<string | undefined> => {
});
}
count += 1;
};
intervalId = setInterval(loadPubkey, 200);
}, 200);
});
return pubkey;

View File

@@ -54,18 +54,20 @@ const Home: Component = () => {
})),
);
const { events: followingsPosts } = useSubscription(() =>
ensureNonNull([pubkey()] as const)(([pubkeyNonNull]) => ({
const { events: followingsPosts } = useSubscription(() => {
const authors = uniq([...followingPubkeys()]);
if (authors.length === 0) return null;
return {
relayUrls: config().relayUrls,
filters: [
{
kinds: [1, 6],
authors: uniq([...followingPubkeys(), pubkeyNonNull]),
authors,
limit: 25,
},
],
})),
);
};
});
const { events: myPosts } = useSubscription(() =>
ensureNonNull([pubkey()] as const)(([pubkeyNonNull]) => ({