diff --git a/src/shared/ui/assets/css/style-fix.css b/src/shared/ui/assets/css/style-fix.css index d2ba176..5a16696 100644 --- a/src/shared/ui/assets/css/style-fix.css +++ b/src/shared/ui/assets/css/style-fix.css @@ -32,3 +32,7 @@ main { } /* calendar */ +.react-calendar{ + margin: 10% auto; + +} \ No newline at end of file diff --git a/src/shared/ui/calendar/nice-calendar.tsx b/src/shared/ui/calendar/nice-calendar.tsx index da6f8ed..bd1e7a0 100644 --- a/src/shared/ui/calendar/nice-calendar.tsx +++ b/src/shared/ui/calendar/nice-calendar.tsx @@ -3,29 +3,52 @@ import styled from "styled-components"; import { useState } from 'react'; import Calendar from 'react-calendar'; import 'react-calendar/dist/Calendar.css'; +import { useEffect } from 'react'; + +interface NiceCalendarProps { + calendarOpen: boolean; + setNewDate: (date: string) => void; +}; const NiceCalendar = ({ calendarOpen, setNewDate -}: any) => { +}: NiceCalendarProps) => { const [calendarDate, setCalendarDate] = useState(moment().format('YYYY-MM-DD')); - const [isOpen, setIsOpen] = useState(calendarOpen); - + const [isOpen, setIsOpen] = useState(false); const onchangeToDate = (selectedDate: any) => { - setNewDate(selectedDate) + setNewDate(moment(selectedDate).format('YYYY-MM-DD')); setIsOpen(false); }; + useEffect(() => { + console.log(calendarOpen) + setIsOpen(calendarOpen); + }, [calendarOpen]) + return ( <> - - - + { (isOpen) && + <> +
+ + + + + } ); }; +const CalendarWrapper = styled.div` + z-index: 1100; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; +`; export default NiceCalendar; \ No newline at end of file diff --git a/src/shared/ui/filter/filter-calendar.tsx b/src/shared/ui/filter/filter-calendar.tsx index a329a14..7e36c30 100644 --- a/src/shared/ui/filter/filter-calendar.tsx +++ b/src/shared/ui/filter/filter-calendar.tsx @@ -21,9 +21,10 @@ export const FilterCalendar = ({ setEndDate }: FilterCalendarProps) => { const [filterTitle, setFilterTitle] = useState(title || '조회기간'); - const [dateReadOnly, setDateReadyOnly] = useState(true); + const [dateReadOnly, setDateReadyOnly] = useState(false); const [filterDateOptionsBtn, setFilterDateOptionsBtn] = useState(FilterDateOptions.Input); const [calendarOpen, setCalendarOpen] = useState(false); + const [activceCalendar, setActiveCalendar] = useState(); const setFilterDate = (dateOptions: FilterDateOptions) => { if(dateOptions === FilterDateOptions.Today){ @@ -51,15 +52,27 @@ export const FilterCalendar = ({ }; - const onClickToOpenCalendar = () => { + const onClickToOpenCalendar = (key: string) => { if(!dateReadOnly){ setCalendarOpen(true); + setActiveCalendar(key); } else{ setCalendarOpen(false); + setActiveCalendar(''); } }; + const setNewDate = (date: string) => { + if(activceCalendar === 'start'){ + setStartDate(date); + } + else if(activceCalendar === 'end'){ + setEndDate(date); + } + setCalendarOpen(false); + } + useEffect(() => { }, []); @@ -89,6 +102,7 @@ export const FilterCalendar = ({
onClickToOpenCalendar() } + onClick={ () => onClickToOpenCalendar('start') } > ~
onClickToOpenCalendar() } + onClick={ () => onClickToOpenCalendar('end') } >
+ ); }; \ No newline at end of file