| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- import { useParams } from 'common'
- import type { CommandOptions } from 'ui-patterns/CommandMenu'
- import { useRegisterCommands } from 'ui-patterns/CommandMenu'
- import { IRouteCommand } from 'ui-patterns/CommandMenu/internal/types'
- import { COMMAND_MENU_SECTIONS } from '@/components/interfaces/App/CommandMenu/CommandMenu.utils'
- import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
- export function useAuthGotoCommands(options?: CommandOptions) {
- let { ref } = useParams()
- ref ||= '_'
- const {
- authenticationSignInProviders,
- authenticationThirdPartyAuth,
- authenticationRateLimits,
- authenticationEmails,
- authenticationMultiFactor,
- authenticationAttackProtection,
- authenticationPerformance,
- } = useIsFeatureEnabled([
- 'authentication:sign_in_providers',
- 'authentication:third_party_auth',
- 'authentication:rate_limits',
- 'authentication:emails',
- 'authentication:multi_factor',
- 'authentication:attack_protection',
- 'authentication:performance',
- ])
- useRegisterCommands(
- COMMAND_MENU_SECTIONS.NAVIGATE,
- [
- {
- id: 'nav-auth-users',
- name: 'Users',
- value: 'Auth: Users',
- route: `/project/${ref}/auth/users`,
- defaultHidden: true,
- },
- {
- id: 'nav-auth-policies',
- name: 'Policies',
- value: 'Auth: Policies (RLS)',
- route: `/project/${ref}/auth/policies`,
- defaultHidden: true,
- },
- ...(authenticationSignInProviders
- ? [
- {
- id: 'nav-auth-providers',
- name: 'Providers',
- value: 'Auth: Providers (Social Login, SSO)',
- route: `/project/${ref}/auth/providers`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- ...(authenticationThirdPartyAuth
- ? [
- {
- id: 'nav-auth-providers-third-party',
- name: 'Providers (Third Party)',
- value: 'Auth: Providers (Third Party)',
- route: `/project/${ref}/auth/third-party`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- {
- id: 'nav-auth-sessions',
- name: 'Sessions',
- value: 'Auth: Sessions (User Sessions)',
- route: `/project/${ref}/auth/sessions`,
- defaultHidden: true,
- },
- ...(authenticationRateLimits
- ? [
- {
- id: 'nav-auth-rate-limits',
- name: 'Rate Limits',
- value: 'Auth: Rate Limits',
- route: `/project/${ref}/auth/rate-limits`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- ...(authenticationEmails
- ? [
- {
- id: 'nav-auth-templates',
- name: 'Email Templates',
- value: 'Auth: Email Templates',
- route: `/project/${ref}/auth/templates`,
- defaultHidden: true,
- } as IRouteCommand,
- {
- id: 'nav-auth-smtp',
- name: 'SMTP Settings',
- value: 'Auth: SMTP Settings (Email Configuration)',
- route: `/project/${ref}/auth/smtp`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- ...(authenticationMultiFactor
- ? [
- {
- id: 'nav-auth-mfa',
- name: 'Multi Factor Authentication (MFA)',
- value: 'Auth: Multi Factor Authenticaiton (MFA)',
- route: `/project/${ref}/auth/mfa`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- {
- id: 'nav-auth-url-configuration',
- name: 'URL Configuration',
- value: 'Auth: URL Configuration (Site URL, Redirect URLs)',
- route: `/project/${ref}/auth/url-configuration`,
- defaultHidden: true,
- },
- ...(authenticationAttackProtection
- ? [
- {
- id: 'nav-auth-attack-protection',
- name: 'Attack Protection',
- value: 'Auth: Attack Protection',
- route: `/project/${ref}/auth/protection`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- {
- id: 'nav-auth-auth-hooks',
- name: 'Auth Hooks',
- value: 'Auth: Auth Hooks',
- route: `/project/${ref}/auth/hooks`,
- defaultHidden: true,
- },
- ...(authenticationPerformance
- ? [
- {
- id: 'nav-auth-performance-settings',
- name: 'Auth Performance Settings',
- value: 'Auth: Performance Settings',
- route: `/project/${ref}/auth/performance`,
- defaultHidden: true,
- } as IRouteCommand,
- ]
- : []),
- ],
- { ...options, deps: [ref] }
- )
- }
|