Showing
1 changed file
with
58 additions
and
38 deletions
| 1 | -import React, { useRef } from 'react'; | 1 | +import React, { useRef, useState } from 'react'; |
| 2 | -import { Card } from '@mantine/core'; | 2 | +import { Card, TextInput } from '@mantine/core'; |
| 3 | +import { useHistory } from 'react-router-dom'; | ||
| 3 | import styled from 'styled-components'; | 4 | import styled from 'styled-components'; |
| 4 | import Button from './common/Button'; | 5 | import Button from './common/Button'; |
| 5 | -import Input from './common/Input'; | ||
| 6 | 6 | ||
| 7 | const Background = styled.div``; | 7 | const Background = styled.div``; |
| 8 | 8 | ||
| ... | @@ -34,13 +34,13 @@ const CloseWrap = styled.div` | ... | @@ -34,13 +34,13 @@ const CloseWrap = styled.div` |
| 34 | 34 | ||
| 35 | const StandardWrap = styled.div` | 35 | const StandardWrap = styled.div` |
| 36 | position: absolute; | 36 | position: absolute; |
| 37 | - width: 50px; | 37 | + width: 250px; |
| 38 | top: 15px; | 38 | top: 15px; |
| 39 | left: 30%; | 39 | left: 30%; |
| 40 | `; | 40 | `; |
| 41 | 41 | ||
| 42 | const AdvancedWrap = styled.div` | 42 | const AdvancedWrap = styled.div` |
| 43 | - width: 50px; | 43 | + width: 250px; |
| 44 | position: absolute; | 44 | position: absolute; |
| 45 | top: 75px; | 45 | top: 75px; |
| 46 | left: 30%; | 46 | left: 30%; |
| ... | @@ -57,6 +57,11 @@ const TextWrap = styled.div` | ... | @@ -57,6 +57,11 @@ const TextWrap = styled.div` |
| 57 | `; | 57 | `; |
| 58 | 58 | ||
| 59 | const Modal = ({ showModal, setShowModal }) => { | 59 | const Modal = ({ showModal, setShowModal }) => { |
| 60 | + const [query, setQuery] = useState(''); | ||
| 61 | + const [keywordQuery, setKeywordQuery] = useState(''); | ||
| 62 | + const [writerQuery, setWriterQuery] = useState(''); | ||
| 63 | + const [dateQuery, setDateQuery] = useState(''); | ||
| 64 | + const history = useHistory(); | ||
| 60 | const modalRef = useRef(); | 65 | const modalRef = useRef(); |
| 61 | const closeModal = e => { | 66 | const closeModal = e => { |
| 62 | if (modalRef.current === e.target) { | 67 | if (modalRef.current === e.target) { |
| ... | @@ -75,47 +80,62 @@ const Modal = ({ showModal, setShowModal }) => { | ... | @@ -75,47 +80,62 @@ const Modal = ({ showModal, setShowModal }) => { |
| 75 | 기본검색 | 80 | 기본검색 |
| 76 | </TextWrap> | 81 | </TextWrap> |
| 77 | <StandardWrap> | 82 | <StandardWrap> |
| 78 | - <Input | 83 | + <TextInput |
| 79 | - float="left" | 84 | + inputStyle={{ |
| 80 | - color="blue" | 85 | + marginBottom: 18, |
| 81 | - width="350px" | 86 | + fontSize: 15, |
| 82 | - height="40px" | 87 | + }} |
| 83 | - paddingsize="3px" | 88 | + placeholder="내용을 입력해 주세요." |
| 84 | - fontsize="15px" | 89 | + type="text" |
| 90 | + value={decodeURIComponent(query)} | ||
| 91 | + onChange={e => setQuery(e.target.value)} | ||
| 92 | + onKeyPress={e => { | ||
| 93 | + if (e.key === 'Enter') { | ||
| 94 | + if (query === '') { | ||
| 95 | + alert('검색어를 입력 해 주세요.'); | ||
| 96 | + return; | ||
| 97 | + } | ||
| 98 | + const params = new URLSearchParams({ query }); | ||
| 99 | + history.push( | ||
| 100 | + `search?${decodeURIComponent(params.toString())}` | ||
| 101 | + ); | ||
| 102 | + } | ||
| 103 | + }} | ||
| 85 | /> | 104 | /> |
| 86 | </StandardWrap> | 105 | </StandardWrap> |
| 87 | <TextWrap top="24%" right="10%" bottom="31%"> | 106 | <TextWrap top="24%" right="10%" bottom="31%"> |
| 88 | 고급검색 | 107 | 고급검색 |
| 89 | </TextWrap> | 108 | </TextWrap> |
| 90 | <AdvancedWrap> | 109 | <AdvancedWrap> |
| 91 | - <Input | 110 | + <TextInput |
| 92 | - float="left" | 111 | + inputStyle={{ |
| 93 | - color="blue" | 112 | + marginBottom: 18, |
| 94 | - width="350px" | 113 | + fontSize: 15, |
| 95 | - height="40px" | 114 | + }} |
| 96 | - paddingsize="3px" | 115 | + placeholder="단어/문장 검색" |
| 97 | - fontsize="15px" | 116 | + type="text" |
| 98 | - placeholder="단어/ 문장검색" | 117 | + value={decodeURIComponent(keywordQuery)} |
| 118 | + onChange={e => setKeywordQuery(e.target.value)} | ||
| 99 | /> | 119 | /> |
| 100 | - <br /> <br /> | 120 | + <TextInput |
| 101 | - <Input | 121 | + inputStyle={{ |
| 102 | - float="left" | 122 | + marginBottom: 18, |
| 103 | - color="blue" | 123 | + fontSize: 15, |
| 104 | - width="350px" | 124 | + }} |
| 105 | - height="40px" | 125 | + placeholder="작성자" |
| 106 | - paddingsize="3px" | 126 | + type="text" |
| 107 | - fontsize="15px" | 127 | + value={decodeURIComponent(writerQuery)} |
| 108 | - placeholder="최초 작성자" | 128 | + onChange={e => setWriterQuery(e.target.value)} |
| 109 | /> | 129 | /> |
| 110 | - <br /> <br /> | 130 | + <TextInput |
| 111 | - <Input | 131 | + inputStyle={{ |
| 112 | - float="left" | 132 | + marginBottom: 18, |
| 113 | - color="blue" | 133 | + fontSize: 15, |
| 114 | - width="350px" | 134 | + }} |
| 115 | - height="40px" | 135 | + placeholder="생성 날짜" |
| 116 | - paddingsize="3px" | 136 | + type="text" |
| 117 | - fontsize="15px" | 137 | + value={decodeURIComponent(dateQuery)} |
| 118 | - placeholder="최종 수정자" | 138 | + onChange={e => setDateQuery(e.target.value)} |
| 119 | /> | 139 | /> |
| 120 | </AdvancedWrap> | 140 | </AdvancedWrap> |
| 121 | </ModalContent> | 141 | </ModalContent> | ... | ... |
-
Please register or login to post a comment