MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / createSelectedLogsSlice

Function createSelectedLogsSlice

app/src/state/selectedLogsSlice.ts:14–63  ·  view source on GitHub ↗
(set)

Source from the content-addressed store, hash-verified

12};
13
14export const createSelectedLogsSlice: SliceCreator<SelectedLogsSlice> = (set) => ({
15 matchingLogsCount: 0,
16 setMatchingLogsCount: (count: number) =>
17 set((state) => {
18 state.selectedLogs.matchingLogsCount = count;
19 }),
20 defaultToSelected: false,
21 selectedLogIds: new Set(),
22 deselectedLogIds: new Set(),
23 toggleSelectedLogId: (id: string) =>
24 set((state) => {
25 if (state.selectedLogs.defaultToSelected) {
26 if (state.selectedLogs.deselectedLogIds.has(id)) {
27 state.selectedLogs.deselectedLogIds.delete(id);
28 } else {
29 state.selectedLogs.deselectedLogIds.add(id);
30 }
31 } else {
32 if (state.selectedLogs.selectedLogIds.has(id)) {
33 state.selectedLogs.selectedLogIds.delete(id);
34 } else {
35 state.selectedLogs.selectedLogIds.add(id);
36 }
37 }
38 // Handle the case where all logs are selected or deselected one-by-one
39 if (state.selectedLogs.selectedLogIds.size === state.selectedLogs.matchingLogsCount) {
40 state.selectedLogs.defaultToSelected = true;
41 state.selectedLogs.selectedLogIds = new Set();
42 } else if (
43 state.selectedLogs.deselectedLogIds.size === state.selectedLogs.matchingLogsCount
44 ) {
45 state.selectedLogs.defaultToSelected = false;
46 state.selectedLogs.deselectedLogIds = new Set();
47 }
48 }),
49 toggleAllSelected: () =>
50 set((state) => {
51 if (state.selectedLogs.defaultToSelected) {
52 if (state.selectedLogs.deselectedLogIds.size) {
53 state.selectedLogs.deselectedLogIds = new Set();
54 } else {
55 state.selectedLogs.defaultToSelected = false;
56 }
57 } else {
58 state.selectedLogs.defaultToSelected = true;
59 if (state.selectedLogs.selectedLogIds.size) state.selectedLogs.selectedLogIds = new Set();
60 }
61 }),
62 resetLogSelection: () => set(resetLogSelection),
63});
64
65export const resetLogSelection = (state: State) => {
66 state.selectedLogs.defaultToSelected = false;

Callers 1

store.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected