diff --git a/src/providers/global/user-directory-provider.tsx b/src/providers/global/user-directory-provider.tsx index 8b2bb2df5..7498a755c 100644 --- a/src/providers/global/user-directory-provider.tsx +++ b/src/providers/global/user-directory-provider.tsx @@ -2,6 +2,8 @@ import { PropsWithChildren, createContext, useCallback, useContext } from "react import { useAsync } from "react-use"; import db from "../../services/db"; +import useSubject from "../../hooks/use-subject"; +import { userSearchUpdate } from "../../services/username-search"; export type UserDirectory = { pubkey: string; names: string[] }[]; export type GetDirectoryFn = () => UserDirectory; @@ -12,7 +14,8 @@ export function useUserSearchDirectoryContext() { } export function AllUserSearchDirectoryProvider({ children }: PropsWithChildren) { - const { value: users } = useAsync(() => db.getAll("userSearch")); + const update = useSubject(userSearchUpdate); + const { value: users } = useAsync(() => db.getAll("userSearch"), [update]); const getDirectory = useCallback(() => users as UserDirectory, [users]); return {children}; diff --git a/src/services/username-search.ts b/src/services/username-search.ts index 52eff53a2..1d3d588fb 100644 --- a/src/services/username-search.ts +++ b/src/services/username-search.ts @@ -4,10 +4,13 @@ import db from "./db"; import replaceableEventsService from "./replaceable-events"; import userMetadataService from "./user-metadata"; import { logger } from "../helpers/debug"; +import Subject from "../classes/subject"; const WRITE_USER_SEARCH_BATCH_TIME = 500; const log = logger.extend("UsernameSearch"); +export const userSearchUpdate = new Subject(); + const writeSearchQueue = new Set(); const writeSearchData = _throttle(async () => { if (writeSearchQueue.size === 0) return; @@ -26,6 +29,7 @@ const writeSearchData = _throttle(async () => { } transaction.commit(); await transaction.done; + userSearchUpdate.next(Math.random()); }, WRITE_USER_SEARCH_BATCH_TIME); replaceableEventsService.events.onEvent.subscribe((event) => { diff --git a/src/views/home/index.tsx b/src/views/home/index.tsx index 1acb8ee02..c26157248 100644 --- a/src/views/home/index.tsx +++ b/src/views/home/index.tsx @@ -14,7 +14,7 @@ import NoteFilterTypeButtons from "../../components/note-filter-type-buttons"; import KindSelectionProvider, { useKindSelectionContext } from "../../providers/local/kind-selection-provider"; import { useReadRelays } from "../../hooks/use-client-relays"; -const defaultKinds = [kinds.ShortTextNote, kinds.Repost, kinds.GenericRepost, kinds.LongFormArticle]; +const defaultKinds = [kinds.ShortTextNote, kinds.Repost, kinds.GenericRepost]; function HomePage() { const showReplies = useDisclosure({ defaultIsOpen: localStorage.getItem("show-replies") === "true" });