From 456b6c792c6c6abdf211e26157720877540104e6 Mon Sep 17 00:00:00 2001 From: KarimTamani Date: Sun, 13 Sep 2026 18:29:50 +0100 Subject: [PATCH 1/3] Implement data validation, add identifier quoting to the generated SQL & fix prefered language lost after refreching --- src/components/combobox.tsx | 14 +-- src/components/command-menu.tsx | 2 +- src/components/date-picker.tsx | 27 ++++-- .../database/components/database-diagram.tsx | 16 ++-- .../relationship-controller/index.tsx | 2 +- .../relationship-accordion-content.tsx | 6 +- .../relationship-accordion-item.tsx | 9 +- .../relationship-accordion-trigger.tsx | 57 ++++++++--- .../db-controller/tables-controller/index.tsx | 12 +-- .../field/field-default-value.tsx | 17 ++-- .../table-accordion-item/field/field-item.tsx | 88 +++++++++++++---- .../table-accordion-item/field/field-list.tsx | 9 +- .../field/field-setting.tsx | 12 +-- .../table-accordion-item/index/index-item.tsx | 96 +++++++++++++++---- .../index/indexes-list.tsx | 25 +++-- .../table-accordion-content.tsx | 34 +++---- .../table-accordion-item.tsx | 8 +- .../table-accordion-trigger.tsx | 68 ++++++++++--- src/features/database/components/field.tsx | 17 ++-- .../database/components/rename-db.tsx | 14 ++- src/features/database/components/table.tsx | 36 ++++--- .../database}/hooks/use-highlighted-edges.tsx | 0 .../database/hooks/use-invalid-identifier.tsx | 70 ++++++++++++++ .../hooks/use-overlapping-tables.tsx | 0 .../hooks/use-relationship-to-edge.tsx | 0 .../database}/hooks/use-table-to-node.tsx | 28 +++--- .../database/modals/create-database-modal.tsx | 25 ++--- src/i18/index.ts | 7 +- src/i18/languages/ar.ts | 26 ++++- src/i18/languages/de.ts | 25 ++++- src/i18/languages/en.ts | 23 +++++ src/i18/languages/es.ts | 35 +++++-- src/i18/languages/fr.ts | 23 +++++ src/i18/languages/hi.ts | 34 +++++-- src/i18/languages/pt.ts | 37 +++++-- src/i18/languages/ru.ts | 35 ++++++- src/i18/languages/zh.ts | 27 +++++- src/lib/database.ts | 16 ++++ .../database-provider/database-context.ts | 2 +- .../database-provider/database-provider.tsx | 11 ++- src/utils/database.ts | 18 ++++ src/utils/import/base-sql-importer.ts | 63 +++++++----- .../render/database/base-sql-renderer.ts | 21 ++-- .../database/mssql-database-renderer.ts | 61 ++++++------ src/utils/render/database/oracle-renderer.ts | 34 +++---- .../database/sqlite-database-renderer.ts | 5 + 46 files changed, 883 insertions(+), 312 deletions(-) rename src/{ => features/database}/hooks/use-highlighted-edges.tsx (100%) create mode 100644 src/features/database/hooks/use-invalid-identifier.tsx rename src/{ => features/database}/hooks/use-overlapping-tables.tsx (100%) rename src/{ => features/database}/hooks/use-relationship-to-edge.tsx (100%) rename src/{ => features/database}/hooks/use-table-to-node.tsx (74%) diff --git a/src/components/combobox.tsx b/src/components/combobox.tsx index 1e5ed05..89561f8 100644 --- a/src/components/combobox.tsx +++ b/src/components/combobox.tsx @@ -19,7 +19,6 @@ import { PopoverTrigger, } from "@/components/ui/popover" - interface ComboboxProps { items: any[] @@ -28,13 +27,14 @@ interface ComboboxProps { selectedItem?: string; onSelectionChange?: (id: string) => void; className?: string; - isDisabled?: boolean + isDisabled?: boolean; + valueLength?: number } export const Combobox = (props: ComboboxProps) => { - const { items, label = "label", placeholder, onSelectionChange, selectedItem, className, isDisabled } = props; + const { items, label = "label", placeholder, onSelectionChange, selectedItem, className, isDisabled , valueLength } = props; const [query, setQuery] = React.useState(""); const [open, setOpen] = React.useState(false) @@ -51,10 +51,10 @@ export const Combobox = (props: ComboboxProps) => { React.useEffect(() => { if (open) - setQuery(""); + setQuery(""); }, [open]) - + return ( @@ -64,10 +64,10 @@ export const Combobox = (props: ComboboxProps) => { aria-expanded={open} className={cn("justify-between", className)} > -