Skip to content
Snippets Groups Projects
MonthlyNews.tsx 1.83 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { ChangeEvent } from 'react'
    import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    import { convertStringToEditorState } from '../../utils/editorStateManagment'
    import CustomEditor from '../Newsletter/CustomEditor'
    import { ContentItems } from '../Newsletter/Newsletter'
    
    import './monthlyNews.scss'
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
    
    interface MonthlyNewsProps {
    
      onSave: () => Promise<void>
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      onCancel: () => void
    
      title: string
      content: string
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      handleChange: (
        value: string,
    
        type: 'info' | 'title' | 'content' | 'question' | 'link' | 'subject'
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      ) => void
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      onDelete: (target: ContentItems) => void
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
    }
    const MonthlyNews: React.FC<MonthlyNewsProps> = ({
      onSave,
      onCancel,
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      handleChange,
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
    }: MonthlyNewsProps) => {
    
      const handleChangeTitle = (e: ChangeEvent<HTMLInputElement>) => {
        handleChange(e.target.value, 'title')
      }
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      return (
    
        <div className="monthlyNews">
    
          <h2>Nouveautés du mois (Optionnel)</h2>
    
          <p className="title">Titre</p>
          <input
            type="text"
            className="input-dark"
            placeholder="Par défaut : Les nouveautés du service"
            value={title}
            onChange={handleChangeTitle}
          />
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
          <div>
    
            <p className="title">Contenu</p>
    
                baseState={convertStringToEditorState(content)}
    
                handleChange={handleChange}
    
                editorType="content"
    
            <div className="buttons">
              <button className="btnCancel" onClick={onCancel}>
                Annuler
              </button>
              <button className="btnValid" onClick={onSave}>
                Sauvegarder
              </button>
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
              <button className="btnDelete" onClick={() => onDelete('monthlyNews')}>
    
                Supprimer
              </button>
            </div>
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
          </div>
    
    Guilhem CARRON's avatar
    Guilhem CARRON committed
      )
    }
    
    export default MonthlyNews