Home / Function/ useRolesFilter() — supabase Function Reference

useRolesFilter() — supabase Function Reference

Architecture documentation for the useRolesFilter() function in useRolesFilter.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  c566be23_345f_27bd_3757_6fb594d79fc3["useRolesFilter()"]
  58ac8490_c53d_200a_edfa_a3def67ee94c["RolesFilterDropdown()"]
  58ac8490_c53d_200a_edfa_a3def67ee94c -->|calls| c566be23_345f_27bd_3757_6fb594d79fc3
  0b14c263_3b04_7b9a_5d7e_23d91a4695bb["isKnownRole()"]
  c566be23_345f_27bd_3757_6fb594d79fc3 -->|calls| 0b14c263_3b04_7b9a_5d7e_23d91a4695bb
  style c566be23_345f_27bd_3757_6fb594d79fc3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/QueryPerformance/hooks/useRolesFilter.ts lines 21–64

export const useRolesFilter = () => {
  const { data: project } = useSelectedProjectQuery()
  const { data, isPending: isLoadingRoles } = useDatabaseRolesQuery({
    projectRef: project?.ref,
    connectionString: project?.connectionString,
  })

  const appAccessRolesSet = useMemo(() => new Set(APP_ACCESS_ROLES) as Set<string>, [])
  const supabaseSystemRolesSet = useMemo(() => new Set(SUPABASE_SYSTEM_ROLES) as Set<string>, [])

  const roles = useMemo((): RoleWithDescription[] => {
    return (data ?? [])
      .sort((a, b) => a.name.localeCompare(b.name))
      .map((role) => ({
        ...role,
        displayName: isKnownRole(role.name) ? ROLE_INFO[role.name].displayName : role.name,
      }))
  }, [data])

  const roleGroups = useMemo((): RoleGroup[] => {
    return [
      {
        name: 'User Access',
        options: roles.filter((r) => appAccessRolesSet.has(r.name)).map((r) => r.name),
      },
      {
        name: 'System and Services',
        options: roles.filter((r) => supabaseSystemRolesSet.has(r.name)).map((r) => r.name),
      },
      {
        name: 'Custom',
        options: roles
          .filter((r) => !appAccessRolesSet.has(r.name) && !supabaseSystemRolesSet.has(r.name))
          .map((r) => r.name),
      },
    ]
  }, [appAccessRolesSet, roles, supabaseSystemRolesSet])

  return {
    roles,
    roleGroups,
    isLoadingRoles,
  }
}

Subdomains

Frequently Asked Questions

What does useRolesFilter() do?
useRolesFilter() is a function in the supabase codebase.
What does useRolesFilter() call?
useRolesFilter() calls 1 function(s): isKnownRole.
What calls useRolesFilter()?
useRolesFilter() is called by 1 function(s): RolesFilterDropdown.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free