Files
supabase/apps/studio/components/layouts/IntegrationsLayout/Integrations.Commands.tsx
Ivan Vasilov 56de26fe22 chore: Migrate the monorepo to use Tailwind v4 (#45318)
This PR migrates the whole monorepo to use Tailwind v4:
- Removed `@tailwindcss/container-queries` plugin since it's included by
default in v4,
- Bump all instances of Tailwind to v4. Made minimal changes to the
shared config to remove non-supported features (`alpha` mentions),
- Migrate all apps to be compatible with v4 configs,
- Fix the `typography.css` import in 3 apps,
- Add missing rules which were included by default in v3,
- Run `pnpm dlx @tailwindcss/upgrade` on all apps, which renames a lot
of classes
- Rename all misnamed classes according to
https://tailwindcss.com/docs/upgrade-guide#renamed-utilities in all
apps.

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2026-04-30 10:53:24 +00:00

72 lines
2.2 KiB
TypeScript

import { useParams } from 'common'
import type { CommandOptions } from 'ui-patterns/CommandMenu'
import { useRegisterCommands } from 'ui-patterns/CommandMenu'
import { COMMAND_MENU_SECTIONS } from '@/components/interfaces/App/CommandMenu/CommandMenu.utils'
import { orderCommandSectionsByPriority } from '@/components/interfaces/App/CommandMenu/ordering'
import {
IntegrationDefinition,
INTEGRATIONS,
} from '@/components/interfaces/Integrations/Landing/Integrations.constants'
import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
export function useIntegrationsGotoCommands(options?: CommandOptions) {
let { ref } = useParams()
ref ||= '_'
const { integrationsWrappers } = useIsFeatureEnabled(['integrations:wrappers'])
const allIntegrations = integrationsWrappers
? INTEGRATIONS
: INTEGRATIONS.filter((x) => !x.id.endsWith('_wrapper'))
const getName = (integration: IntegrationDefinition) => {
switch (integration.id) {
case 'cron':
return 'View and manage your Cron Jobs'
case 'graphiql':
return 'Query database using GraphQL'
case 'vault':
return 'View and manage your keys and secrets via Vault'
default:
return `View and manage your ${integration.name}${integration.type === 'wrapper' ? 's' : ''}`
}
}
useRegisterCommands(
COMMAND_MENU_SECTIONS.NAVIGATE,
allIntegrations.map((x) => {
return {
id: `nav-integrations-${x.id}`,
name: x.name,
value: `Integrations: ${x.name}`,
route: `/project/${ref}/integrations/${x.id}/overview`,
defaultHidden: true,
}
}),
{ ...options, deps: [ref] }
)
useRegisterCommands(
COMMAND_MENU_SECTIONS.INTEGRATIONS,
allIntegrations.map((x) => {
return {
id: `manage-${x.id}`,
name: getName(x),
route: `/project/${ref}/integrations/${x.id}/overview`,
icon: () => (
<div className="w-6 h-6 relative bg-white border rounded-md flex items-center justify-center [&>img]:p-1! [&>svg]:p-1!">
{x.icon()}
</div>
),
}
}),
{
...options,
deps: [ref],
orderSection: orderCommandSectionsByPriority,
sectionMeta: { priority: 3 },
}
)
}