Skip to content

Commit 8a72c2a

Browse files
authored
[Comp-800] Default My toggle to off for non-officer positions (#727)
1 parent 46ebf5d commit 8a72c2a

File tree

4 files changed

+78
-31
lines changed

4 files changed

+78
-31
lines changed

compliance-web/src/routes/_authenticated/ce-database/case-files/index.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { CaseFile, CaseFileGridQueryParams } from "@/models/CaseFile";
99
import { cachedFiltersStore } from "@/store/cachedFiltersStore";
1010
import { useDrawer } from "@/store/drawerStore";
1111
import { notify } from "@/store/snackbarStore";
12-
import { DRAWER_WIDTHS } from "@/utils/constants";
12+
import { DRAWER_WIDTHS, STAFF_USER_POSITION } from "@/utils/constants";
1313
import { AppConfig } from "@/utils/config";
1414
import { Box, Button, CircularProgress, Typography } from "@mui/material";
1515
import { useQueryClient } from "@tanstack/react-query";
@@ -158,17 +158,24 @@ export function CaseFiles() {
158158

159159
// Apply default filters for first-time users
160160
if (!restoredFilters) {
161+
const officerPositions = [
162+
STAFF_USER_POSITION.OFFICER,
163+
STAFF_USER_POSITION.SENIOR_OFFICER,
164+
];
165+
const defaultChecked = Boolean(currentStaff.position_id &&
166+
officerPositions.includes(currentStaff.position_id));
167+
161168
const defaultExternalFilters = {
162-
primary_officer_ids: [currentStaff.id.toString()],
169+
primary_officer_ids: [defaultChecked ? currentStaff.id.toString() : ""],
163170
};
164171
const defaultColumnFilters = [
165-
{ id: "primary_officer", value: [currentStaff.id.toString()] },
172+
{ id: "primary_officer", value: [defaultChecked ? currentStaff.id.toString() : ""] },
166173
{ id: "status", value: ["Open"] },
167174
];
168175

169176
setExternalFilters(defaultExternalFilters);
170177
setColumnFilters(defaultColumnFilters);
171-
setMyFilesChecked(true);
178+
setMyFilesChecked(defaultChecked);
172179
}
173180

174181
// Restore sorting

compliance-web/src/routes/_authenticated/ce-database/complaints/index.tsx

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import ComplaintsGridExport from "@/components/App/Complaints/ComplaintsGrid/Com
3232
import ShowOnlyMyComplaintsSwitch from "@/components/App/Complaints/ComplaintsGrid/ShowOnlyMyComplaintsSwitch";
3333
import { AppConfig } from "@/utils/config";
3434
import { StaffUser } from "@/models/Staff";
35+
import { STAFF_USER_POSITION } from "@/utils/constants";
3536

3637
export const Route = createFileRoute("/_authenticated/ce-database/complaints/")(
3738
{ component: Complaints }
@@ -48,17 +49,28 @@ const getCurrentStaff = (currentUser: User | undefined | null, staffList: StaffU
4849
};
4950

5051
// Helper to create default filters for a staff member
51-
const createDefaultFilters = (staffId: string) => ({
52-
externalFilters: {
53-
primary_officer_ids: [staffId],
54-
},
55-
columnFilters: [
56-
{
57-
id: "primary_officer_ids",
58-
value: [staffId],
59-
},
60-
],
61-
});
52+
const createDefaultFilters = (staffId: string, defaultMyChecked: boolean): {
53+
externalFilters: Record<string, string[] | string>;
54+
columnFilters: MRT_ColumnFiltersState;
55+
} => {
56+
if (defaultMyChecked) {
57+
return {
58+
externalFilters: {
59+
primary_officer_ids: [staffId],
60+
},
61+
columnFilters: [
62+
{
63+
id: "primary_officer_ids",
64+
value: [staffId],
65+
},
66+
],
67+
}
68+
}
69+
return {
70+
externalFilters: {},
71+
columnFilters: [],
72+
};
73+
}
6274

6375
export function Complaints() {
6476
const { data: projects } = useProjectsData();
@@ -150,10 +162,17 @@ export function Complaints() {
150162
}
151163
} else {
152164
// Apply defaults for first-time users
153-
const defaults = createDefaultFilters(currentStaff.id.toString());
165+
const officerPositions = [
166+
STAFF_USER_POSITION.OFFICER,
167+
STAFF_USER_POSITION.SENIOR_OFFICER,
168+
];
169+
170+
const defaultChecked = Boolean(currentStaff.position_id &&
171+
officerPositions.includes(currentStaff.position_id));
172+
const defaults = createDefaultFilters(currentStaff.id.toString(), defaultChecked);
154173
setExternalFilters(defaults.externalFilters);
155174
setColumnFilters(defaults.columnFilters);
156-
setMyFilesChecked(true);
175+
setMyFilesChecked(defaultChecked);
157176
}
158177

159178
setIsRestored(true);

compliance-web/src/routes/_authenticated/ce-database/inspections/index.tsx

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { useProjectsData } from "@/hooks/useProjects";
1515
import { useInitiationsData } from "@/hooks/useInspections";
1616
import { Inspection, InspectionGridQueryParams } from "@/models/Inspection";
1717
import { cachedFiltersStore } from "@/store/cachedFiltersStore";
18-
import { IRProgressEnumText, InspectionStatusEnum } from "@/utils/constants";
18+
import { IRProgressEnumText, InspectionStatusEnum, STAFF_USER_POSITION } from "@/utils/constants";
1919
import { Box, CircularProgress, Typography } from "@mui/material";
2020
import { createFileRoute } from "@tanstack/react-router";
2121
import { BCDesignTokens } from "epic.theme";
@@ -45,17 +45,28 @@ const getCurrentStaff = (currentUser: User | undefined | null, staffList: StaffU
4545
};
4646

4747
// Helper to create default filters for a staff member
48-
const createDefaultFilters = (staffId: string) => ({
49-
externalFilters: {
50-
primary_officer_ids: [staffId],
51-
},
52-
columnFilters: [
53-
{
54-
id: "primary_officer",
55-
value: [staffId],
56-
},
57-
],
58-
});
48+
const createDefaultFilters = (staffId: string, defaultMyChecked: boolean): {
49+
externalFilters: Record<string, string[] | string>;
50+
columnFilters: MRT_ColumnFiltersState;
51+
} => {
52+
if (defaultMyChecked) {
53+
return {
54+
externalFilters: {
55+
primary_officer_ids: [staffId],
56+
},
57+
columnFilters: [
58+
{
59+
id: "primary_officer_ids",
60+
value: [staffId],
61+
},
62+
],
63+
}
64+
}
65+
return {
66+
externalFilters: {},
67+
columnFilters: [],
68+
};
69+
}
5970

6071
export function Inspections() {
6172
const { data: projects } = useProjectsData();
@@ -166,10 +177,17 @@ export function Inspections() {
166177
}
167178
} else {
168179
// Apply defaults for first-time users
169-
const defaults = createDefaultFilters(currentStaff.id.toString());
180+
const officerPositions = [
181+
STAFF_USER_POSITION.OFFICER,
182+
STAFF_USER_POSITION.SENIOR_OFFICER,
183+
];
184+
185+
const defaultChecked = Boolean(currentStaff.position_id &&
186+
officerPositions.includes(currentStaff.position_id));
187+
const defaults = createDefaultFilters(currentStaff.id.toString(), defaultChecked);
170188
setExternalFilters(defaults.externalFilters);
171189
setColumnFilters(defaults.columnFilters);
172-
setMyInspectionsChecked(true);
190+
setMyInspectionsChecked(defaultChecked);
173191
}
174192

175193
setIsRestored(true);

compliance-web/src/utils/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ export const UNAPPROVED_PROJECT_ID = 99999;
1010
export const UNAPPROVED_PROJECT_ABBREVIATION = "UNPRVD";
1111

1212
export const STAFF_USER_POSITION = {
13+
OFFICER: 1,
14+
SENIOR_OFFICER: 2,
1315
DEPUTY_DIRECTOR: 3,
1416
DIRECTOR: 4,
17+
SPECIALIST: 5,
1518
OTHER: 6,
1619
}
1720

0 commit comments

Comments
 (0)