From 616f5477acefb11fe75f816407b35bd8eca895e5 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 5 Dec 2024 15:56:45 +0800 Subject: [PATCH] Shift old Connect files to new Connect folder outside of Home --- .../interfaces/Connect/Connect.constants.ts | 297 +++++++++++++++++- .../interfaces/{Home => }/Connect/Connect.tsx | 3 +- .../{Home => }/Connect/Connect.types.ts | 0 .../{Home => }/Connect/Connect.utils.ts | 0 .../interfaces/Connect/ConnectDropdown.tsx | 98 ++++++ .../{Home => }/Connect/ConnectTabContent.tsx | 0 .../{Home => }/Connect/ConnectTabs.tsx | 0 .../{Home => }/Connect/ConnectionIcon.tsx | 9 +- .../Connect/DatabaseConnectionString.tsx | 22 +- .../androidkotlin/supabasekt/content.tsx | 4 +- .../content/astro/supabasejs/content.tsx | 4 +- .../Connect/content/drizzle/content.tsx | 4 +- .../exporeactnative/supabasejs/content.tsx | 4 +- .../flutter/supabaseflutter/content.tsx | 4 +- .../ionicangular/supabasejs/content.tsx | 4 +- .../content/ionicreact/supabasejs/content.tsx | 4 +- .../content/nextjs/app/supabasejs/content.tsx | 4 +- .../nextjs/pages/supabasejs/content.tsx | 4 +- .../content/nuxt/supabasejs/content.tsx | 4 +- .../Connect/content/prisma/content.tsx | 4 +- .../create-react-app/supabasejs/content.tsx | 4 +- .../content/react/vite/supabasejs/content.tsx | 4 +- .../content/refine/supabasejs/content.tsx | 4 +- .../content/remix/supabasejs/content.tsx | 4 +- .../content/solidjs/supabasejs/content.tsx | 4 +- .../content/sveltekit/supabasejs/content.tsx | 4 +- .../content/swift/supabaseswift/content.tsx | 4 +- .../content/vuejs/supabasejs/content.tsx | 4 +- .../Home/Connect/Connect.constants.ts | 290 ----------------- .../Home/Connect/ConnectDropdown.tsx | 99 ------ .../LayoutHeader/LayoutHeader.tsx | 2 +- apps/studio/pages/project/[ref]/index.tsx | 2 +- 32 files changed, 451 insertions(+), 447 deletions(-) rename apps/studio/components/interfaces/{Home => }/Connect/Connect.tsx (99%) rename apps/studio/components/interfaces/{Home => }/Connect/Connect.types.ts (100%) rename apps/studio/components/interfaces/{Home => }/Connect/Connect.utils.ts (100%) create mode 100644 apps/studio/components/interfaces/Connect/ConnectDropdown.tsx rename apps/studio/components/interfaces/{Home => }/Connect/ConnectTabContent.tsx (100%) rename apps/studio/components/interfaces/{Home => }/Connect/ConnectTabs.tsx (100%) rename apps/studio/components/interfaces/{Home => }/Connect/ConnectionIcon.tsx (89%) rename apps/studio/components/interfaces/{Home => }/Connect/content/androidkotlin/supabasekt/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/astro/supabasejs/content.tsx (91%) rename apps/studio/components/interfaces/{Home => }/Connect/content/drizzle/content.tsx (92%) rename apps/studio/components/interfaces/{Home => }/Connect/content/exporeactnative/supabasejs/content.tsx (94%) rename apps/studio/components/interfaces/{Home => }/Connect/content/flutter/supabaseflutter/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/ionicangular/supabasejs/content.tsx (96%) rename apps/studio/components/interfaces/{Home => }/Connect/content/ionicreact/supabasejs/content.tsx (95%) rename apps/studio/components/interfaces/{Home => }/Connect/content/nextjs/app/supabasejs/content.tsx (96%) rename apps/studio/components/interfaces/{Home => }/Connect/content/nextjs/pages/supabasejs/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/nuxt/supabasejs/content.tsx (92%) rename apps/studio/components/interfaces/{Home => }/Connect/content/prisma/content.tsx (89%) rename apps/studio/components/interfaces/{Home => }/Connect/content/react/create-react-app/supabasejs/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/react/vite/supabasejs/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/refine/supabasejs/content.tsx (95%) rename apps/studio/components/interfaces/{Home => }/Connect/content/remix/supabasejs/content.tsx (94%) rename apps/studio/components/interfaces/{Home => }/Connect/content/solidjs/supabasejs/content.tsx (92%) rename apps/studio/components/interfaces/{Home => }/Connect/content/sveltekit/supabasejs/content.tsx (93%) rename apps/studio/components/interfaces/{Home => }/Connect/content/swift/supabaseswift/content.tsx (92%) rename apps/studio/components/interfaces/{Home => }/Connect/content/vuejs/supabasejs/content.tsx (92%) delete mode 100644 apps/studio/components/interfaces/Home/Connect/Connect.constants.ts delete mode 100644 apps/studio/components/interfaces/Home/Connect/ConnectDropdown.tsx diff --git a/apps/studio/components/interfaces/Connect/Connect.constants.ts b/apps/studio/components/interfaces/Connect/Connect.constants.ts index 435e7ad4ecc..4d94d82a20a 100644 --- a/apps/studio/components/interfaces/Connect/Connect.constants.ts +++ b/apps/studio/components/interfaces/Connect/Connect.constants.ts @@ -1,6 +1,6 @@ import { CodeBlockLang } from 'ui' -export type ConnectionType = +export type DatabaseConnectionType = | 'uri' | 'psql' | 'golang' @@ -11,8 +11,8 @@ export type ConnectionType = | 'python' | 'sqlalchemy' -export const CONNECTION_TYPES: { - id: ConnectionType +export const DATABASE_CONNECTION_TYPES: { + id: DatabaseConnectionType label: string contentType: 'input' | 'code' lang: CodeBlockLang @@ -57,3 +57,294 @@ export const CONNECTION_PARAMETERS = { description: 'Connection pooling behavior', }, } as const + +export type ConnectionType = { + key: string + icon: string + label: string + guideLink?: string + children: ConnectionType[] +} + +export const FRAMEWORKS: ConnectionType[] = [ + { + key: 'nextjs', + label: 'Next.js', + icon: 'nextjs', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nextjs', + children: [ + { + key: 'app', + label: 'App Router', + icon: '', + children: [ + { + key: 'supabasejs', + label: 'supabase-js', + icon: 'supabase', + children: [], + }, + ], + }, + { + key: 'pages', + label: 'Pages Router', + icon: '', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + ], + }, + { + key: 'remix', + label: 'Remix', + icon: 'remix', + guideLink: + 'https://supabase.com/docs/guides/auth/server-side/creating-a-client?framework=remix&environment=remix-loader', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'react', + label: 'React', + icon: 'react', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/reactjs', + children: [ + { + key: 'create-react-app', + label: 'Create React App', + icon: 'react', + children: [ + { + key: 'supabasejs', + label: 'supabase-js', + icon: 'supabase', + children: [], + }, + ], + }, + { + key: 'vite', + label: 'Vite', + icon: 'vite', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + ], + }, + { + key: 'nuxt', + label: 'Nuxt', + icon: 'nuxt', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'vuejs', + label: 'Vue.JS', + icon: 'vuejs', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/vue', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + + { + key: 'sveltekit', + label: 'SvelteKit', + icon: 'sveltekit', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/sveltekit', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'solidjs', + label: 'Solid.js', + icon: 'solidjs', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/solidjs', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'astro', + label: 'Astro', + icon: 'astro', + guideLink: 'https://docs.astro.build/en/guides/backend/supabase/', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'refine', + label: 'refine', + icon: 'refine', + guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/refine', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, +] + +export const MOBILES: ConnectionType[] = [ + { + key: 'exporeactnative', + label: 'Expo React Native', + icon: 'expo', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-expo-react-native', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'flutter', + label: 'Flutter', + icon: 'flutter', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-flutter', + children: [ + { + key: 'supabaseflutter', + label: 'supabase-flutter', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'ionicreact', + label: 'Ionic React', + icon: 'react', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-react', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'swift', + label: 'Swift', + icon: 'swift', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-swift', + children: [ + { + key: 'supabaseswift', + label: 'supabase-swift', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'androidkotlin', + label: 'Android Kotlin', + icon: 'kotlin', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-kotlin', + children: [ + { + key: 'supabasekt', + label: 'supabase-kt', + children: [], + icon: 'supabase', + }, + ], + }, + { + key: 'ionicangular', + label: 'Ionic Angular', + icon: 'ionic-angular', + guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-angular', + children: [ + { + key: 'supabasejs', + label: 'Supabase-js', + children: [], + icon: 'supabase', + }, + ], + }, +] + +export const ORMS: ConnectionType[] = [ + { + key: 'prisma', + label: 'Prisma', + icon: 'prisma', + guideLink: 'https://supabase.com/partners/integrations/prisma', + children: [], + }, + { + key: 'drizzle', + label: 'Drizzle', + icon: 'drizzle', + guideLink: + 'https://supabase.com/docs/guides/database/connecting-to-postgres#connecting-with-drizzle', + children: [], + }, +] + +export const CONNECTION_TYPES = [ + { key: 'direct', label: 'Connection String', obj: [] }, + { key: 'frameworks', label: 'App Frameworks', obj: FRAMEWORKS }, + { key: 'mobiles', label: 'Mobile Frameworks', obj: MOBILES }, + { key: 'orms', label: 'ORMs', obj: ORMS }, +] diff --git a/apps/studio/components/interfaces/Home/Connect/Connect.tsx b/apps/studio/components/interfaces/Connect/Connect.tsx similarity index 99% rename from apps/studio/components/interfaces/Home/Connect/Connect.tsx rename to apps/studio/components/interfaces/Connect/Connect.tsx index 91b2606dfca..aba5d9646cf 100644 --- a/apps/studio/components/interfaces/Home/Connect/Connect.tsx +++ b/apps/studio/components/interfaces/Connect/Connect.tsx @@ -9,10 +9,10 @@ import { DatabaseConnectionString as OldDatabaseConnectionString } from 'compone import Panel from 'components/ui/Panel' import { getAPIKeys, useProjectSettingsV2Query } from 'data/config/project-settings-v2-query' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useFlag } from 'hooks/ui/useFlag' import { Button, DIALOG_PADDING_X, - DIALOG_PADDING_X_SMALL, DIALOG_PADDING_Y, Dialog, DialogContent, @@ -30,7 +30,6 @@ import { CONNECTION_TYPES, ConnectionType, FRAMEWORKS, MOBILES, ORMS } from './C import { getContentFilePath } from './Connect.utils' import ConnectDropdown from './ConnectDropdown' import ConnectTabContent from './ConnectTabContent' -import { useFlag } from 'hooks/ui/useFlag' const Connect = () => { const connectDialogUpdate = useFlag('connectDialogUpdate') diff --git a/apps/studio/components/interfaces/Home/Connect/Connect.types.ts b/apps/studio/components/interfaces/Connect/Connect.types.ts similarity index 100% rename from apps/studio/components/interfaces/Home/Connect/Connect.types.ts rename to apps/studio/components/interfaces/Connect/Connect.types.ts diff --git a/apps/studio/components/interfaces/Home/Connect/Connect.utils.ts b/apps/studio/components/interfaces/Connect/Connect.utils.ts similarity index 100% rename from apps/studio/components/interfaces/Home/Connect/Connect.utils.ts rename to apps/studio/components/interfaces/Connect/Connect.utils.ts diff --git a/apps/studio/components/interfaces/Connect/ConnectDropdown.tsx b/apps/studio/components/interfaces/Connect/ConnectDropdown.tsx new file mode 100644 index 00000000000..3a17f63e659 --- /dev/null +++ b/apps/studio/components/interfaces/Connect/ConnectDropdown.tsx @@ -0,0 +1,98 @@ +import { Box, Check, ChevronDown } from 'lucide-react' +import { useState } from 'react' + +import { + Button, + CommandEmpty_Shadcn_, + CommandGroup_Shadcn_, + CommandInput_Shadcn_, + CommandItem_Shadcn_, + CommandList_Shadcn_, + Command_Shadcn_, + PopoverContent_Shadcn_, + PopoverTrigger_Shadcn_, + Popover_Shadcn_, + cn, +} from 'ui' +import { ConnectionIcon } from './ConnectionIcon' + +interface ConnectDropdownProps { + state: string + updateState: (state: string) => void + label: string + items: any[] +} + +const ConnectDropdown = ({ + state, + updateState, + label, + + items, +}: ConnectDropdownProps) => { + const [open, setOpen] = useState(false) + + function onSelectLib(key: string) { + updateState(key) + setOpen(false) + } + + const selectedItem = items.find((item) => item.key === state) + + return ( + +
+ + {label} + + + + +
+ + + + + No results found. + + {items.map((item) => ( + { + onSelectLib(item.key) + setOpen(false) + }} + className="flex gap-2 items-center" + > + {item.icon ? : } + {item.label} + + + ))} + + + + +
+ ) +} + +export default ConnectDropdown diff --git a/apps/studio/components/interfaces/Home/Connect/ConnectTabContent.tsx b/apps/studio/components/interfaces/Connect/ConnectTabContent.tsx similarity index 100% rename from apps/studio/components/interfaces/Home/Connect/ConnectTabContent.tsx rename to apps/studio/components/interfaces/Connect/ConnectTabContent.tsx diff --git a/apps/studio/components/interfaces/Home/Connect/ConnectTabs.tsx b/apps/studio/components/interfaces/Connect/ConnectTabs.tsx similarity index 100% rename from apps/studio/components/interfaces/Home/Connect/ConnectTabs.tsx rename to apps/studio/components/interfaces/Connect/ConnectTabs.tsx diff --git a/apps/studio/components/interfaces/Home/Connect/ConnectionIcon.tsx b/apps/studio/components/interfaces/Connect/ConnectionIcon.tsx similarity index 89% rename from apps/studio/components/interfaces/Home/Connect/ConnectionIcon.tsx rename to apps/studio/components/interfaces/Connect/ConnectionIcon.tsx index a79acebc468..fd2452d2961 100644 --- a/apps/studio/components/interfaces/Home/Connect/ConnectionIcon.tsx +++ b/apps/studio/components/interfaces/Connect/ConnectionIcon.tsx @@ -1,12 +1,13 @@ -import { BASE_PATH } from 'lib/constants' - import { useTheme } from 'next-themes' import Image from 'next/image' + +import { BASE_PATH } from 'lib/constants' + interface ConnectionIconProps { connection: any } -const ConnectionIcon = ({ connection }: ConnectionIconProps) => { +export const ConnectionIcon = ({ connection }: ConnectionIconProps) => { const { resolvedTheme } = useTheme() const imageFolder = ['ionic-angular'].includes(connection) ? 'icons/frameworks' : 'libraries' @@ -28,5 +29,3 @@ const ConnectionIcon = ({ connection }: ConnectionIconProps) => { /> ) } - -export default ConnectionIcon diff --git a/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx b/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx index 8c293241245..f1833eaa25d 100644 --- a/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx +++ b/apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx @@ -27,7 +27,11 @@ import { cn, } from 'ui' import { Admonition } from 'ui-patterns' -import { CONNECTION_PARAMETERS, CONNECTION_TYPES, ConnectionType } from './Connect.constants' +import { + CONNECTION_PARAMETERS, + DATABASE_CONNECTION_TYPES, + DatabaseConnectionType, +} from './Connect.constants' import { CodeBlockFileHeader, ConnectionPanel } from './ConnectionPanel' import { getConnectionStrings, getPoolerTld } from './DatabaseSettings.utils' import examples, { Example } from './DirectConnectionExamples' @@ -49,7 +53,7 @@ export const DatabaseConnectionString = () => { const { ref: projectRef } = useParams() const state = useDatabaseSelectorStateSnapshot() - const [selectedTab, setSelectedTab] = useState('uri') + const [selectedTab, setSelectedTab] = useState('uri') const { data: poolingInfo, @@ -89,7 +93,7 @@ export const DatabaseConnectionString = () => { const connectionInfo = pluckObjectFields(selectedDatabase || emptyState, DB_FIELDS) const handleCopy = (id: string) => { - const labelValue = CONNECTION_TYPES.find((type) => type.id === id)?.label + const labelValue = DATABASE_CONNECTION_TYPES.find((type) => type.id === id)?.label sendEvent({ category: 'settings', action: 'copy_connection_string', @@ -152,9 +156,9 @@ export const DatabaseConnectionString = () => { // // } // }, [poolingConfiguration?.pool_mode]) - const lang = CONNECTION_TYPES.find((type) => type.id === selectedTab)?.lang ?? 'bash' + const lang = DATABASE_CONNECTION_TYPES.find((type) => type.id === selectedTab)?.lang ?? 'bash' const contentType = - CONNECTION_TYPES.find((type) => type.id === selectedTab)?.contentType ?? 'input' + DATABASE_CONNECTION_TYPES.find((type) => type.id === selectedTab)?.contentType ?? 'input' const example: Example | undefined = examples[selectedTab as keyof typeof examples] @@ -162,7 +166,7 @@ export const DatabaseConnectionString = () => { const exampleInstallCommands = example?.installCommands const examplePostInstallCommands = example?.postInstallCommands const hasCodeExamples = exampleFiles || exampleInstallCommands - const fileTitle = CONNECTION_TYPES.find((type) => type.id === selectedTab)?.fileTitle + const fileTitle = DATABASE_CONNECTION_TYPES.find((type) => type.id === selectedTab)?.fileTitle // [Refactor] See if we can do this in an immutable way, technically not a good practice to do this let stepNumber = 0 @@ -176,13 +180,15 @@ export const DatabaseConnectionString = () => { setSelectedTab(connectionType)} + onValueChange={(connectionType: DatabaseConnectionType) => + setSelectedTab(connectionType) + } > - {CONNECTION_TYPES.map((type) => ( + {DATABASE_CONNECTION_TYPES.map((type) => ( {type.label} diff --git a/apps/studio/components/interfaces/Home/Connect/content/androidkotlin/supabasekt/content.tsx b/apps/studio/components/interfaces/Connect/content/androidkotlin/supabasekt/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/androidkotlin/supabasekt/content.tsx rename to apps/studio/components/interfaces/Connect/content/androidkotlin/supabasekt/content.tsx index bcb90e3c9a5..9e1be901e59 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/androidkotlin/supabasekt/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/androidkotlin/supabasekt/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/astro/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/astro/supabasejs/content.tsx similarity index 91% rename from apps/studio/components/interfaces/Home/Connect/content/astro/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/astro/supabasejs/content.tsx index a88f865dde2..1ce13c63f32 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/astro/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/astro/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/drizzle/content.tsx b/apps/studio/components/interfaces/Connect/content/drizzle/content.tsx similarity index 92% rename from apps/studio/components/interfaces/Home/Connect/content/drizzle/content.tsx rename to apps/studio/components/interfaces/Connect/content/drizzle/content.tsx index de06febc660..5f33d70a759 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/drizzle/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/drizzle/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ connectionStringPooler }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/exporeactnative/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/exporeactnative/supabasejs/content.tsx similarity index 94% rename from apps/studio/components/interfaces/Home/Connect/content/exporeactnative/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/exporeactnative/supabasejs/content.tsx index 00fc5873977..fdae1dcdba1 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/exporeactnative/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/exporeactnative/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/flutter/supabaseflutter/content.tsx b/apps/studio/components/interfaces/Connect/content/flutter/supabaseflutter/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/flutter/supabaseflutter/content.tsx rename to apps/studio/components/interfaces/Connect/content/flutter/supabaseflutter/content.tsx index 8ae2c76a4d0..2eb7d6651ee 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/flutter/supabaseflutter/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/flutter/supabaseflutter/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/ionicangular/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/ionicangular/supabasejs/content.tsx similarity index 96% rename from apps/studio/components/interfaces/Home/Connect/content/ionicangular/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/ionicangular/supabasejs/content.tsx index 4a51e5f27a1..3beda75cbd0 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/ionicangular/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/ionicangular/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/ionicreact/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/ionicreact/supabasejs/content.tsx similarity index 95% rename from apps/studio/components/interfaces/Home/Connect/content/ionicreact/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/ionicreact/supabasejs/content.tsx index 193a6e6719d..0971e6979bc 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/ionicreact/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/ionicreact/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/nextjs/app/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/nextjs/app/supabasejs/content.tsx similarity index 96% rename from apps/studio/components/interfaces/Home/Connect/content/nextjs/app/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/nextjs/app/supabasejs/content.tsx index 2ff11fda1fc..e6d1be4fc26 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/nextjs/app/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/nextjs/app/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/nextjs/pages/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/nextjs/pages/supabasejs/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/nextjs/pages/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/nextjs/pages/supabasejs/content.tsx index f22c1474db0..1d97182d8df 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/nextjs/pages/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/nextjs/pages/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/nuxt/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/nuxt/supabasejs/content.tsx similarity index 92% rename from apps/studio/components/interfaces/Home/Connect/content/nuxt/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/nuxt/supabasejs/content.tsx index 6b0428be949..b07237bad6e 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/nuxt/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/nuxt/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/prisma/content.tsx b/apps/studio/components/interfaces/Connect/content/prisma/content.tsx similarity index 89% rename from apps/studio/components/interfaces/Home/Connect/content/prisma/content.tsx rename to apps/studio/components/interfaces/Connect/content/prisma/content.tsx index 1094ad05e24..56c5371b9db 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/prisma/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/prisma/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ connectionStringPooler }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/react/create-react-app/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/react/create-react-app/supabasejs/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/react/create-react-app/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/react/create-react-app/supabasejs/content.tsx index de20afa3284..c5b84f69027 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/react/create-react-app/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/react/create-react-app/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/react/vite/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/react/vite/supabasejs/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/react/vite/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/react/vite/supabasejs/content.tsx index f7b0c82ff92..465d8bf0978 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/react/vite/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/react/vite/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/refine/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/refine/supabasejs/content.tsx similarity index 95% rename from apps/studio/components/interfaces/Home/Connect/content/refine/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/refine/supabasejs/content.tsx index 6c5cd2ea118..c87fdff6bda 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/refine/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/refine/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/remix/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/remix/supabasejs/content.tsx similarity index 94% rename from apps/studio/components/interfaces/Home/Connect/content/remix/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/remix/supabasejs/content.tsx index 4487cf53afd..324eac69426 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/remix/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/remix/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/solidjs/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/solidjs/supabasejs/content.tsx similarity index 92% rename from apps/studio/components/interfaces/Home/Connect/content/solidjs/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/solidjs/supabasejs/content.tsx index 9ab97360e6f..9cd17ddd257 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/solidjs/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/solidjs/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/sveltekit/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/sveltekit/supabasejs/content.tsx similarity index 93% rename from apps/studio/components/interfaces/Home/Connect/content/sveltekit/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/sveltekit/supabasejs/content.tsx index 7b058645c07..5f326bfb8e1 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/sveltekit/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/sveltekit/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/swift/supabaseswift/content.tsx b/apps/studio/components/interfaces/Connect/content/swift/supabaseswift/content.tsx similarity index 92% rename from apps/studio/components/interfaces/Home/Connect/content/swift/supabaseswift/content.tsx rename to apps/studio/components/interfaces/Connect/content/swift/supabaseswift/content.tsx index 43ced097a49..83b5c4f0a39 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/swift/supabaseswift/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/swift/supabaseswift/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTriggers, ConnectTabTrigger, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/content/vuejs/supabasejs/content.tsx b/apps/studio/components/interfaces/Connect/content/vuejs/supabasejs/content.tsx similarity index 92% rename from apps/studio/components/interfaces/Home/Connect/content/vuejs/supabasejs/content.tsx rename to apps/studio/components/interfaces/Connect/content/vuejs/supabasejs/content.tsx index 5ab61da9c8a..9f10023c135 100644 --- a/apps/studio/components/interfaces/Home/Connect/content/vuejs/supabasejs/content.tsx +++ b/apps/studio/components/interfaces/Connect/content/vuejs/supabasejs/content.tsx @@ -1,11 +1,11 @@ -import type { ContentFileProps } from 'components/interfaces/Home/Connect/Connect.types' +import type { ContentFileProps } from 'components/interfaces/Connect/Connect.types' import { ConnectTabs, ConnectTabTrigger, ConnectTabTriggers, ConnectTabContent, -} from 'components/interfaces/Home/Connect/ConnectTabs' +} from 'components/interfaces/Connect/ConnectTabs' import { SimpleCodeBlock } from '@ui/components/SimpleCodeBlock' const ContentFile = ({ projectKeys }: ContentFileProps) => { diff --git a/apps/studio/components/interfaces/Home/Connect/Connect.constants.ts b/apps/studio/components/interfaces/Home/Connect/Connect.constants.ts deleted file mode 100644 index 4a801eea8ac..00000000000 --- a/apps/studio/components/interfaces/Home/Connect/Connect.constants.ts +++ /dev/null @@ -1,290 +0,0 @@ -export type ConnectionType = { - key: string - icon: string - label: string - guideLink?: string - children: ConnectionType[] -} - -export const FRAMEWORKS: ConnectionType[] = [ - { - key: 'nextjs', - label: 'Next.js', - icon: 'nextjs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nextjs', - children: [ - { - key: 'app', - label: 'App Router', - icon: '', - children: [ - { - key: 'supabasejs', - label: 'supabase-js', - icon: 'supabase', - children: [], - }, - ], - }, - { - key: 'pages', - label: 'Pages Router', - icon: '', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - ], - }, - { - key: 'remix', - label: 'Remix', - icon: 'remix', - guideLink: - 'https://supabase.com/docs/guides/auth/server-side/creating-a-client?framework=remix&environment=remix-loader', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'react', - label: 'React', - icon: 'react', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/reactjs', - children: [ - { - key: 'create-react-app', - label: 'Create React App', - icon: 'react', - children: [ - { - key: 'supabasejs', - label: 'supabase-js', - icon: 'supabase', - children: [], - }, - ], - }, - { - key: 'vite', - label: 'Vite', - icon: 'vite', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - ], - }, - { - key: 'nuxt', - label: 'Nuxt', - icon: 'nuxt', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'vuejs', - label: 'Vue.JS', - icon: 'vuejs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/vue', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - - { - key: 'sveltekit', - label: 'SvelteKit', - icon: 'sveltekit', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/sveltekit', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'solidjs', - label: 'Solid.js', - icon: 'solidjs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/solidjs', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'astro', - label: 'Astro', - icon: 'astro', - guideLink: 'https://docs.astro.build/en/guides/backend/supabase/', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'refine', - label: 'refine', - icon: 'refine', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/refine', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, -] - -export const MOBILES: ConnectionType[] = [ - { - key: 'exporeactnative', - label: 'Expo React Native', - icon: 'expo', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-expo-react-native', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'flutter', - label: 'Flutter', - icon: 'flutter', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-flutter', - children: [ - { - key: 'supabaseflutter', - label: 'supabase-flutter', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'ionicreact', - label: 'Ionic React', - icon: 'react', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-react', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'swift', - label: 'Swift', - icon: 'swift', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-swift', - children: [ - { - key: 'supabaseswift', - label: 'supabase-swift', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'androidkotlin', - label: 'Android Kotlin', - icon: 'kotlin', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-kotlin', - children: [ - { - key: 'supabasekt', - label: 'supabase-kt', - children: [], - icon: 'supabase', - }, - ], - }, - { - key: 'ionicangular', - label: 'Ionic Angular', - icon: 'ionic-angular', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-angular', - children: [ - { - key: 'supabasejs', - label: 'Supabase-js', - children: [], - icon: 'supabase', - }, - ], - }, -] - -export const ORMS: ConnectionType[] = [ - { - key: 'prisma', - label: 'Prisma', - icon: 'prisma', - guideLink: 'https://supabase.com/partners/integrations/prisma', - children: [], - }, - { - key: 'drizzle', - label: 'Drizzle', - icon: 'drizzle', - guideLink: - 'https://supabase.com/docs/guides/database/connecting-to-postgres#connecting-with-drizzle', - children: [], - }, -] - -export const CONNECTION_TYPES = [ - { key: 'direct', label: 'Connection String', obj: [] }, - { key: 'frameworks', label: 'App Frameworks', obj: FRAMEWORKS }, - { key: 'mobiles', label: 'Mobile Frameworks', obj: MOBILES }, - { key: 'orms', label: 'ORMs', obj: ORMS }, -] diff --git a/apps/studio/components/interfaces/Home/Connect/ConnectDropdown.tsx b/apps/studio/components/interfaces/Home/Connect/ConnectDropdown.tsx deleted file mode 100644 index 46b2ebe8cb0..00000000000 --- a/apps/studio/components/interfaces/Home/Connect/ConnectDropdown.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { Box, Check, ChevronDown } from 'lucide-react' -import { useState } from 'react' -import { - Button, - CommandEmpty_Shadcn_, - CommandGroup_Shadcn_, - CommandInput_Shadcn_, - CommandItem_Shadcn_, - CommandList_Shadcn_, - Command_Shadcn_, - PopoverContent_Shadcn_, - PopoverTrigger_Shadcn_, - Popover_Shadcn_, - cn, -} from 'ui' -import ConnectionIcon from './ConnectionIcon' - -interface ConnectDropdownProps { - state: string - updateState: (state: string) => void - label: string - items: any[] -} - -const ConnectDropdown = ({ - state, - updateState, - label, - - items, -}: ConnectDropdownProps) => { - const [open, setOpen] = useState(false) - - function onSelectLib(key: string) { - updateState(key) - setOpen(false) - } - - const selectedItem = items.find((item) => item.key === state) - - return ( - <> - -
- - {label} - - - - -
- - - - - No results found. - - {items.map((item) => ( - { - onSelectLib(item.key) - setOpen(false) - }} - className="flex gap-2 items-center" - > - {item.icon ? : } - {item.label} - - - ))} - - - - -
- - ) -} - -export default ConnectDropdown diff --git a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/LayoutHeader.tsx b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/LayoutHeader.tsx index 57bf82b8ec8..f26ffa3d5b5 100644 --- a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/LayoutHeader.tsx +++ b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/LayoutHeader.tsx @@ -3,7 +3,7 @@ import Link from 'next/link' import { useMemo } from 'react' import { useIsAssistantV2Enabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext' -import Connect from 'components/interfaces/Home/Connect/Connect' +import Connect from 'components/interfaces/Connect/Connect' import AssistantButton from 'components/layouts/AppLayout/AssistantButton' import BranchDropdown from 'components/layouts/AppLayout/BranchDropdown' import EnableBranchingButton from 'components/layouts/AppLayout/EnableBranchingButton/EnableBranchingButton' diff --git a/apps/studio/pages/project/[ref]/index.tsx b/apps/studio/pages/project/[ref]/index.tsx index 2fc3e07e9a2..18bacbd94cb 100644 --- a/apps/studio/pages/project/[ref]/index.tsx +++ b/apps/studio/pages/project/[ref]/index.tsx @@ -2,7 +2,7 @@ import { useEffect, useRef } from 'react' import { useParams } from 'common' import { ClientLibrary, ExampleProject } from 'components/interfaces/Home' -import Connect from 'components/interfaces/Home/Connect/Connect' +import Connect from 'components/interfaces/Connect/Connect' import { CLIENT_LIBRARIES, EXAMPLE_PROJECTS } from 'components/interfaces/Home/Home.constants' import ProjectUsageSection from 'components/interfaces/Home/ProjectUsageSection' import { SecurityStatus } from 'components/interfaces/Home/SecurityStatus'