UNPKG

@nestbotics/nct_frontend_common_components

Version:

A collection of reusable React components with theme management and styling utilities

191 lines (190 loc) 6.47 kB
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import { useState, useEffect } from 'react'; import { useTheme } from "@mui/material"; import { tokens } from "../../theme/Theme"; // Optional toast import - fallback to console if not available var toast; try { toast = require('react-hot-toast').default; } catch (e) { toast = { success: function success(message) { return console.log('Success:', message); }, error: function error(message) { return console.error('Error:', message); }, loading: function loading(message) { return console.log('Loading:', message); } }; } import React from 'react'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; function AlertPopUp(_ref) { var deleteItem = _ref.deleteItem, params = _ref.params, setParams = _ref.setParams, data = _ref.data, onClose = _ref.onClose; var theme = useTheme(); var colors = tokens(theme.palette.mode); var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setIsOpen = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), isChecked = _useState4[0], setIsChecked = _useState4[1]; useEffect(function () { if (deleteItem) { setIsOpen(true); } else { setIsOpen(false); } }, [deleteItem]); var handleClose = function handleClose() { setIsOpen(false); setIsChecked(false); onClose(); // Notify parent to reset state }; var handleDelete = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(params) { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: console.log("params", params); _context.prev = 1; if (!(data.actionbtn === 'Start')) { _context.next = 9; break; } if (!deleteItem) { _context.next = 7; break; } _context.next = 6; return toast.promise(deleteItem(params)); case 6: handleClose(); case 7: _context.next = 21; break; case 9: if (!(data.actionbtn === 'Delete')) { _context.next = 16; break; } if (!deleteItem) { _context.next = 14; break; } _context.next = 13; return deleteItem(params); case 13: handleClose(); case 14: _context.next = 21; break; case 16: if (!(data.actionbtn === 'Cancel')) { _context.next = 21; break; } if (!deleteItem) { _context.next = 21; break; } _context.next = 20; return deleteItem(params); case 20: handleClose(); case 21: _context.next = 26; break; case 23: _context.prev = 23; _context.t0 = _context["catch"](1); console.error("Error:", _context.t0); case 26: handleClose(); case 27: case "end": return _context.stop(); } }, _callee, null, [[1, 23]]); })); return function handleDelete(_x) { return _ref2.apply(this, arguments); }; }(); var handleCheckboxChange = function handleCheckboxChange(e) { setIsChecked(e.target.checked); }; return /*#__PURE__*/_jsx("div", { children: isOpen && /*#__PURE__*/_jsx("div", { className: "fixed inset-0 flex items-center justify-center bg-gray-800 bg-opacity-65 z-50", children: /*#__PURE__*/_jsxs("div", { className: "h-[26%] rounded-lg shadow-lg w-full max-w-md relative", style: { backgroundColor: colors.primary[400] }, children: [/*#__PURE__*/_jsx("div", { className: "bg-[#5b3a91] text-white text-center rounded-lg absolute top-[-8px] left-[21%] transform -translate-x-1/2", style: { clipPath: 'polygon(0 0, 100% 0, 90% 100%, 10% 100%)', width: 'fit-content', padding: '10px 25px' }, children: /*#__PURE__*/_jsx("h2", { className: "text-[14px] text-white font-semibold", children: data.event_name }) }), /*#__PURE__*/_jsxs("div", { className: "pl-[20px] pt-[15px] h-full flex flex-col gap-[10px] justify-center items-baseline", children: [/*#__PURE__*/_jsx("p", { className: "text-gray-700 mb-4 text-md w-full pl-1", style: { color: colors.primary[100] }, children: data.description }), /*#__PURE__*/_jsxs("div", { className: "flex items-center mb-4", children: [/*#__PURE__*/_jsx("input", { type: "checkbox", id: "confirm-delete", checked: isChecked, onChange: handleCheckboxChange, className: "mr-2" }), /*#__PURE__*/_jsx("label", { htmlFor: "confirm-delete", className: "text-md", style: { color: colors.primary[100] }, children: data.checkbox })] }), /*#__PURE__*/_jsxs("div", { className: "flex justify-end pl-9", children: [/*#__PURE__*/_jsx("button", { className: "bg-gray-300 hover:bg-gray-400 text-slate-700 font-bold py-2 px-4 rounded mr-2", onClick: handleClose, children: "Cancel" }), /*#__PURE__*/_jsx("button", { className: "bg-[#5b3a91] hover:bg-[#5b3a91e0] text-white font-bold py-2 px-4 rounded ".concat(isChecked ? '' : 'opacity-50 cursor-not-allowed'), disabled: !isChecked, onClick: function onClick() { return handleDelete(params); }, children: data.actionbtn })] })] })] }) }) }); } export default AlertPopUp;