From de6af8c6b556f027a95139d7abd2db09a86558d1 Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Fri, 13 Oct 2023 21:13:12 +0100 Subject: [PATCH] Stash --- src/App.tsx | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index fb29705..6ec9c01 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import {ReactNode, useCallback, useState} from "react"; +import {ChangeEvent, ReactNode, useCallback, useState} from "react"; import {FixedSizeList as List} from "react-window"; import Select, {createFilter, MenuListProps} from "react-select"; import * as R from 'ramda'; @@ -108,31 +108,30 @@ export function OmnisearchSelect({ setSelected }: { setSelected: (value: Option) }, }); - const onChange = useCallback((value: Option) => { - setSelected(value); - navigator.clipboard.writeText(`[[${value.label}]]`) + const [filter, setFilter] = useState('[]'); + + const onChange = useCallback((e: ChangeEvent) => { + setFilter(e.target.value); }, []); - return { - const response = await fetch(`/search?q=${encodeURIComponent(inputValue)}`) + const { data: options } = useQuery({ + queryKey: ['obsidian-omnisearch', filter], + initialData: [], + queryFn: async () => { + const response = await fetch(`/search?q=${filter}`) const fullData: ResultNoteApi[] = await response.json(); - return fullData.map(item => ({ - value: item.path, - label: item.basename, - data: metadata!.find(md => md.value == item.path)!.data - } satisfies Option)) - }} - onChange={onChange as any} - components={{MenuList}} - isClearable={true} - filterOption={(option, inputValue) => { - console.log(option, inputValue); - return true; - }} - /> + return fullData; + } + }); + + return (<> + + + {options.map(option => ( +
{option.basename}
+ ))} + ); } export function App() {