From d9f031c9f95a980cd003dd68654de5aee241d3eb Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 13 Aug 2026 17:48:13 +0700 Subject: [PATCH] Fix stale closure --- .../interfaces/Explorer/QueryCell/index.tsx | 2 ++ .../components/interfaces/Explorer/QueryEditor.tsx | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/studio/components/interfaces/Explorer/QueryCell/index.tsx b/apps/studio/components/interfaces/Explorer/QueryCell/index.tsx index 3fb1a57e0f6..9553fa64262 100644 --- a/apps/studio/components/interfaces/Explorer/QueryCell/index.tsx +++ b/apps/studio/components/interfaces/Explorer/QueryCell/index.tsx @@ -19,8 +19,10 @@ export const QueryCell = ({ cell }: QueryCellProps) => { const snap = useNotebooksStateSnapshot() const currentNotebook = useCurrentNotebook() const cells = currentNotebook?.notebook.content?.cells ?? [] + const [sql, setSql] = useState(cell.unchecked_sql) const [result, setResult] = useState() + const title = cell.title ?? 'Untitled snippet' const display: QueryDisplay = { view: cell.view ?? 'table', diff --git a/apps/studio/components/interfaces/Explorer/QueryEditor.tsx b/apps/studio/components/interfaces/Explorer/QueryEditor.tsx index e4f63e7d76b..dc85d731fb8 100644 --- a/apps/studio/components/interfaces/Explorer/QueryEditor.tsx +++ b/apps/studio/components/interfaces/Explorer/QueryEditor.tsx @@ -63,12 +63,16 @@ export const QueryEditor = ({ onResultChange, onDisplayChange, }: QueryEditorProps) => { - const { data: project, isPending: isLoadingProject } = useSelectedProjectQuery() - const [showQuery, setShowQuery] = useState(true) const sqlRef = useLatest(sql) + const onSqlCommitRef = useLatest(onSqlCommit) + + const { data: project, isPending: isLoadingProject } = useSelectedProjectQuery() + const view = display?.view ?? 'table' const columns = Object.keys(result?.rows?.[0] ?? {}) + const [showQuery, setShowQuery] = useState(true) + const { mutate: executeSql, isPending: isExecuting } = useExecuteSqlMutation({ onSuccess: (data) => onResultChange({ rows: data.result }), onError: (error) => onResultChange({ error }), @@ -141,9 +145,7 @@ export const QueryEditor = ({ options={{ minimap: { enabled: false }, padding: { top: 8 } }} onInputChange={(value) => onSqlChange(value ?? '')} onMount={(editor) => { - if (onSqlCommit) { - editor.onDidBlurEditorWidget(() => onSqlCommit(sqlRef.current)) - } + editor.onDidBlurEditorWidget(() => onSqlCommitRef.current?.(sqlRef.current)) }} />