Files
dbgate/packages/web/src/modals/modalTools.ts
2024-11-21 14:32:05 +01:00

27 lines
755 B
TypeScript

import { openedModals } from '../stores';
import { get } from 'svelte/store';
import uuidv1 from 'uuid/v1';
import _ from 'lodash';
import invalidateCommands from '../commands/invalidateCommands';
export function showModal(component, props = {}) {
const modalId = uuidv1();
openedModals.update(x => [...x, { component, modalId, props }]);
invalidateCommands();
}
export function closeModal(modalId) {
openedModals.update(x => x.filter(y => y.modalId != modalId));
invalidateCommands();
}
export function closeCurrentModal() {
openedModals.update(modals => modals.slice(0, modals.length - 1));
invalidateCommands();
}
export function getActiveModalId() {
const modals = get(openedModals);
return modals[modals.length - 1]?.modalId;
}