Files
notesnook/apps/web/src/views/all-notes.tsx
01zulfi 0abbd41ff2 web: fix archived notes showing in search results (#8216)
* web: fix archived notes showing in search results
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* core: make notes param required in lookup.notesWithHighlighting
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>
2025-06-17 10:26:15 +05:00

71 lines
2.2 KiB
TypeScript

/*
This file is part of the Notesnook project (https://notesnook.com/)
Copyright (C) 2023 Streetwriters (Private) Limited
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React, { useEffect } from "react";
import { useStore } from "../stores/note-store";
import ListContainer from "../components/list-container";
import useNavigate from "../hooks/use-navigate";
import Placeholder from "../components/placeholders";
import { useSearch } from "../hooks/use-search";
import { db } from "../common/db";
import { useEditorStore } from "../stores/editor-store";
import { ListLoader } from "../components/loaders/list-loader";
function Home() {
const notes = useStore((store) => store.notes);
const isCompact = useStore((store) => store.viewMode === "compact");
const refresh = useStore((store) => store.refresh);
const setContext = useStore((store) => store.setContext);
const filteredItems = useSearch(
"notes",
async (query, sortOptions) => {
if (useStore.getState().context) return;
return await db.lookup.notesWithHighlighting(
query,
db.notes.all,
sortOptions
);
},
[notes]
);
useNavigate("home", setContext);
useEffect(() => {
useStore.getState().refresh();
}, []);
if (!notes) return <ListLoader />;
return (
<ListContainer
type="home"
group="home"
compact={isCompact}
refresh={refresh}
items={filteredItems || notes}
isSearching={!!filteredItems}
placeholder={<Placeholder context={filteredItems ? "search" : "notes"} />}
button={{
onClick: () => useEditorStore.getState().newSession()
}}
/>
);
}
export default React.memo(Home, () => true);