import { useEffect, useState } from 'react'; import NoResult from './notFound'; import { Command } from 'cmdk'; import { PageMeta, useEditor } from '@/providers/editor-provider'; function renderPages(resultsPageMeta: PageMeta[]) { return resultsPageMeta.map(resultPageMeta => { return {resultPageMeta.title}; }); } const SearchResult = (props: { query: string }) => { const { search, getPageMeta, openPage } = useEditor(); const [results, setResults] = useState(new Map()); const query = props.query; useEffect(() => { setResults(search(query)); //Save the Map obtained from the search as state }, [query]); const resultsPageMeta: PageMeta[] = []; results.forEach(pageId => { const pageMeta = getPageMeta(pageId); if (pageMeta) { //Get pageMeta just like { title , id , text...} resultsPageMeta.push(pageMeta); } }); return ( <> {resultsPageMeta.length ? ( renderPages(resultsPageMeta) ) : ( )} ); }; export default SearchResult;