/* * CloudBeaver - Cloud Database Manager * Copyright (C) 2020-2026 DBeaver Corp and others * * Licensed under the Apache License, Version 2.0. * you may not use this file except in compliance with the License. */ import { observer } from 'mobx-react-lite'; import { Button, CommonDialogBody, CommonDialogFooter, CommonDialogHeader, CommonDialogWrapper, Fill, s, useClipboard, useResource, useS, useTranslate, } from '@cloudbeaver/core-blocks'; import { ConnectionDialectResource, type IConnectionInfoParams } from '@cloudbeaver/core-connections'; import type { DialogComponentProps } from '@cloudbeaver/core-dialogs'; import { useCodemirrorExtensions } from '@cloudbeaver/plugin-codemirror6'; import { SQLCodeEditor, useSqlDialectExtension } from '@cloudbeaver/plugin-sql-editor-codemirror'; import style from './ScriptPreviewDialog.module.css'; interface Payload { script: string; connectionKey: IConnectionInfoParams | null; onApply: () => Promise; } export const ScriptPreviewDialog = observer>(function ScriptPreviewDialog({ rejectDialog, resolveDialog, payload }) { const translate = useTranslate(); const copy = useClipboard(); const styles = useS(style); const dialect = useResource(ScriptPreviewDialog, ConnectionDialectResource, payload.connectionKey); const sqlDialect = useSqlDialectExtension(dialect.data); const extensions = useCodemirrorExtensions(); if (sqlDialect) { extensions.set(...sqlDialect); } const apply = async () => { try { await payload.onApply(); resolveDialog(); } catch {} }; return (
); });