UNPKG

fastapi-rtk

Version:

A React component library for FastAPI in combination with FastAPI React Toolkit backend, built with Mantine, JsonForms, and Zustand.

61 lines (60 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const constants = require("fastapi-rtk/constants"); const core = require("@mantine/core"); const hooks = require("@mantine/hooks"); const React = require("react"); const CommonModal = require("../Modals/CommonModal.cjs"); const overlayProps = require("../Modals/overlayProps.cjs"); const useApi = require("../hooks/api/useApi.cjs"); const useForms = require("../hooks/api/useForms.cjs"); require("../Wrappers/Provider/Contexts/LangContext.cjs"); const useTranslation = require("../../../.external/cjs/react-i18next@15.7.3_i18next@25.5.2_react-dom@18.3.1_react@18.3.1_typescript@5.9.2/react-i18next/dist/es/useTranslation.cjs"); const DeleteDialog = ({ deleteText, onSuccess, onError, ...props }) => { const { refetch, refetchInfo, deleteEntry } = useApi.useApi(); const { t } = useTranslation.useTranslation(); const { opened, setOpened, getItem, reset, view, setView } = useForms.useForms("delete"); const [loading, setLoading] = hooks.useDebouncedState(false, constants.DEBOUNCE_LOADING_DELAY); const onReset = React.useCallback(() => { setOpened(false); }, [setOpened]); const onSubmit = React.useCallback( (e) => { e == null ? void 0 : e.preventDefault(); setLoading(true); deleteEntry(getItem()).then((res) => { onSuccess == null ? void 0 : onSuccess(res); refetch(); refetchInfo(); }).catch(onError).finally(() => { setLoading(false); setOpened(false); }); }, [setLoading, deleteEntry, getItem, onError, onSuccess, refetch, refetchInfo, setOpened] ); return /* @__PURE__ */ jsxRuntime.jsx( CommonModal.CommonModal, { view, setView, onReset, onSubmit, withTitleOptions: false, actionButtons: { resetButtonProps: { variant: "outline" }, submitButtonProps: { color: "red" } }, resetButtonText: t("Cancel"), buttonText: t("Delete"), buttonLoading: loading, size: "md", opened, onClose: () => setOpened(false), onExitTransitionEnd: reset, ...view === constants.VIEW_MODE.OVERLAY ? overlayProps.overlayProps : {}, ...props, title: props.title ?? t("Delete Item?"), children: deleteText ?? /* @__PURE__ */ jsxRuntime.jsx(core.Text, { children: t("Are you sure you want to delete this item?") }) } ); }; exports.DeleteDialog = DeleteDialog;