Wait for saved filter persistence before reporting success
This commit is contained in:
+13
-14
@@ -593,9 +593,6 @@ export const AppProvider = ({ children }) => {
|
||||
}
|
||||
}, [tenders]);
|
||||
|
||||
useEffect(() => {
|
||||
if (veriSenkron) ilkYazmaDegil('saved_filters', savedFilters);
|
||||
}, [savedFilters, veriSenkron]);
|
||||
|
||||
// (Sahte "online kullanıcı" rastgele sayacı kaldırıldı — canlı istatistikler
|
||||
// gerçek /api/stats verisinden gelir.)
|
||||
@@ -677,18 +674,20 @@ export const AppProvider = ({ children }) => {
|
||||
return mutateTender(tenderId, {kanbanStatus:newStatus,atananPersonel:assignedUser ?? t?.atananPersonel ?? null,takipte:true});
|
||||
};
|
||||
|
||||
const addSavedFilter = (newFilter) => {
|
||||
const filterObj = {
|
||||
id: 'sf-' + Date.now(),
|
||||
user: userProfile.username,
|
||||
...newFilter
|
||||
};
|
||||
setSavedFilters(prev => [filterObj, ...prev]);
|
||||
};
|
||||
|
||||
const deleteSavedFilter = (id) => {
|
||||
setSavedFilters(prev => prev.filter(f => f.id !== id));
|
||||
const filterSaveLock=useRef(false);
|
||||
const persistSavedFilters=async next=>{
|
||||
if(!authUser||!veriSenkron){setSaveError('Hesap verileri yüklenmeden filtre kaydedilemez.');return false;}
|
||||
if(filterSaveLock.current){setSaveError('Önceki filtre kaydı sürüyor.');return false;}
|
||||
const session=getToken();filterSaveLock.current=true;setSavingCount(n=>n+1);setSaveError(null);
|
||||
try{
|
||||
await setUserData('saved_filters',next);
|
||||
if(getToken()!==session)return false;
|
||||
setSavedFilters(next);return true;
|
||||
}catch(error){if(getToken()===session)setSaveError(error.message);return false;}
|
||||
finally{filterSaveLock.current=false;setSavingCount(n=>n-1);}
|
||||
};
|
||||
const addSavedFilter = newFilter => persistSavedFilters([{...newFilter,id:'sf-'+crypto.randomUUID(),user:userProfile.username},...savedFilters]);
|
||||
const deleteSavedFilter = id => persistSavedFilters(savedFilters.filter(filter=>filter.id!==id));
|
||||
|
||||
const clearAllFilters = () => {
|
||||
setSearchQuery('');
|
||||
|
||||
Reference in New Issue
Block a user