Skip to content

Commit b28b2fa

Browse files
committed
refactor: use functional setState for updating connectors in useSearchSourceConnectors hook
1 parent 25b068f commit b28b2fa

1 file changed

Lines changed: 25 additions & 24 deletions

File tree

surfsense_web/hooks/use-search-source-connectors.ts

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,11 @@ export const useSearchSourceConnectors = (lazy: boolean = false, searchSpaceId?:
185185
}
186186

187187
const newConnector = await response.json();
188-
const updatedConnectors = [...connectors, newConnector];
189-
setConnectors(updatedConnectors);
190-
updateConnectorSourceItems(updatedConnectors);
188+
setConnectors(prev => {
189+
const updated = [...prev, newConnector];
190+
updateConnectorSourceItems(updated);
191+
return updated;
192+
});
191193
return newConnector;
192194
} catch (err) {
193195
console.error("Error creating search source connector:", err);
@@ -219,11 +221,11 @@ export const useSearchSourceConnectors = (lazy: boolean = false, searchSpaceId?:
219221
}
220222

221223
const updatedConnector = await response.json();
222-
const updatedConnectors = connectors.map((connector) =>
223-
connector.id === connectorId ? updatedConnector : connector
224-
);
225-
setConnectors(updatedConnectors);
226-
updateConnectorSourceItems(updatedConnectors);
224+
setConnectors(prev => {
225+
const updated = prev.map(c => c.id === connectorId ? updatedConnector : c);
226+
updateConnectorSourceItems(updated);
227+
return updated;
228+
});
227229
return updatedConnector;
228230
} catch (err) {
229231
console.error("Error updating search source connector:", err);
@@ -248,9 +250,11 @@ export const useSearchSourceConnectors = (lazy: boolean = false, searchSpaceId?:
248250
throw new Error(`Failed to delete connector: ${response.statusText}`);
249251
}
250252

251-
const updatedConnectors = connectors.filter((connector) => connector.id !== connectorId);
252-
setConnectors(updatedConnectors);
253-
updateConnectorSourceItems(updatedConnectors);
253+
setConnectors(prev => {
254+
const updated = prev.filter(c => c.id !== connectorId);
255+
updateConnectorSourceItems(updated);
256+
return updated;
257+
});
254258
} catch (err) {
255259
console.error("Error deleting search source connector:", err);
256260
throw err;
@@ -295,22 +299,19 @@ export const useSearchSourceConnectors = (lazy: boolean = false, searchSpaceId?:
295299
const result = await response.json();
296300

297301
// Update the connector's last_indexed_at timestamp
298-
const updatedConnectors = connectors.map((connector) =>
299-
connector.id === connectorId
300-
? {
301-
...connector,
302-
last_indexed_at: new Date().toISOString(),
303-
}
304-
: connector
302+
setConnectors(prev =>
303+
prev.map(c => c.id === connectorId
304+
? { ...c, last_indexed_at: new Date().toISOString() }
305+
: c
306+
)
305307
);
306-
setConnectors(updatedConnectors);
307308

308309
return result;
309-
} catch (err) {
310-
console.error("Error indexing connector content:", err);
311-
throw err;
312-
}
313-
};
310+
} catch (err) {
311+
console.error("Error indexing connector content:", err);
312+
throw err;
313+
}
314+
};
314315

315316
/**
316317
* Get connector source items - memoized to prevent unnecessary re-renders

0 commit comments

Comments
 (0)