From 5f84d7f5b768226582b8a2ba5d06d49e0e774cd5 Mon Sep 17 00:00:00 2001 From: anuveyatsu Date: Fri, 19 Jun 2020 17:05:55 +0600 Subject: [PATCH] [search][s]: implement 'Form' component that merges 'Input' and 'Sort' components and fixes 'Sort' functionality. --- components/search/Form.tsx | 62 +++++++++++++++++++++++++++++++++++++ components/search/Input.tsx | 40 ------------------------ components/search/Sort.tsx | 14 --------- pages/search.tsx | 6 ++-- 4 files changed, 64 insertions(+), 58 deletions(-) create mode 100644 components/search/Form.tsx delete mode 100644 components/search/Input.tsx delete mode 100644 components/search/Sort.tsx diff --git a/components/search/Form.tsx b/components/search/Form.tsx new file mode 100644 index 00000000..4d71b26d --- /dev/null +++ b/components/search/Form.tsx @@ -0,0 +1,62 @@ +import { useState } from 'react'; +import { useRouter } from 'next/router'; + +export default function Form() { + const router = useRouter(); + const [q, setQ] = useState(router.query.q); + const [sort, setSort] = useState(router.query.sort); + + const handleChange = (event) => { + if (event.target.name === 'q') { + setQ(event.target.value); + } else if (event.target.name === 'sort') { + setSort(event.target.value); + } + }; + + const handleSubmit = (event) => { + event.preventDefault(); + router.push({ + pathname: '/search', + query: { q, sort }, + }); + }; + + return ( +
+
+ + +
+
+ + +
+
+ ); +} diff --git a/components/search/Input.tsx b/components/search/Input.tsx deleted file mode 100644 index c618ca97..00000000 --- a/components/search/Input.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { useState } from 'react'; -import { useRouter } from 'next/router'; -import Link from 'next/link'; - -export default function Input() { - const router = useRouter(); - const [q, setQ] = useState(router.query.q); - - const handleChange = (event) => { - setQ(event.target.value); - }; - - const handleSubmit = (event) => { - event.preventDefault(); - router.push({ - pathname: '/search', - query: { q }, - }); - }; - - return ( -
- - -
- ); -} diff --git a/components/search/Sort.tsx b/components/search/Sort.tsx deleted file mode 100644 index d09e476c..00000000 --- a/components/search/Sort.tsx +++ /dev/null @@ -1,14 +0,0 @@ -export default function Sort() { - return ( -
- - -
- ); -} diff --git a/pages/search.tsx b/pages/search.tsx index 14f31e1c..f6d35a57 100644 --- a/pages/search.tsx +++ b/pages/search.tsx @@ -4,9 +4,8 @@ import config from '../config'; import utils from '../utils'; import Head from 'next/head'; import Nav from '../components/home/Nav'; -import Input from '../components/search/Input'; +import Form from '../components/search/Form'; import Total from '../components/search/Total'; -import Sort from '../components/search/Sort'; import List, { DEFAULT_SEARCH_QUERY } from '../components/search/List'; import { initializeApollo } from '../lib/apolloClient'; @@ -19,9 +18,8 @@ function Search({ variables }) {