MCPcopy Index your code
hub / github.com/coder/coder / useWorkspacesFilter

Function useWorkspacesFilter

site/src/pages/WorkspacesPage/WorkspacesPage.tsx:268–321  ·  view source on GitHub ↗
({
	searchParams,
	onSearchParamsChange,
	onFilterChange,
}: UseWorkspacesFilterOptions)

Source from the content-addressed store, hash-verified

266};
267
268const useWorkspacesFilter = ({
269 searchParams,
270 onSearchParamsChange,
271 onFilterChange,
272}: UseWorkspacesFilterOptions) => {
273 const filter = useFilter({
274 fallbackFilter: "owner:me",
275 searchParams,
276 onSearchParamsChange,
277 onUpdate: onFilterChange,
278 });
279
280 const { permissions } = useAuthenticated();
281 const canFilterByUser = permissions.viewDeploymentConfig;
282 const userMenu = useUserFilterMenu({
283 value: filter.values.owner,
284 onChange: (option) =>
285 filter.update({ ...filter.values, owner: option?.value }),
286 enabled: canFilterByUser,
287 });
288
289 const templateMenu = useTemplateFilterMenu({
290 value: filter.values.template,
291 onChange: (option) =>
292 filter.update({ ...filter.values, template: option?.value }),
293 });
294
295 const statusMenu = useStatusFilterMenu({
296 value: filter.values.status,
297 onChange: (option) =>
298 filter.update({ ...filter.values, status: option?.value }),
299 });
300
301 const { showOrganizations } = useDashboard();
302 const organizationsMenu = useOrganizationsFilterMenu({
303 value: filter.values.organization,
304 onChange: (option) => {
305 filter.update({
306 ...filter.values,
307 organization: option?.value,
308 });
309 },
310 });
311
312 return {
313 filter,
314 menus: {
315 user: canFilterByUser ? userMenu : undefined,
316 template: templateMenu,
317 status: statusMenu,
318 organizations: showOrganizations ? organizationsMenu : undefined,
319 },
320 };
321};

Callers 1

WorkspacesPageFunction · 0.85

Calls 8

useFilterFunction · 0.90
useAuthenticatedFunction · 0.90
useUserFilterMenuFunction · 0.90
useTemplateFilterMenuFunction · 0.90
useStatusFilterMenuFunction · 0.90
useDashboardFunction · 0.90
updateMethod · 0.45

Tested by

no test coverage detected