Skip to content

Commit 1a26379

Browse files
mauberti-bcdylanrogowsky-oxd
authored andcommitted
remove unnecessary types
1 parent 57df43a commit 1a26379

File tree

5 files changed

+20
-31
lines changed

5 files changed

+20
-31
lines changed

app/src/features/admin/policies/ManagePoliciesPage.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ describe('ManagePoliciesPage', () => {
165165

166166
await waitFor(() => {
167167
expect(mockGetPolicies).toHaveBeenCalledWith(
168-
{ search: undefined },
168+
{ search: '' },
169169
expect.objectContaining({
170170
page: 1,
171171
limit: 10,
@@ -182,7 +182,7 @@ describe('ManagePoliciesPage', () => {
182182

183183
await waitFor(() => {
184184
expect(mockGetTeams).toHaveBeenCalledWith(
185-
{ search: undefined },
185+
{ search: '' },
186186
expect.objectContaining({
187187
page: 1,
188188
limit: 10,

app/src/features/admin/policies/ManagePoliciesPage.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ import { TeamsContainer } from './components/TeamsContainer';
1616
/**
1717
* Admin page for managing policies, teams, and team-policy assignments.
1818
*
19-
* Assignments are created directly from the Add Assignment dialog.
20-
* Team and policy grids are for management only and do not drive assignment filtering.
19+
* @returns {*}
2120
*/
2221
export const ManagePoliciesPage = () => {
2322
const biohubApi = useApi();
@@ -53,8 +52,7 @@ export const ManagePoliciesPage = () => {
5352
useEffect(() => {
5453
const apiPagination = toApiPagination(teamPoliciesPaginationModel, teamPoliciesSortModel);
5554
teamPoliciesDataLoader.load(debouncedTeamPoliciesSearchTerm, apiPagination);
56-
// eslint-disable-next-line react-hooks/exhaustive-deps
57-
}, []);
55+
}, [debouncedTeamPoliciesSearchTerm, teamPoliciesDataLoader, teamPoliciesPaginationModel, teamPoliciesSortModel]);
5856

5957
const debouncedTeamPoliciesRefresh = useDebounce((searchTerm: string) => {
6058
setDebouncedTeamPoliciesSearchTerm(searchTerm);

app/src/hooks/useServerPaginatedDataGrid.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ interface ITestResponse {
3131

3232
// Default hook options for tests
3333
const createDefaultOptions = (overrides = {}) => ({
34-
fetcher: vi.fn<(search: string | undefined, pagination: any) => Promise<ITestResponse>>().mockResolvedValue({
34+
fetcher: vi.fn<(search: string, pagination: any) => Promise<ITestResponse>>().mockResolvedValue({
3535
items: [{ id: '1', name: 'Test' }],
3636
pagination: { total: 1 }
3737
}),
@@ -132,7 +132,7 @@ describe('useServerPaginatedDataGrid', () => {
132132
renderHook(() => useServerPaginatedDataGrid(createDefaultOptions()));
133133

134134
expect(mockLoad).toHaveBeenCalledWith(
135-
undefined, // no search term
135+
'', // no search term
136136
expect.objectContaining({
137137
page: 1,
138138
limit: 10,
@@ -145,7 +145,7 @@ describe('useServerPaginatedDataGrid', () => {
145145
it('uses custom defaultPageSize in initial load', () => {
146146
renderHook(() => useServerPaginatedDataGrid(createDefaultOptions({ defaultPageSize: 50 })));
147147

148-
expect(mockLoad).toHaveBeenCalledWith(undefined, expect.objectContaining({ limit: 50 }));
148+
expect(mockLoad).toHaveBeenCalledWith('', expect.objectContaining({ limit: 50 }));
149149
});
150150
});
151151

@@ -299,7 +299,7 @@ describe('useServerPaginatedDataGrid', () => {
299299

300300
// Should be called immediately, not debounced
301301
expect(mockRefresh).toHaveBeenCalledWith(
302-
undefined,
302+
'',
303303
expect.objectContaining({
304304
page: 3, // 0-indexed page 2 = API page 3
305305
limit: 10
@@ -355,7 +355,7 @@ describe('useServerPaginatedDataGrid', () => {
355355
});
356356

357357
expect(mockRefresh).toHaveBeenCalledWith(
358-
undefined,
358+
'',
359359
expect.objectContaining({
360360
sort: 'updated_at',
361361
order: 'asc'
@@ -381,7 +381,7 @@ describe('useServerPaginatedDataGrid', () => {
381381

382382
// Page should be preserved
383383
expect(mockRefresh).toHaveBeenCalledWith(
384-
undefined,
384+
'',
385385
expect.objectContaining({
386386
page: 3 // page 2 (0-indexed) = API page 3
387387
})

app/src/hooks/useServerPaginatedDataGrid.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { toApiPagination } from 'utils/pagination';
1010
*/
1111
export interface IUseServerPaginatedDataGridOptions<TData, TResponse> {
1212
/** Function to fetch data from the API */
13-
fetcher: (search: string | undefined, pagination: ApiPaginationRequestOptions) => Promise<TResponse>;
13+
fetcher: (search: string, pagination: ApiPaginationRequestOptions) => Promise<TResponse>;
1414
/** Function to extract the data array from the API response */
1515
extractData: (response: TResponse) => TData[];
1616
/** Function to extract the total count from the API response */
@@ -90,14 +90,14 @@ export const useServerPaginatedDataGrid = <TData, TResponse>(
9090
const [debouncedSearchTerm, setDebouncedSearchTerm] = useState('');
9191

9292
// Data loader
93-
const dataLoader = useDataLoader((search: string | undefined, pagination: ApiPaginationRequestOptions) =>
93+
const dataLoader = useDataLoader((search: string, pagination: ApiPaginationRequestOptions) =>
9494
fetcher(search, pagination)
9595
);
9696

9797
// Load data on mount
9898
useEffect(() => {
9999
const apiPagination = toApiPagination(paginationModel, sortModel);
100-
dataLoader.load(debouncedSearchTerm || undefined, apiPagination);
100+
dataLoader.load(debouncedSearchTerm, apiPagination);
101101
// eslint-disable-next-line react-hooks/exhaustive-deps
102102
}, []);
103103

@@ -107,7 +107,7 @@ export const useServerPaginatedDataGrid = <TData, TResponse>(
107107
setDebouncedSearchTerm(term);
108108
setPaginationModel((prev) => ({ ...prev, page: 0 }));
109109
const apiPagination = toApiPagination(paginationModel, sortModel);
110-
dataLoader.refresh(term || undefined, {
110+
dataLoader.refresh(term, {
111111
...apiPagination,
112112
page: 1
113113
});
@@ -127,7 +127,7 @@ export const useServerPaginatedDataGrid = <TData, TResponse>(
127127
(model: GridPaginationModel) => {
128128
setPaginationModel(model);
129129
const apiPagination = toApiPagination(model, sortModel);
130-
dataLoader.refresh(debouncedSearchTerm || undefined, apiPagination);
130+
dataLoader.refresh(debouncedSearchTerm, apiPagination);
131131
},
132132
// eslint-disable-next-line react-hooks/exhaustive-deps
133133
[sortModel, debouncedSearchTerm]
@@ -138,7 +138,7 @@ export const useServerPaginatedDataGrid = <TData, TResponse>(
138138
(model: GridSortModel) => {
139139
setSortModel(model);
140140
const apiPagination = toApiPagination(paginationModel, model);
141-
dataLoader.refresh(debouncedSearchTerm || undefined, apiPagination);
141+
dataLoader.refresh(debouncedSearchTerm, apiPagination);
142142
},
143143
// eslint-disable-next-line react-hooks/exhaustive-deps
144144
[paginationModel, debouncedSearchTerm]
@@ -147,7 +147,7 @@ export const useServerPaginatedDataGrid = <TData, TResponse>(
147147
// Manual refresh with current params
148148
const refresh = useCallback(() => {
149149
const apiPagination = toApiPagination(paginationModel, sortModel);
150-
dataLoader.refresh(debouncedSearchTerm || undefined, apiPagination);
150+
dataLoader.refresh(debouncedSearchTerm, apiPagination);
151151
// eslint-disable-next-line react-hooks/exhaustive-deps
152152
}, [debouncedSearchTerm, paginationModel, sortModel]);
153153

app/src/utils/pagination.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1+
import { GridPaginationModel, GridSortModel } from '@mui/x-data-grid';
12
import { ApiPaginationRequestOptions } from 'types/pagination';
23

3-
export interface IDataGridPaginationModelLike {
4-
page: number;
5-
pageSize: number;
6-
}
7-
8-
export interface IDataGridSortModelItemLike {
9-
field: string;
10-
sort?: 'asc' | 'desc' | null;
11-
}
12-
134
/**
145
* Converts DataGrid-style pagination/sort state into API pagination options.
156
*/
167
export const toApiPagination = (
17-
paginationModel: IDataGridPaginationModelLike,
18-
sortModel: ReadonlyArray<IDataGridSortModelItemLike>
8+
paginationModel: GridPaginationModel,
9+
sortModel: GridSortModel
1910
): ApiPaginationRequestOptions => {
2011
const sort = sortModel[0];
2112

0 commit comments

Comments
 (0)