always fetch user emoji packs

This commit is contained in:
hzrd149 2023-08-31 14:14:44 -05:00
parent 27abb20fd7
commit 137ac2b490
4 changed files with 12 additions and 6 deletions

View File

@ -77,7 +77,6 @@ const RootPage = () => {
return (
<PageProviders>
<Global styles={overrideReactTextareaAutocompleteStyles} />
<Layout>
<ScrollRestoration />
<Suspense fallback={<Spinner />}>
@ -173,6 +172,7 @@ const router = createHashRouter([
export const App = () => (
<ErrorBoundary>
<Global styles={overrideReactTextareaAutocompleteStyles} />
<Suspense fallback={<Spinner />}>
<RouterProvider router={router} />
</Suspense>

View File

@ -3,10 +3,10 @@ import { useReadRelayUrls } from "./use-client-relays";
import emojiPacksService from "../services/emoji-packs";
import useSubject from "./use-subject";
export default function useUserEmojiPacks(pubkey?: string, additionalRelays?: string[]) {
export default function useUserEmojiPacks(pubkey?: string, additionalRelays?: string[], alwaysFetch = false) {
const readRelays = useReadRelayUrls(additionalRelays);
const subject = useMemo(() => {
if (pubkey) return emojiPacksService.requestUserEmojiList(pubkey, readRelays);
if (pubkey) return emojiPacksService.requestUserEmojiList(pubkey, readRelays, alwaysFetch);
}, [pubkey, readRelays.join("|")]);
return useSubject(subject);

View File

@ -25,7 +25,7 @@ export function DefaultEmojiProvider({ children }: PropsWithChildren) {
export function UserEmojiProvider({ children, pubkey }: PropsWithChildren & { pubkey?: string }) {
const account = useCurrentAccount();
const userPacks = useUserEmojiPacks(pubkey || account?.pubkey);
const userPacks = useUserEmojiPacks(pubkey || account?.pubkey, [], true);
const events = useReplaceableEvents(userPacks?.packs);
const emojis = events

View File

@ -38,9 +38,15 @@ class EmojiPacksService {
return sub;
}
requestUserEmojiList(pubkey: string, relays: string[]) {
requestUserEmojiList(pubkey: string, relays: string[], alwaysFetch = false) {
const sub = this.userEmojiPacks.get(pubkey);
const request = replaceableEventLoaderService.requestEvent(relays, USER_EMOJI_LIST_KIND, pubkey);
const request = replaceableEventLoaderService.requestEvent(
relays,
USER_EMOJI_LIST_KIND,
pubkey,
undefined,
alwaysFetch,
);
if (!sub.value) {
sub.connectWithHandler(request, (event, next) => {