Files
Gildas Garcia 7f1298e35e chore: dead code cleanup (#47129)
## Problem

We have many unused files, left overs from features refactoring

## Solution

- Remove unused files
- Move some files closer to their usage

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Removed multiple legacy Studio UI components and placeholders to
streamline the interface (including onboarding panels, navigation
elements, docs layout helpers, and various UI building blocks).
* **UI Updates**
* Updated the layout’s API keys section to use the Project-specific
presentation.
* **Maintenance**
* Adjusted internal sourcing for documentation tab menu logic without
changing visible behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-22 10:36:21 +02:00

127 lines
3.2 KiB
TypeScript

import { ArrowUpRight, Book, BookOpen } from 'lucide-react'
import SVG from 'react-inlinesvg'
import type { ProductMenuGroup } from '@/components/ui/ProductMenu/ProductMenu.types'
import { BASE_PATH, DOCS_URL } from '@/lib/constants'
export const getActivePage = (params: {
page?: string
resource?: string
rpc?: string
}): string => {
const { page, resource, rpc } = params
if (!page && !resource && !rpc) return 'introduction'
return (page || rpc || resource) as string
}
export const generateDocsMenu = (
ref: string,
tables: Array<string>,
functions: Array<string>,
flags?: { authEnabled: boolean },
basePath?: string
): Array<ProductMenuGroup> => {
const docsBasePath = basePath ?? `/project/${ref}/integrations/data_api/docs`
return [
{
title: 'Getting Started',
items: [
{ name: 'Introduction', key: 'introduction', url: docsBasePath, items: [] },
{
name: 'Authentication',
key: 'auth',
url: `${docsBasePath}?page=auth`,
items: [],
},
...(flags?.authEnabled
? [
{
name: 'User Management',
key: 'users-management',
url: `${docsBasePath}?page=users-management`,
items: [],
},
]
: []),
],
},
{
title: 'Tables and Views',
key: 'tables',
items: [
{
name: 'Introduction',
key: 'tables-intro',
url: `${docsBasePath}?page=tables-intro`,
items: [],
},
...tables.sort().map((table) => {
return {
name: table,
key: table,
url: `${docsBasePath}?resource=${table}`,
items: [],
}
}),
],
},
{
title: 'Functions',
key: 'functions',
items: [
{
name: 'Introduction',
key: 'rpc-intro',
url: `${docsBasePath}?page=rpc-intro`,
items: [],
},
...functions.map((fn) => {
return { name: fn, key: fn, url: `${docsBasePath}?rpc=${fn}`, items: [] }
}),
],
},
{
title: 'GraphQL',
items: [
{
name: 'GraphiQL',
key: 'graphiql',
url: `/project/${ref}/integrations/graphiql`,
icon: (
<SVG
src={`${BASE_PATH}/img/graphql.svg`}
style={{ width: `${16}px`, height: `${16}px` }}
className="text-foreground"
preProcessor={(code) => code.replace(/svg/, 'svg class="m-auto text-color-inherit"')}
/>
),
items: [],
rightIcon: <ArrowUpRight strokeWidth={1} className="h-4 w-4" />,
},
],
},
{
title: 'More Resources',
items: [
{
name: 'Guides',
key: 'guides',
url: DOCS_URL,
icon: <Book size={14} strokeWidth={2} />,
items: [],
isExternal: true,
},
{
name: 'API Reference',
key: 'api-reference',
url: `${DOCS_URL}/guides/api`,
icon: <BookOpen size={14} strokeWidth={2} />,
items: [],
isExternal: true,
},
],
},
]
}