diff --git a/components/BookInfoInput.tsx b/components/BookInfoInput.tsx index befb9fe..394e5eb 100644 --- a/components/BookInfoInput.tsx +++ b/components/BookInfoInput.tsx @@ -58,9 +58,8 @@ function BookInfoInput({ handleSubmit }: { handleSubmit: (info: { frontmatter: F function handleLanguageChange(lang: string | null) { setState(s => { if (!lang) { - delete s.lang; - delete s.language; - return s + const { lang, language, ...rest } = s; + return rest; } return { ...s, @@ -80,8 +79,6 @@ function BookInfoInput({ handleSubmit }: { handleSubmit: (info: { frontmatter: F cover, }); } - console.log(state); - console.log("will render"); return
diff --git a/components/LanguageSelect.tsx b/components/LanguageSelect.tsx index 56146da..9a12d9b 100644 --- a/components/LanguageSelect.tsx +++ b/components/LanguageSelect.tsx @@ -13,13 +13,14 @@ const languageOptions = [ ]; function LanguageSelect({ value, onChange }: { - value: string | null, + value: string | undefined, onChange: (language: string | null) => void, }) { const [showingOther, setShowingOther] = useState(false); function handleChange(o: { value: string, label: string }) { if (!o) { onChange(null); + if (showingOther) setShowingOther(false); } else if (o.value === "other") { setShowingOther(true); onChange(null); @@ -34,7 +35,7 @@ function LanguageSelect({ value, onChange }: { className="basic-single" classNamePrefix="select" isClearable={true} - value={typeof value === "number" ? null : languageOptions.find(o => value === o.value)} + value={languageOptions.find(o => value === o.value)} isSearchable // @ts-ignore onChange={handleChange} diff --git a/pages/index.tsx b/pages/index.tsx index 63959cb..37d6caa 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -20,6 +20,14 @@ const Home: NextPage = () => { } function handleSubmit(info: { frontmatter: Frontmatter, cover: File | undefined }) { const content = mdRef.current.value as string; + if (!content) { + alert("Please enter some content for the book"); + return; + } + if (!info.frontmatter.title) { + alert("Please enter a title for the book"); + return; + } bookRequest({ ...info, content,