From f37d57e987bfd8793858ad15c12162d6cb70cc10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Mon, 20 Oct 2025 17:01:58 +0200 Subject: [PATCH] pl-fe: shoutbox importing entities fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/pl-fe/src/stores/shoutbox.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/pl-fe/src/stores/shoutbox.ts b/packages/pl-fe/src/stores/shoutbox.ts index 738e6f0a0..cf4c75254 100644 --- a/packages/pl-fe/src/stores/shoutbox.ts +++ b/packages/pl-fe/src/stores/shoutbox.ts @@ -2,11 +2,16 @@ import { useEffect } from 'react'; import { create } from 'zustand'; import { mutative } from 'zustand-mutative'; +import { importEntities } from 'pl-fe/actions/importer'; import { useClient } from 'pl-fe/hooks/use-client'; import { useFeatures } from 'pl-fe/hooks/use-features'; import { useLoggedIn } from 'pl-fe/hooks/use-logged-in'; import type { PlApiClient, ShoutMessage as BaseShoutMessage } from 'pl-api'; +import type { store } from 'pl-fe/store'; + +let lazyStore: typeof store; +import('pl-fe/store').then(({ store }) => lazyStore = store).catch(() => {}); const minifyMessage = ({ author, ...message }: BaseShoutMessage) => ({ author_id: author.id, @@ -29,10 +34,12 @@ const useShoutboxStore = create()(mutative((set) => ({ messages: [], isLoading: true, setMessages: (messages) => set((state: State) => { + lazyStore?.dispatch(importEntities({ accounts: messages.map((msg) => msg.author) }) as any); state.messages = messages.map(minifyMessage); state.isLoading = false; }), pushMessage: (message) => set((state: State) => { + lazyStore?.dispatch(importEntities({ accounts: [message.author] }) as any); state.messages.push(minifyMessage(message)); }), setSocket: (socket) => set((state: State) => {