Remove custom date range
This commit is contained in:
@@ -566,8 +566,6 @@ const SkeletonTable = () => (
|
||||
|
||||
const SalesChart = ({
|
||||
timeRange = "last30days",
|
||||
startDate,
|
||||
endDate,
|
||||
title = "Sales Overview",
|
||||
description = "Track your sales performance over time",
|
||||
}) => {
|
||||
@@ -584,10 +582,6 @@ const SalesChart = ({
|
||||
showPrevious: false,
|
||||
});
|
||||
const [summaryStats, setSummaryStats] = useState({});
|
||||
const [customDateRange, setCustomDateRange] = useState({
|
||||
startDate: formatDateForInput(startDate) || "",
|
||||
endDate: formatDateForInput(endDate) || "",
|
||||
});
|
||||
|
||||
// Fetch data function
|
||||
const fetchData = useCallback(async (params) => {
|
||||
@@ -632,62 +626,15 @@ const SalesChart = ({
|
||||
const handleTimeRangeChange = useCallback(
|
||||
(value) => {
|
||||
setSelectedTimeRange(value);
|
||||
|
||||
const params =
|
||||
value === "custom"
|
||||
? {
|
||||
startDate: parseDateFromInput(
|
||||
customDateRange.startDate
|
||||
)?.toISOString(),
|
||||
endDate: parseDateFromInput(
|
||||
customDateRange.endDate
|
||||
)?.toISOString(),
|
||||
}
|
||||
: { timeRange: value };
|
||||
|
||||
fetchData(params);
|
||||
fetchData({ timeRange: value });
|
||||
},
|
||||
[customDateRange, 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]
|
||||
[fetchData]
|
||||
);
|
||||
|
||||
// Initial load effect
|
||||
useEffect(() => {
|
||||
const params =
|
||||
selectedTimeRange === "custom"
|
||||
? {
|
||||
startDate: parseDateFromInput(
|
||||
customDateRange.startDate
|
||||
)?.toISOString(),
|
||||
endDate: parseDateFromInput(customDateRange.endDate)?.toISOString(),
|
||||
}
|
||||
: { timeRange: selectedTimeRange };
|
||||
|
||||
fetchData(params);
|
||||
}, [selectedTimeRange, customDateRange, fetchData]);
|
||||
fetchData({ timeRange: selectedTimeRange });
|
||||
}, [selectedTimeRange, fetchData]);
|
||||
|
||||
// Auto-refresh effect for 'today' view
|
||||
useEffect(() => {
|
||||
@@ -745,41 +692,11 @@ const SalesChart = ({
|
||||
{range.label}
|
||||
</SelectItem>
|
||||
))}
|
||||
<SelectItem value="custom">Custom Range</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</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 */}
|
||||
{loading ? <SkeletonStats /> : <SummaryStats stats={summaryStats} />}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user