templates.tsx44 lines · main
1import { useParams } from 'next/navigation'
2import { useRouter } from 'next/router'
3import { useEffect } from 'react'
4
5import SQLTemplates from '@/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates'
6import DefaultLayout from '@/components/layouts/DefaultLayout'
7import { EditorBaseLayout } from '@/components/layouts/editors/EditorBaseLayout'
8import SQLEditorLayout from '@/components/layouts/SQLEditorLayout/SQLEditorLayout'
9import { SQLEditorMenu } from '@/components/layouts/SQLEditorLayout/SQLEditorMenu'
10import { createTabId, useTabsStateSnapshot } from '@/state/tabs'
11import type { NextPageWithLayout } from '@/types'
12
13const SqlTemplates: NextPageWithLayout = () => {
14 const router = useRouter()
15 const ref = useParams<{ ref: string }>()?.ref
16 const tabs = useTabsStateSnapshot()
17
18 useEffect(() => {
19 if (!router.isReady) return
20
21 const tabId = createTabId('sql', { id: 'templates' })
22 tabs.addTab({
23 id: tabId,
24 type: 'sql',
25 label: 'Templates',
26 metadata: {
27 sqlId: 'templates',
28 name: 'templates',
29 },
30 })
31 }, [router.isReady, ref])
32
33 return <SQLTemplates />
34}
35
36SqlTemplates.getLayout = (page) => (
37 <DefaultLayout>
38 <EditorBaseLayout productMenu={<SQLEditorMenu />} product="SQL Editor">
39 <SQLEditorLayout>{page}</SQLEditorLayout>
40 </EditorBaseLayout>
41 </DefaultLayout>
42)
43
44export default SqlTemplates