fix(orders): список не пустеет при возврате — кэш отдаёт обёртку {data,error}, состояние не стирается
This commit is contained in:
parent
52dc913fa7
commit
73b9512f15
|
|
@ -52,7 +52,7 @@ export const useOrderGroups = ({
|
|||
}
|
||||
setLoadError("");
|
||||
|
||||
if (!enabled) { setOrderGroups([]); setIsLoading(false); return; }
|
||||
if (!enabled) { setIsLoading(false); return; }
|
||||
|
||||
// Single-group mode: load only the requested group (avoids pulling all
|
||||
// 430 groups with their full source_orders JSON — 2.6MB — for a detail view).
|
||||
|
|
@ -80,12 +80,17 @@ export const useOrderGroups = ({
|
|||
|
||||
if (groupsResult.error) {
|
||||
setLoadError(groupsResult.error?.message || "Не удалось загрузить группы доставки");
|
||||
setOrderGroups([]);
|
||||
// Список не стираем — показываем прежние данные, а не пустой экран.
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const payload = groupsResult.data || {};
|
||||
// Неожиданная форма ответа — тоже не стираем список.
|
||||
if (!Array.isArray(payload.data)) {
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
setOrderGroups(payload.data || []);
|
||||
setTotalGroups(payload.total ?? (payload.data?.length || 0));
|
||||
setIsLoading(false);
|
||||
|
|
@ -110,7 +115,7 @@ export const useOrderGroups = ({
|
|||
}
|
||||
if (cancelled) return;
|
||||
};
|
||||
if (enabled) doLoad(); else { setOrderGroups([]); setIsLoading(false); }
|
||||
if (enabled) doLoad(); else { setIsLoading(false); }
|
||||
return () => { cancelled = true; };
|
||||
}, [loadLiveData, enabled]);
|
||||
|
||||
|
|
|
|||
|
|
@ -616,7 +616,7 @@ export const fetchOrderGroups = async ({
|
|||
|
||||
if (!forceRefresh) {
|
||||
const cached = orderGroupsCache.get(cacheKey);
|
||||
if (cached) return cached;
|
||||
if (cached) return { data: cached, error: null };
|
||||
}
|
||||
|
||||
return safeSupabaseCall(async () => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue