perspective ctx menu

This commit is contained in:
Jan Prochazka
2022-08-05 19:55:14 +02:00
parent 7dc7af0cdb
commit 25d2c129cd
6 changed files with 96 additions and 49 deletions

View File

@@ -0,0 +1,51 @@
import { ChangePerspectiveConfigFunc, PerspectiveConfig, PerspectiveTreeNode } from 'dbgate-datalib';
import { showModal } from '../modals/modalTools';
import CustomJoinModal from './CustomJoinModal.svelte';
interface PerspectiveNodeMenuProps {
node: PerspectiveTreeNode;
conid: string;
database: string;
root: PerspectiveTreeNode;
config: PerspectiveConfig;
setConfig: ChangePerspectiveConfigFunc;
}
export function getPerspectiveNodeMenu(props: PerspectiveNodeMenuProps) {
const { node, conid, database, root, config, setConfig } = props;
const customJoin = node.customJoinConfig;
const filterInfo = node.filterInfo;
return [
filterInfo && {
text: 'Add to filter',
onClick: () =>
setConfig(cfg => ({
...cfg,
filterInfos: {
...cfg.filterInfos,
[node.uniqueName]: filterInfo,
},
})),
},
customJoin && {
text: 'Remove custom join',
onClick: () =>
setConfig(cfg => ({
...cfg,
customJoins: (cfg.customJoins || []).filter(x => x.joinid != customJoin.joinid),
})),
},
customJoin && {
text: 'Edit custom join',
onClick: () =>
showModal(CustomJoinModal, {
config,
setConfig,
conid,
database,
root,
editValue: customJoin,
}),
},
];
}