fix: spinner eterno al marcar Todos en filtros de tickets
This commit is contained in:
1 parent
0a08fa5192
commit
148d8b2550
1 file changed
+7
-6
@@ -115,6 +115,11 @@ function TicketsContent() {
|
||||
user?.role === "admin" || user?.role === "agent" || user?.role === "supervisor";
|
||||
|
||||
useEffect(() => {
|
||||
// El loading vive aquí (no en los manejadores): así siempre hay un
|
||||
// fetch en curso que lo apaga en .finally(). Poner setLoading(true)
|
||||
// en un onClick sin cambio real de estado dejaba spinner eterno.
|
||||
// Diferido como el efecto de URL para no disparar cascading renders.
|
||||
queueMicrotask(() => setLoading(true));
|
||||
getTickets({
|
||||
status: statusFilters.length > 0 ? statusFilters : undefined,
|
||||
priority: priorityFilter || undefined,
|
||||
@@ -153,13 +158,11 @@ function TicketsContent() {
|
||||
return next;
|
||||
});
|
||||
setPage(1);
|
||||
setLoading(true);
|
||||
};
|
||||
|
||||
const selectAllStatuses = () => {
|
||||
setStatusFilters([]);
|
||||
setPage(1);
|
||||
setLoading(true);
|
||||
};
|
||||
|
||||
const statusButtonLabel =
|
||||
@@ -176,7 +179,6 @@ function TicketsContent() {
|
||||
setView("all");
|
||||
setSearch("");
|
||||
setPage(1);
|
||||
setLoading(true);
|
||||
router.replace("/tickets");
|
||||
};
|
||||
|
||||
@@ -240,7 +242,6 @@ function TicketsContent() {
|
||||
onClick={() => {
|
||||
setView(v);
|
||||
setPage(1);
|
||||
setLoading(true);
|
||||
}}
|
||||
>
|
||||
{label}
|
||||
@@ -314,7 +315,7 @@ function TicketsContent() {
|
||||
className="form-select"
|
||||
style={{ width: "auto" }}
|
||||
value={priorityFilter}
|
||||
onChange={(e) => { setPriorityFilter(e.target.value); setPage(1); setLoading(true); }}
|
||||
onChange={(e) => { setPriorityFilter(e.target.value); setPage(1); }}
|
||||
>
|
||||
<option value="">Todas las prioridades</option>
|
||||
<option value="Low">Baja</option>
|
||||
@@ -331,7 +332,7 @@ function TicketsContent() {
|
||||
style={{ paddingLeft: "2rem" }}
|
||||
placeholder="Buscar tickets..."
|
||||
value={search}
|
||||
onChange={(e) => { setSearch(e.target.value); setPage(1); setLoading(true); }}
|
||||
onChange={(e) => { setSearch(e.target.value); setPage(1); }}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user