import { useEffect, useState } from 'react' import { Helmet } from 'react-helmet-async' import PrefetchLink from '@/components/PrefetchLink' import FormField from '@/components/common/FormField' import PageTitle from '@/components/common/PageTitle' import MainArea from '@/components/layout/MainArea' import { SITE_TITLE } from '@/config' import { apiGet } from '@/lib/api' import { dateString, inputClass } from '@/lib/utils' import type { FormEvent , FC } from 'react' import type { WikiPage } from '@/types' const WikiSearchPage: FC = () => { const [title, setTitle] = useState ('') const [text, setText] = useState ('') const [results, setResults] = useState ([]) const search = async () => { setResults (await apiGet ('/wiki', { params: { title } })) } const handleSearch = (ev: FormEvent) => { ev.preventDefault () search () } useEffect (() => { void (async () => { setResults (await apiGet ('/wiki', { params: { title: '' } })) }) () }, []) return ( Wiki | {SITE_TITLE}
Wiki
{/* タイトル */} {({ invalid }) => ( setTitle (e.target.value)} className={inputClass (invalid)}/>)} {/* 内容 */} {({ invalid }) => ( setText (e.target.value)} className={inputClass (invalid)}/>)} {/* 検索 */}
{results.map (page => ( ))}
タイトル 最終更新
{page.title} {page.deprecatedAt != null && (廃止)} {dateString (page.updatedAt)}
) } export default WikiSearchPage