diff --git a/src/main/frontend/components/administration/NotificationManagement.tsx b/src/main/frontend/components/administration/NotificationManagement.tsx index ba05645..693b9cd 100644 --- a/src/main/frontend/components/administration/NotificationManagement.tsx +++ b/src/main/frontend/components/administration/NotificationManagement.tsx @@ -1,29 +1,14 @@ import React, {useEffect, useState} from "react"; import withConfigPage from "Frontend/components/administration/withConfigPage"; -import * as Yup from 'yup'; import ConfigFormField from "Frontend/components/administration/ConfigFormField"; import Section from "Frontend/components/general/Section"; -import { - Button, - Card, - Chip, - Link, - Modal, - ModalBody, - ModalContent, - ModalFooter, - ModalHeader, - Textarea, - Tooltip, - useDisclosure -} from "@nextui-org/react"; +import {Button, Card, Tooltip, useDisclosure} from "@nextui-org/react"; import {MessageTemplateEndpoint, NotificationEndpoint} from "Frontend/generated/endpoints"; import {toast} from "sonner"; import {PaperPlaneRight, Pencil} from "@phosphor-icons/react"; import MessageTemplateDto from "Frontend/generated/de/grimsi/gameyfin/notifications/templates/MessageTemplateDto"; -import TemplateType from "Frontend/generated/de/grimsi/gameyfin/notifications/templates/TemplateType"; -import {Form, Formik} from "formik"; -import Input from "Frontend/components/general/Input"; +import SendTestNotificationModal from "Frontend/components/administration/notifications/SendTestNotificationModal"; +import EditTemplateModal from "Frontend/components/administration/notifications/EditTemplateModel"; function NotificationManagementLayout({getConfig, getConfigs, formik}: any) { @@ -31,8 +16,6 @@ function NotificationManagementLayout({getConfig, getConfigs, formik}: any) { const testNotificationModal = useDisclosure(); const [availableTemplates, setAvailableTemplates] = useState([]); const [selectedTemplate, setSelectedTemplate] = useState(null); - const [templateContent, setTemplateContent] = useState(""); - const [defaultPlaceholders, setDefaultPlaceholders] = useState([]); useEffect(() => { MessageTemplateEndpoint.getAll().then((response: any) => { @@ -59,17 +42,6 @@ function NotificationManagementLayout({getConfig, getConfigs, formik}: any) { async function openEditor(template: MessageTemplateDto) { setSelectedTemplate(template); - - let templateContent = await MessageTemplateEndpoint.read(template.key, TemplateType.MJML); - let defaultPlaceholders = await MessageTemplateEndpoint.getDefaultPlaceholders(TemplateType.MJML); - setDefaultPlaceholders(defaultPlaceholders ? defaultPlaceholders as string[] : []); - - if (templateContent === undefined) { - toast.error("Can't read template content"); - return; - } - - setTemplateContent(templateContent); editorModal.onOpen(); } @@ -78,18 +50,6 @@ function NotificationManagementLayout({getConfig, getConfigs, formik}: any) { testNotificationModal.onOpen(); } - async function saveTemplate(template: MessageTemplateDto) { - await MessageTemplateEndpoint.save(template.key, TemplateType.MJML, templateContent); - } - - function generateValidationSchema(placeholders: string[]) { - const shape: { [key: string]: Yup.StringSchema } = {}; - placeholders.forEach(placeholder => { - shape[placeholder] = Yup.string().required(`Placeholder ${placeholder} is required`); - }); - return Yup.object().shape(shape); - } - return (
@@ -144,122 +104,19 @@ function NotificationManagementLayout({getConfig, getConfigs, formik}: any) {
- - - {(onClose) => ( - <> - Edit {selectedTemplate?.name} Template - -
- - - - - - - - - - - -
Required placeholders: -
- {selectedTemplate?.availablePlaceholders?.map((placeholder) => - {placeholder} - )} -
-
Optional placeholders: -
- {defaultPlaceholders.map((placeholder) => - {placeholder} - )} -
-
- Powered by mjml.io - -
-