Remove custom date range
This commit is contained in:
@@ -566,8 +566,6 @@ const SkeletonTable = () => (
|
|||||||
|
|
||||||
const SalesChart = ({
|
const SalesChart = ({
|
||||||
timeRange = "last30days",
|
timeRange = "last30days",
|
||||||
startDate,
|
|
||||||
endDate,
|
|
||||||
title = "Sales Overview",
|
title = "Sales Overview",
|
||||||
description = "Track your sales performance over time",
|
description = "Track your sales performance over time",
|
||||||
}) => {
|
}) => {
|
||||||
@@ -584,10 +582,6 @@ const SalesChart = ({
|
|||||||
showPrevious: false,
|
showPrevious: false,
|
||||||
});
|
});
|
||||||
const [summaryStats, setSummaryStats] = useState({});
|
const [summaryStats, setSummaryStats] = useState({});
|
||||||
const [customDateRange, setCustomDateRange] = useState({
|
|
||||||
startDate: formatDateForInput(startDate) || "",
|
|
||||||
endDate: formatDateForInput(endDate) || "",
|
|
||||||
});
|
|
||||||
|
|
||||||
// Fetch data function
|
// Fetch data function
|
||||||
const fetchData = useCallback(async (params) => {
|
const fetchData = useCallback(async (params) => {
|
||||||
@@ -632,62 +626,15 @@ const SalesChart = ({
|
|||||||
const handleTimeRangeChange = useCallback(
|
const handleTimeRangeChange = useCallback(
|
||||||
(value) => {
|
(value) => {
|
||||||
setSelectedTimeRange(value);
|
setSelectedTimeRange(value);
|
||||||
|
fetchData({ timeRange: value });
|
||||||
const params =
|
|
||||||
value === "custom"
|
|
||||||
? {
|
|
||||||
startDate: parseDateFromInput(
|
|
||||||
customDateRange.startDate
|
|
||||||
)?.toISOString(),
|
|
||||||
endDate: parseDateFromInput(
|
|
||||||
customDateRange.endDate
|
|
||||||
)?.toISOString(),
|
|
||||||
}
|
|
||||||
: { timeRange: value };
|
|
||||||
|
|
||||||
fetchData(params);
|
|
||||||
},
|
},
|
||||||
[customDateRange, fetchData]
|
[fetchData]
|
||||||
);
|
|
||||||
|
|
||||||
// Handle custom date change
|
|
||||||
const handleCustomDateChange = useCallback(
|
|
||||||
(field, value) => {
|
|
||||||
setCustomDateRange((prev) => ({
|
|
||||||
...prev,
|
|
||||||
[field]: value,
|
|
||||||
}));
|
|
||||||
|
|
||||||
if (
|
|
||||||
selectedTimeRange === "custom" &&
|
|
||||||
customDateRange.startDate &&
|
|
||||||
customDateRange.endDate
|
|
||||||
) {
|
|
||||||
fetchData({
|
|
||||||
startDate: parseDateFromInput(
|
|
||||||
customDateRange.startDate
|
|
||||||
)?.toISOString(),
|
|
||||||
endDate: parseDateFromInput(customDateRange.endDate)?.toISOString(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[selectedTimeRange, customDateRange, fetchData]
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Initial load effect
|
// Initial load effect
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const params =
|
fetchData({ timeRange: selectedTimeRange });
|
||||||
selectedTimeRange === "custom"
|
}, [selectedTimeRange, fetchData]);
|
||||||
? {
|
|
||||||
startDate: parseDateFromInput(
|
|
||||||
customDateRange.startDate
|
|
||||||
)?.toISOString(),
|
|
||||||
endDate: parseDateFromInput(customDateRange.endDate)?.toISOString(),
|
|
||||||
}
|
|
||||||
: { timeRange: selectedTimeRange };
|
|
||||||
|
|
||||||
fetchData(params);
|
|
||||||
}, [selectedTimeRange, customDateRange, fetchData]);
|
|
||||||
|
|
||||||
// Auto-refresh effect for 'today' view
|
// Auto-refresh effect for 'today' view
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -745,41 +692,11 @@ const SalesChart = ({
|
|||||||
{range.label}
|
{range.label}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
))}
|
))}
|
||||||
<SelectItem value="custom">Custom Range</SelectItem>
|
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{selectedTimeRange === "custom" && (
|
|
||||||
<div className="grid grid-cols-2 gap-4 max-w-md">
|
|
||||||
<div className="space-y-2">
|
|
||||||
<Label htmlFor="startDate">Start Date</Label>
|
|
||||||
<Input
|
|
||||||
id="startDate"
|
|
||||||
type="datetime-local"
|
|
||||||
value={customDateRange.startDate}
|
|
||||||
onChange={(e) =>
|
|
||||||
handleCustomDateChange("startDate", e.target.value)
|
|
||||||
}
|
|
||||||
className="h-9"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="space-y-2">
|
|
||||||
<Label htmlFor="endDate">End Date</Label>
|
|
||||||
<Input
|
|
||||||
id="endDate"
|
|
||||||
type="datetime-local"
|
|
||||||
value={customDateRange.endDate}
|
|
||||||
onChange={(e) =>
|
|
||||||
handleCustomDateChange("endDate", e.target.value)
|
|
||||||
}
|
|
||||||
className="h-9"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Show either skeletons or actual stats */}
|
{/* Show either skeletons or actual stats */}
|
||||||
{loading ? <SkeletonStats /> : <SummaryStats stats={summaryStats} />}
|
{loading ? <SkeletonStats /> : <SummaryStats stats={summaryStats} />}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user