Skip to content

Commit 1569eed

Browse files
committed
refactor the extensions driver
1 parent 7c9764e commit 1569eed

11 files changed

Lines changed: 61 additions & 36 deletions

File tree

src/app/(theme)/embed/dolt/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createMySQLExtensions } from "@/core/standard-extension";
55
import { IframeDoltDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import DoltExtension from "@/extensions/dolt";
@@ -14,7 +14,7 @@ export default function EmbedPageClient() {
1414

1515
const extensions = useMemo(() => {
1616
return new StudioExtensionManager([
17-
...createStandardExtensions(),
17+
...createMySQLExtensions(),
1818
new DoltExtension(),
1919
]);
2020
}, []);

src/app/(theme)/embed/mysql/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createMySQLExtensions } from "@/core/standard-extension";
55
import { IframeMySQLDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import { useSearchParams } from "next/navigation";
@@ -12,7 +12,7 @@ export default function EmbedPageClient() {
1212
const driver = useMemo(() => new IframeMySQLDriver(), []);
1313

1414
const extensions = useMemo(() => {
15-
return new StudioExtensionManager(createStandardExtensions());
15+
return new StudioExtensionManager(createMySQLExtensions());
1616
}, []);
1717

1818
const savedDocDriver = useMemo(() => {

src/app/(theme)/embed/postgres/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createPostgreSQLExtensions } from "@/core/standard-extension";
55
import { IframePostgresDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import { useSearchParams } from "next/navigation";
@@ -12,7 +12,7 @@ export default function EmbedPageClient() {
1212
const driver = useMemo(() => new IframePostgresDriver(), []);
1313

1414
const extensions = useMemo(() => {
15-
return new StudioExtensionManager(createStandardExtensions());
15+
return new StudioExtensionManager(createPostgreSQLExtensions());
1616
}, []);
1717

1818
const savedDocDriver = useMemo(() => {

src/app/(theme)/embed/sqlite/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createSQLiteExtensions } from "@/core/standard-extension";
55
import { IframeSQLiteDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import { useSearchParams } from "next/navigation";
@@ -12,7 +12,7 @@ export default function EmbedPageClient() {
1212
const driver = useMemo(() => new IframeSQLiteDriver(), []);
1313

1414
const extensions = useMemo(() => {
15-
return new StudioExtensionManager(createStandardExtensions());
15+
return new StudioExtensionManager(createSQLiteExtensions());
1616
}, []);
1717

1818
const savedDocDriver = useMemo(() => {

src/app/(theme)/embed/starbase/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createSQLiteExtensions } from "@/core/standard-extension";
55
import { IframeSQLiteDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import { useSearchParams } from "next/navigation";
@@ -21,7 +21,7 @@ export default function EmbedPageClient() {
2121
}, []);
2222

2323
const extensions = useMemo(() => {
24-
return new StudioExtensionManager(createStandardExtensions());
24+
return new StudioExtensionManager(createSQLiteExtensions());
2525
}, []);
2626

2727
useEffect(() => {

src/app/(theme)/embed/turso/page-client.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22
import { Studio } from "@/components/gui/studio";
33
import { StudioExtensionManager } from "@/core/extension-manager";
4-
import { createStandardExtensions } from "@/core/standard-extension";
4+
import { createSQLiteExtensions } from "@/core/standard-extension";
55
import { IframeSQLiteDriver } from "@/drivers/iframe-driver";
66
import ElectronSavedDocs from "@/drivers/saved-doc/electron-saved-doc";
77
import { useSearchParams } from "next/navigation";
@@ -26,7 +26,7 @@ export default function EmbedPageClient() {
2626
}, []);
2727

2828
const extensions = useMemo(() => {
29-
return new StudioExtensionManager(createStandardExtensions());
29+
return new StudioExtensionManager(createSQLiteExtensions());
3030
}, []);
3131

3232
useEffect(() => {

src/app/(theme)/playground/client/page-client.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
ToolbarSeparator,
2525
} from "@/components/gui/toolbar";
2626
import { StudioExtensionManager } from "@/core/extension-manager";
27-
import { createStandardExtensions } from "@/core/standard-extension";
27+
import { createSQLiteExtensions } from "@/core/standard-extension";
2828

2929
const SQLITE_FILE_EXTENSIONS =
3030
".db,.sdb,.sqlite,.db3,.s3db,.sqlite3,.sl3,.db2,.s2db,.sqlite2,.sl2";
@@ -249,15 +249,15 @@ export default function PlaygroundEditorBody({
249249
}, [driver, fileName, handler, nativeDriver]);
250250

251251
const extensions = useMemo(() => {
252-
return new StudioExtensionManager(createStandardExtensions());
252+
return new StudioExtensionManager(createSQLiteExtensions());
253253
}, []);
254254

255255
const dom = useMemo(() => {
256256
if (databaseLoading) {
257257
return (
258258
<div className="p-4">
259-
<LucideLoader className="w-12 h-12 animate-spin mb-2" />
260-
<h1 className="text-2xl font-bold mb-2">Loading Database</h1>
259+
<LucideLoader className="mb-2 h-12 w-12 animate-spin" />
260+
<h1 className="mb-2 text-2xl font-bold">Loading Database</h1>
261261
<p>
262262
Please wait. We are downloading:
263263
<br />
@@ -286,12 +286,12 @@ export default function PlaygroundEditorBody({
286286
<>
287287
<Script src="/sqljs/sql-wasm.js" onReady={onReady} />
288288
<ScreenDropZone onFileDrop={onFileDrop} />
289-
<div className="w-screen h-screen flex flex-col">
289+
<div className="flex h-screen w-screen flex-col">
290290
<div className="border-b p-1">
291291
<Toolbar>
292292
{fileName && (
293-
<div className="text-xs rounded bg-yellow-300 text-black flex gap-1 items-center p-2">
294-
<LucideFile className="w-4 h-4" />
293+
<div className="flex items-center gap-1 rounded bg-yellow-300 p-2 text-xs text-black">
294+
<LucideFile className="h-4 w-4" />
295295
<span>
296296
Editing <strong>{fileName}</strong>
297297
</span>
@@ -302,22 +302,22 @@ export default function PlaygroundEditorBody({
302302
<ToolbarButton
303303
text="Save"
304304
onClick={onSaveClicked}
305-
icon={<Save className="w-4 h-4" />}
305+
icon={<Save className="h-4 w-4" />}
306306
/>
307307
)}
308308

309309
<ToolbarButton
310310
text="Open"
311311
onClick={onOpenClicked}
312-
icon={<FolderOpenIcon className="w-4 h-4" />}
312+
icon={<FolderOpenIcon className="h-4 w-4" />}
313313
/>
314314

315315
{handler && (
316316
<>
317317
<ToolbarSeparator />
318318
<ToolbarButton
319319
text="Refresh"
320-
icon={<RefreshCcw className="w-4 h-4" />}
320+
icon={<RefreshCcw className="h-4 w-4" />}
321321
onClick={onReloadDatabase}
322322
/>
323323
</>

src/app/(theme)/playground/mysql/[roomName]/page-client.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { Studio } from "@/components/gui/studio";
33
import ServerLoadingAnimation from "@/components/icons/server-loading";
44
import { StudioExtensionManager } from "@/core/extension-manager";
5-
import { createStandardExtensions } from "@/core/standard-extension";
5+
import { createMySQLExtensions } from "@/core/standard-extension";
66
import MySQLPlaygroundDriver from "@/drivers/mysql/mysql-playground-driver";
77
import { useSearchParams } from "next/navigation";
88
import { useEffect, useMemo, useState } from "react";
@@ -24,7 +24,7 @@ export default function MySQLPlaygroundPageClient({
2424
}, [setReady, roomName]);
2525

2626
const extensions = useMemo(() => {
27-
return new StudioExtensionManager(createStandardExtensions());
27+
return new StudioExtensionManager(createMySQLExtensions());
2828
}, []);
2929

3030
// Create ping useeffect
@@ -40,7 +40,7 @@ export default function MySQLPlaygroundPageClient({
4040

4141
if (!isReady) {
4242
return (
43-
<div className="w-screen h-screen flex items-center justify-center flex-col gap-4">
43+
<div className="flex h-screen w-screen flex-col items-center justify-center gap-4">
4444
<ServerLoadingAnimation />
4545
<div>Setting up your database</div>
4646
</div>

src/components/gui/schema-sidebar-list.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@ export default function SchemaList({ search }: Readonly<SchemaListProps>) {
142142
(item?: DatabaseSchemaItem) => {
143143
const selectedName = item?.name;
144144
const isTable = item?.type === "table";
145-
// const isTrigger = item?.type === "trigger";
146145

147146
const createMenuSection = {
148147
title: "Create",
@@ -156,7 +155,7 @@ export default function SchemaList({ search }: Readonly<SchemaListProps>) {
156155
},
157156
},
158157
...extensions.getResourceCreateMenu(),
159-
],
158+
].filter(Boolean),
160159
};
161160

162161
const modificationSection = item
@@ -173,7 +172,7 @@ export default function SchemaList({ search }: Readonly<SchemaListProps>) {
173172
}
174173
: undefined,
175174
...extensions.getResourceContextMenu(item, "modification"),
176-
]
175+
].filter(Boolean)
177176
: [];
178177

179178
return [
@@ -261,10 +260,10 @@ export default function SchemaList({ search }: Readonly<SchemaListProps>) {
261260
});
262261
} else if (item.data.type === "trigger") {
263262
triggerEditorExtensionTab.open({
264-
schemaName: item.data.schemaName ?? '',
265-
name: item.name ?? '',
266-
tableName: item.data.tableName ?? ''
267-
})
263+
schemaName: item.data.schemaName ?? "",
264+
name: item.name ?? "",
265+
tableName: item.data.tableName ?? "",
266+
});
268267
} else if (item.data.type === "schema") {
269268
if (databaseDriver.getFlags().supportUseStatement) {
270269
databaseDriver

src/components/my-studio.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@ import { CollaborationBaseDriver } from "@/drivers/collaboration-driver-base";
55
import { Studio } from "./gui/studio";
66
import { SavedDocDriver } from "@/drivers/saved-doc/saved-doc-driver";
77
import { StudioExtensionManager } from "@/core/extension-manager";
8-
import { createStandardExtensions } from "@/core/standard-extension";
8+
import {
9+
createMySQLExtensions,
10+
createPostgreSQLExtensions,
11+
createSQLiteExtensions,
12+
createStandardExtensions,
13+
} from "@/core/standard-extension";
914

1015
interface MyStudioProps {
1116
name: string;
@@ -24,14 +29,23 @@ function MyStudioInternal({
2429
collabarator,
2530
}: MyStudioProps) {
2631
const router = useRouter();
32+
const dialet = driver.getFlags().dialect;
2733

2834
const goBack = useCallback(() => {
2935
router.push("/connect");
3036
}, [router]);
3137

3238
const extensions = useMemo(() => {
39+
if (dialet === "mysql") {
40+
return new StudioExtensionManager(createMySQLExtensions());
41+
} else if (dialet === "sqlite") {
42+
return new StudioExtensionManager(createSQLiteExtensions());
43+
} else if (dialet === "postgres") {
44+
return new StudioExtensionManager(createPostgreSQLExtensions());
45+
}
46+
3347
return new StudioExtensionManager(createStandardExtensions());
34-
}, []);
48+
}, [dialet]);
3549

3650
return (
3751
<Studio

0 commit comments

Comments
 (0)