/* genericModal.tsx - ESP3D WebUI component file Copyright (c) 2021 Luc LEBOSSE. All rights reserved. This code is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with This code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ import { useUiContextFn } from "../../contexts" import type { ShowModalParams, ButtonConfig } from "../../types/modals.types" const showModal = ({ modals, title, button1, button2, content, icon, id, hideclose, overlay, }: ShowModalParams): void => { const defaultCb1 = () => { useUiContextFn.haptic() if (button1 && button1.noclose != true) modals.removeModal(modals.getModalIndex(id)) if (button1 && button1.cb) button1.cb() } const defaultCb2 = () => { useUiContextFn.haptic() if (button2 && button2.noclose != true) modals.removeModal(modals.getModalIndex(id)) if (button2 && button2.cb) button2.cb() } if (modals.getModalIndex(id) == -1) modals.addModal({ id, title: ( ), content: content, footer: (
{button1 && ( )} {button2 && ( )}
), overlay: overlay, hideclose: hideclose, }) } export { showModal } export type { ShowModalParams, ButtonConfig } from "../../types/modals.types"