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" });