/
vshmidt
/
cloudbeaver
Обзор
Документация
Войти
/
vshmidt
/
cloudbeaver
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
devel
webapp/packages/plugin-sql-editor/src/useDataSource.ts
43 строки
1 KB
Alexey
refactor: migrate to pure esm CB-5684 (#2929)
21 сен 2024, 07:06
Не верифицирован
21 сен 2024, 07:06
6ad1488
Код
Авторство
О чём код?
/* * CloudBeaver - Cloud Database Manager * Copyright (C) 2020-2024 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 { useEffect } from 'react'; import { useService } from '@cloudbeaver/core-di'; import type { ISqlDataSource } from './SqlDataSource/ISqlDataSource.js'; import { SqlEditorService } from './SqlEditorService.js'; export function useDataSource(dataSource?: ISqlDataSource) { const sqlEditorService = useService(SqlEditorService); // TODO: getComputed skips update somehow ... const outdated = dataSource && (dataSource.isOutdated() || !dataSource.isLoaded()) && !dataSource.isLoading(); useEffect(() => { if (!outdated) { return; } if (!dataSource.exception || (Array.isArray(dataSource.exception) && !dataSource.exception.some(Boolean))) { if (!dataSource?.isLoading()) { dataSource.load(); } } }); const executionContextId = dataSource?.executionContext?.id; useEffect( () => () => { if (executionContextId !== undefined && dataSource?.executionContext?.id !== executionContextId) { sqlEditorService.destroyContext({ id: executionContextId, connectionId: '', projectId: '' }); } }, [executionContextId, dataSource], ); }