This commit is contained in:
Kakabay 2023-03-13 18:32:01 +05:00
parent 01fef99fe7
commit 2fbc0c0875
2 changed files with 30 additions and 22 deletions

View File

@ -14,8 +14,8 @@ const Calendar = () => {
const [value, onChange] = useState(new Date()); const [value, onChange] = useState(new Date());
const [data, setData] = useState<any>(); const [data, setData] = useState<any>();
const [popup, setPopup] = useState<boolean>(false);
const ref = useRef<boolean>(false); const ref = useRef<boolean>(false);
const popupRef = useRef<HTMLDivElement>(null);
const valueMemo = useMemo(() => ({ value, onChange }), [value, onChange]); const valueMemo = useMemo(() => ({ value, onChange }), [value, onChange]);
const dataMemo = useMemo(() => ({ data, setData }), [data, setData]); const dataMemo = useMemo(() => ({ data, setData }), [data, setData]);
@ -35,15 +35,17 @@ const Calendar = () => {
if (!ref.current) { if (!ref.current) {
ref.current = true; ref.current = true;
console.log(dataMemo.data); console.log(dataMemo.data);
setPopup(false);
return; return;
} }
console.log(dataMemo.data);
api.get(dataMemo.data, dataMemo.setData); api.get(dataMemo.data, dataMemo.setData);
setPopup(true);
}, [value]); }, [value]);
return ( return (
<div className="calendar"> <div className="calendar">
<div className="calendar-popup" ref={popupRef}> {popup ? (
<div className={popup ? 'calendar-popup calendar-popup-active' : 'calendar-popup'}>
{data ? ( {data ? (
// data.map((el: any, index: number) => ( // data.map((el: any, index: number) => (
// <div className="calendar-popup-item" key={uuiv4()}> // <div className="calendar-popup-item" key={uuiv4()}>
@ -63,6 +65,7 @@ const Calendar = () => {
<Loader /> <Loader />
)} )}
</div> </div>
) : null}
<LazyLoadComponent useIntersectionObserver> <LazyLoadComponent useIntersectionObserver>
<ReactCalendar value={value} onChange={valueMemo.onChange} /> <ReactCalendar value={value} onChange={valueMemo.onChange} />
</LazyLoadComponent> </LazyLoadComponent>

View File

@ -110,7 +110,7 @@
.calendar-popup { .calendar-popup {
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; bottom: -20%;
background: $main; background: $main;
padding: 1.6rem; padding: 1.6rem;
color: $white; color: $white;
@ -119,6 +119,7 @@
flex-direction: column; flex-direction: column;
gap: 0.8rem; gap: 0.8rem;
border-radius: 0.8rem; border-radius: 0.8rem;
display: none;
.calendar-popup-item { .calendar-popup-item {
font-weight: 400; font-weight: 400;
@ -126,6 +127,10 @@
} }
} }
.calendar-popup-active {
display: block;
}
@media (max-width: 1024px) { @media (max-width: 1024px) {
.calendar { .calendar {
display: none; display: none;