UNPKG

@trap_stevo/legendarybuilderproreact-ui

Version:

The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton

173 lines (170 loc) 7.74 kB
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; var _excluded = ["modules", "formats", "placeholder", "inputContent", "onEditorUpdate", "editorContainerSettings", "editorSendButtonConfigurationSettings", "editorSendButtonTitleConfigurationSettings", "setSendButtonTitleProcessIndicator", "sendButtonTitleProcessIndicator", "sendButtonVisible", "sendButtonAction", "signedUser"]; import _regeneratorRuntime from "@babel/runtime/regenerator"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /* Created by Hassan Steven Compton. March 7, 2024. */ import React from 'react'; import { useState, useEffect } from 'react'; import ReactQuill, { Quill } from "react-quill"; import { HUDUniversalHUDUtilityManager } from "../HUDManagers/HUDUniversalHUDUtilityManager.js"; import "../HUDStyles/emailerFontSizes.css"; import "react-quill/dist/quill.snow.css"; import HUDTyper from "./HUDTyper.js"; function HUDEmailTextEditor(editorConfigurationSettings) { useEffect(function () { var Size = Quill["import"]('attributors/style/size'); Size.whitelist = ['8pt', '9pt', '10pt', '11pt', '12pt', '14pt', '16pt', '18pt', '20pt', '22pt', '24pt', '26pt', '28pt', '36pt', '48pt', '72pt', '96pt']; Quill.register(Size, true); }, []); var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), sendButtonHover = _useState2[0], setSendButtonHover = _useState2[1]; var _useState3 = useState(""), _useState4 = _slicedToArray(_useState3, 2), editorHtml = _useState4[0], setEditorHtml = _useState4[1]; var _useState5 = useState(""), _useState6 = _slicedToArray(_useState5, 2), subject = _useState6[0], setSubject = _useState6[1]; var editorModules = { toolbar: [[{ 'header': '1' }, { 'header': '2' }, { 'font': [] }], [{ size: ['8pt', '9pt', '10pt', '11pt', '12pt', '14pt', '16pt', '18pt', '20pt', '22pt', '24pt', '26pt', '28pt', '36pt', '48pt', '72pt', '96pt'] }], ['bold', 'italic', 'underline', 'strike', 'blockquote'], [{ 'list': 'ordered' }, { 'list': 'bullet' }, { 'indent': '-1' }, { 'indent': '+1' }], ['link', 'image', 'video'], ['clean']], clipboard: { matchVisual: false } }; var _editorConfigurationS = editorConfigurationSettings.modules, modules = _editorConfigurationS === void 0 ? editorModules : _editorConfigurationS, formats = editorConfigurationSettings.formats, placeholder = editorConfigurationSettings.placeholder, inputContent = editorConfigurationSettings.inputContent, onEditorUpdate = editorConfigurationSettings.onEditorUpdate, editorContainerSettings = editorConfigurationSettings.editorContainerSettings, editorSendButtonConfigurationSettings = editorConfigurationSettings.editorSendButtonConfigurationSettings, editorSendButtonTitleConfigurationSettings = editorConfigurationSettings.editorSendButtonTitleConfigurationSettings, setSendButtonTitleProcessIndicator = editorConfigurationSettings.setSendButtonTitleProcessIndicator, _editorConfigurationS2 = editorConfigurationSettings.sendButtonTitleProcessIndicator, sendButtonTitleProcessIndicator = _editorConfigurationS2 === void 0 ? "Send" : _editorConfigurationS2, _editorConfigurationS3 = editorConfigurationSettings.sendButtonVisible, sendButtonVisible = _editorConfigurationS3 === void 0 ? false : _editorConfigurationS3, sendButtonAction = editorConfigurationSettings.sendButtonAction, signedUser = editorConfigurationSettings.signedUser, rest = _objectWithoutProperties(editorConfigurationSettings, _excluded); var handleEditorUpdate = function handleEditorUpdate(html) { setEditorHtml(html); if (onEditorUpdate) { onEditorUpdate(html); } return; }; useEffect(function () { if (inputContent) { setEditorHtml(inputContent); } return function () {}; }, []); return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ReactQuill, _extends({ style: editorContainerSettings, value: editorHtml, onChange: handleEditorUpdate, modules: modules, formats: formats, placeholder: placeholder || "Write something..." }, rest)), sendButtonVisible && editorHtml.trim() !== "" ? /*#__PURE__*/React.createElement("div", { style: { position: "relative", display: "flex", height: "auto", width: "calc(100%)", borderRadius: "1rem", marginBottom: "0.69rem", marginLeft: "1rem", marginTop: "3rem" } }, /*#__PURE__*/React.createElement("div", { style: _objectSpread({ position: "relative", display: "flex", background: sendButtonHover ? "#cc0e00" : "rgba(0, 0, 0, 1)", transition: "background 1.69s ease-in, scale 0.269s ease-in", scale: sendButtonHover ? "1.4969" : "1", height: "auto", width: "auto", borderRadius: "1rem", marginBottom: "0.69rem", marginLeft: "1rem", marginTop: "0.69rem" }, editorSendButtonConfigurationSettings), onMouseLeave: function onMouseLeave() { setSendButtonHover(false); return; }, onMouseEnter: function onMouseEnter() { setSendButtonHover(true); return; }, onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setSendButtonHover(false); if (!(sendButtonAction !== undefined)) { _context.next = 4; break; } sendButtonAction(editorHTML); return _context.abrupt("return"); case 4: return _context.abrupt("return"); case 5: case "end": return _context.stop(); } }, _callee); })) }, /*#__PURE__*/React.createElement("label", { style: _objectSpread({ position: "relative", display: "flex", fontWeight: sendButtonHover ? "1169" : "869", transition: "font-size 0.869s ease-in-out", fontFamily: "ModeNine", fontSize: sendButtonHover ? "1.069rem" : "0.969rem", userSelect: "none", color: sendButtonHover ? "rgba(255, 255, 255, 1)" : "rgba(247, 247, 247, 1)", marginBottom: "0.569rem", marginRight: "2.569rem", marginLeft: "2.569rem", marginTop: "0.569rem" }, editorSendButtonTitleConfigurationSettings) }, /*#__PURE__*/React.createElement(HUDTyper, { speed: 7 }, sendButtonTitleProcessIndicator ? sendButtonTitleProcessIndicator : "Send")))) : /*#__PURE__*/React.createElement(React.Fragment, null)); } ; export default HUDEmailTextEditor;