update notification

This commit is contained in:
Raja Oktafrianto
2025-05-14 20:04:30 +07:00
parent a0bc7d13a1
commit 1d461863a9
3 changed files with 171 additions and 31 deletions

View File

@ -22,8 +22,8 @@ const ListToolBar = () => {
useEffect(() => {
const today = new Date();
const threeMonthsAgo = getOneMonthsAgo();
setDateRange({ from: formatDate(threeMonthsAgo), to: formatDate(today) });
const formatted = formatDate(today);
setDateRange({ from: formatted, to: formatted });
}, []);
useEffect(() => {
@ -34,26 +34,25 @@ const ListToolBar = () => {
return () => clearTimeout(timer);
}, [searchValue, table]);
const handleFilterByDate = useCallback(() => {
try {
table.getColumn('created_at')?.setFilterValue(dateRange);
} catch (error) {
toast.error('Error applying date filter');
console.error('Error applying date filter:', error);
}
}, [dateRange, table]);
useEffect(() => {
if (dateRange.from && dateRange.to) {
handleFilterByDate();
const today = new Date();
const formatted = formatDate(today);
const initialDateRange = { from: formatted, to: formatted };
setDateRange(initialDateRange);
try {
table.getColumn('created_at')?.setFilterValue(initialDateRange);
} catch (error) {
toast.error('Error applying initial date filter');
console.error('Initial date filter error:', error);
}
}, [dateRange, handleFilterByDate]);
}, []);
const handleClearAllFilters = () => {
const today = new Date();
const oneMonthAgo = getOneMonthsAgo();
const resetDateRange = {
from: formatDate(oneMonthAgo),
from: formatDate(today),
to: formatDate(today)
};
@ -69,21 +68,18 @@ const ListToolBar = () => {
}, 0);
};
const handleRefresh = () => {
const today = new Date();
const threeMonthsAgo = getOneMonthsAgo();
const resetDateRange = {
from: formatDate(threeMonthsAgo),
to: formatDate(today)
useEffect(() => {
const checkNewDay = () => {
const now = new Date();
const formattedNow = formatDate(now);
if (formattedNow !== dateRange.from || formattedNow !== dateRange.to) {
setDateRange({ from: formattedNow, to: formattedNow });
}
};
setSearchValue('');
setDateRange(resetDateRange);
table.setColumnFilters([{ id: 'created_at', value: resetDateRange }]);
table.setPageIndex(0);
reload();
};
const interval = setInterval(checkNewDay, 60 * 1000);
return () => clearInterval(interval);
}, [dateRange]);
return (
<div className="card-header flex-wrap gap-2 border-b-0 px-5">