useAvailableConnectModes.ts 967 B

1234567891011121314151617181920212223242526
  1. import { useMemo } from 'react'
  2. import type { ConnectMode } from './Connect.types'
  3. import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
  4. export function useAvailableConnectModes(): ConnectMode[] {
  5. const {
  6. projectConnectionShowAppFrameworks: showAppFrameworks,
  7. projectConnectionShowMobileFrameworks: showMobileFrameworks,
  8. projectConnectionShowOrms: showOrms,
  9. } = useIsFeatureEnabled([
  10. 'project_connection:show_app_frameworks',
  11. 'project_connection:show_mobile_frameworks',
  12. 'project_connection:show_orms',
  13. ])
  14. return useMemo(() => {
  15. const allModes: { id: ConnectMode; enabled: boolean }[] = [
  16. { id: 'framework', enabled: showAppFrameworks || showMobileFrameworks },
  17. { id: 'direct', enabled: true },
  18. { id: 'orm', enabled: showOrms },
  19. { id: 'mcp', enabled: true },
  20. ]
  21. return allModes.filter((m) => m.enabled).map((m) => m.id)
  22. }, [showAppFrameworks, showMobileFrameworks, showOrms])
  23. }