diff --git a/package.json b/package.json
index 57e1c8e..0e140aa 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
"lint": "next lint"
},
"dependencies": {
- "@clickhouse/click-ui": "^0.0.168",
+ "@clickhouse/click-ui": "^0.0.180",
"@clickhouse/client": "^0.2.1",
"@clickhouse/client-web": "^0.2.1",
"@gingerwizard/react-daterange-picker": "github:gingerwizard/react-daterange-picker",
diff --git a/src/components/DatePicker.jsx b/src/components/DatePicker.jsx
index ee8ae1a..c2a0c32 100644
--- a/src/components/DatePicker.jsx
+++ b/src/components/DatePicker.jsx
@@ -1,15 +1,12 @@
'use client';
-import DateRangePicker from '@gingerwizard/react-daterange-picker';
-import '@gingerwizard/react-daterange-picker/dist/DateRangePicker.css';
-import 'react-calendar/dist/Calendar.css';
-import './datepicker.css';
-import Image from 'next/image';
+
+import { DatePicker as ClickHouseDatePicker } from '@clickhouse/click-ui';
import { usePathname, useRouter, useSearchParams } from 'next/navigation';
-import { Suspense } from 'react';
-import { parseDate} from '@/utils/utils';
+import { useState, useEffect } from 'react';
-function ClearLogo(clearable) {
+function ClearLogo({ clearable, onClick }) {
return (
+
+
);
}
@@ -37,48 +35,54 @@ export default function DatePicker({ dates }) {
const searchParams = useSearchParams();
const pathname = usePathname();
const current = new URLSearchParams(searchParams.toString());
- const clearable = current.get('min_date') || current.get('max_date');
+ const [isLoading, setIsLoading] = useState(true);
+ const [minDate, setMinDate] = useState(current.get('min_date'));
+ const [maxDate, setMaxDate] = useState(current.get('max_date'));
- const onChange = (min_date, max_date) => {
- if (min_date === undefined && max_date === undefined) {
- current.delete('min_date');
- current.delete('max_date');
- router.push(`${pathname}?${current.toString()}`, { scroll: false });
- }
- else if (parseDate(min_date, undefined) && parseDate(max_date, undefined)) {
- min_date ? current.set('min_date', min_date) : current.delete('min_date');
- max_date ? current.set('max_date', max_date) : current.delete('max_date');
- router.push(`${pathname}?${current.toString()}`, { scroll: false });
+ useEffect(() => {
+ if (dates) {
+ if (!current.get('min_date')) {
+ setMinDate(dates[0]);
+ }
+ if (!current.get('max_date')) {
+ setMaxDate(dates[1]);
+ }
}
-
+ setIsLoading(false);
+ }, []);
+
+ const clearDates = () => {
+ console.log('clearing dates');
+ current.delete('min_date');
+ current.delete('max_date');
+ router.push(`${pathname}?${current.toString()}`, { scroll: false });
+ };
+
+ const formatDate = (dateString) => {
+ const date = new Date(decodeURIComponent(dateString));
+ return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
+ };
+
+ const onSelectFromDates = (date) => {
+ const formattedDate = formatDate(date);
+ current.set('min_date', formattedDate)
+ router.push(`${pathname}?${current.toString()}`, { scroll: false });
};
- const onSelectDates = (values) => {
- values
- ? onChange(
- `${values[0].getFullYear()}-${(values[0].getMonth() + 1).toString().padStart(2, '0')}-${values[0].getDate().toString().padStart(2, '0')}`,
- `${values[1].getFullYear()}-${(values[1].getMonth() + 1).toString().padStart(2, '0')}-${values[1].getDate().toString().padStart(2, '0')}`
- )
- : onChange();
+ const onSelectToDates = (date) => {
+ const formattedDate = formatDate(date);
+ current.set('max_date', formattedDate)
+ router.push(`${pathname}?${current.toString()}`, { scroll: false });
};
+
return (
-
-
-
- }
- value={dates}
- clearIcon={ClearLogo(clearable)}
- />
-
-
+ isLoading ? :
+
);
}