mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-20 03:06:00 +00:00
48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import _ from 'lodash';
|
|
import { getCurrentDatabase } from '../stores';
|
|
import getConnectionLabel from '../utility/getConnectionLabel';
|
|
import openNewTab from '../utility/openNewTab';
|
|
|
|
export default function newQuery({
|
|
tabComponent = 'QueryTab',
|
|
icon = 'img sql-file',
|
|
title = undefined,
|
|
initialData = undefined,
|
|
multiTabIndex = undefined,
|
|
...props
|
|
} = {}) {
|
|
const currentDb = getCurrentDatabase();
|
|
const connection = currentDb?.connection || {};
|
|
const database = currentDb?.name;
|
|
|
|
const tooltip = `${getConnectionLabel(connection)}\n${database}`;
|
|
|
|
openNewTab(
|
|
{
|
|
title: title || 'Query #',
|
|
icon,
|
|
tooltip,
|
|
tabComponent,
|
|
multiTabIndex,
|
|
props: {
|
|
...props,
|
|
conid: connection._id,
|
|
database,
|
|
},
|
|
},
|
|
{ editor: initialData }
|
|
);
|
|
}
|
|
|
|
export function newQueryDesign() {
|
|
return newQuery({ tabComponent: 'QueryDesignTab', icon: 'img query-design' });
|
|
}
|
|
|
|
export function newDiagram() {
|
|
return newQuery({ tabComponent: 'DiagramTab', icon: 'img diagram', title: 'Diagram #' });
|
|
}
|
|
|
|
export function newPerspective() {
|
|
return newQuery({ tabComponent: 'PerspectiveTab', icon: 'img perspective', title: 'Perspective #' });
|
|
}
|