( isSaas: boolean, featureFlags: WebClientFeatureFlags | undefined, )
| 86 | * Returns null if no page is available (shouldn't happen in practice). |
| 87 | */ |
| 88 | export function getFirstAvailablePath( |
| 89 | isSaas: boolean, |
| 90 | featureFlags: WebClientFeatureFlags | undefined, |
| 91 | ): string | null { |
| 92 | const saasFallbackOrder = [ |
| 93 | { path: "/settings/user", hidden: !!featureFlags?.hide_users_page }, |
| 94 | { |
| 95 | path: "/settings/integrations", |
| 96 | hidden: !!featureFlags?.hide_integrations_page, |
| 97 | }, |
| 98 | { path: "/settings/app", hidden: false }, |
| 99 | { path: "/settings", hidden: !!featureFlags?.hide_llm_settings }, |
| 100 | { path: "/settings/billing", hidden: !!featureFlags?.hide_billing_page }, |
| 101 | { path: "/settings/secrets", hidden: false }, |
| 102 | { path: "/settings/api-keys", hidden: false }, |
| 103 | { path: "/settings/mcp", hidden: false }, |
| 104 | ]; |
| 105 | |
| 106 | const ossFallbackOrder = [ |
| 107 | { path: "/settings", hidden: !!featureFlags?.hide_llm_settings }, |
| 108 | { path: "/settings/mcp", hidden: false }, |
| 109 | { |
| 110 | path: "/settings/integrations", |
| 111 | hidden: !!featureFlags?.hide_integrations_page, |
| 112 | }, |
| 113 | { path: "/settings/app", hidden: false }, |
| 114 | { path: "/settings/secrets", hidden: false }, |
| 115 | ]; |
| 116 | |
| 117 | const fallbackOrder = isSaas ? saasFallbackOrder : ossFallbackOrder; |
| 118 | const firstAvailable = fallbackOrder.find((item) => !item.hidden); |
| 119 | |
| 120 | return firstAvailable?.path ?? null; |
| 121 | } |
no outgoing calls
no test coverage detected