From 63eb19fd02e9fc2eb679fd0c5e935378c63f619f Mon Sep 17 00:00:00 2001 From: romantarkin Date: Wed, 23 Jul 2025 16:19:07 +0500 Subject: [PATCH] version --- .../src/modals/CreateTemplateVersionModal.js | 47 ++++ frontend/src/pages/TemplateVersionsPage.js | 207 ++++++++++++++++++ mail-service/src/index.js | 14 +- 3 files changed, 266 insertions(+), 2 deletions(-) create mode 100644 frontend/src/modals/CreateTemplateVersionModal.js create mode 100644 frontend/src/pages/TemplateVersionsPage.js diff --git a/frontend/src/modals/CreateTemplateVersionModal.js b/frontend/src/modals/CreateTemplateVersionModal.js new file mode 100644 index 0000000..d35f7f3 --- /dev/null +++ b/frontend/src/modals/CreateTemplateVersionModal.js @@ -0,0 +1,47 @@ +import React, { useState, useEffect } from 'react'; +import Modal from './Modal'; +import styles from '../styles/TemplateModal.module.css'; + +export default function CreateTemplateVersionModal({ isOpen, onClose, loading, onSave, initial }) { + const [subject, setSubject] = useState(initial?.subject || ''); + const [bodyHtml, setBodyHtml] = useState(initial?.body_html || ''); + const [bodyText, setBodyText] = useState(initial?.body_text || ''); + + useEffect(() => { + if (initial) { + setSubject(initial.subject || ''); + setBodyHtml(initial.body_html || ''); + setBodyText(initial.body_text || ''); + } else { + setSubject(''); + setBodyHtml(''); + setBodyText(''); + } + }, [initial, isOpen]); + + const handleSubmit = (e) => { + e.preventDefault(); + onSave({ subject, body_html: bodyHtml, body_text: bodyText }); + }; + + return ( + +

{initial ? 'Редактировать версию' : 'Добавить версию шаблона'}

+
+ +