diff --git a/src/components/Editing/Editing.tsx b/src/components/Editing/Editing.tsx
index df2e87c5c966efc664ea804fbc561fd95b739753..3d3b0aebe91b4396ba63393f35dcdd530db76972 100644
--- a/src/components/Editing/Editing.tsx
+++ b/src/components/Editing/Editing.tsx
@@ -1,260 +1,270 @@
-import React, { useCallback, useContext, useEffect, useState } from 'react'
-import DateSelector from '../DateSelector/DateSelector'
-import { NewsletterService } from '../../services/newsletter.service'
-import { UserContext, UserContextProps } from '../../hooks/userContext'
-import { IMonthlyNews } from '../../models/monthlyNews.model'
-import { IMonthlyInfo } from '../../models/monthlyInfo.model'
-import { IPoll } from '../../models/poll.model'
-import Poll from '../Poll/Poll'
-import MonthlyInfo from '../MonthlyInfo/MonthlyInfo'
-import MonthlyNews from '../MonthlyNews/MonthlyNews'
-import Loader from '../Loader/Loader'
-import Modal from '../Modal/Modal'
-import './editing.scss'
-
-export type ContentItems = 'monthlyInfo' | 'monthlyNews' | 'poll' | ''
-
-const Editing: React.FC = () => {
-  const [date, setDate] = useState<Date>(new Date())
-  const [info, setInfo] = useState<string>('')
-  const [title, setTitle] = useState<string>('')
-  const [imageURL, setImageURL] = useState<string>('')
-  const [content, setContent] = useState<string>('')
-  const [question, setQuestion] = useState<string>('')
-  const [link, setLink] = useState<string>('')
-  const [isTouched, setIsTouched] = useState<boolean>(false)
-  const [refreshData, setRefreshData] = useState(false)
-  const [isLoading, setisLoading] = useState<boolean>(false)
-  const [warningModal, setwarningModal] = useState<boolean>(false)
-  const [toDelete, settoDelete] = useState<ContentItems>('')
-  const { user }: Partial<UserContextProps> = useContext(UserContext)
-  const newsletterService = new NewsletterService()
-
-  const handleSaveMonthlyInfo = async (): Promise<void> => {
-    if (user) {
-      const newsletterService = new NewsletterService()
-      await newsletterService.saveMonthlyInfo(
-        date,
-        info,
-        imageURL,
-        user.xsrftoken
-      )
-      setIsTouched(false)
-    }
-  }
-
-  const handleSaveMonthlyNews = async (): Promise<void> => {
-    if (user) {
-      const newsletterService = new NewsletterService()
-      await newsletterService.saveMonthlyNews(
-        date,
-        title,
-        content,
-        user.xsrftoken
-      )
-      setIsTouched(false)
-    }
-  }
-  const handleSavePoll = async (): Promise<void> => {
-    if (user) {
-      await newsletterService.savePoll(date, question, link, user.xsrftoken)
-      setIsTouched(false)
-    }
-  }
-  const handleCancel = useCallback(() => {
-    setRefreshData(true)
-  }, [])
-
-  const handleDeleteMonthlyInfo = async (): Promise<void> => {
-    if (user) {
-      await newsletterService.deleteMonthlyInfo(date, user.xsrftoken)
-      setRefreshData(true)
-    }
-  }
-  const handleDeleteMonthlyNews = async (): Promise<void> => {
-    if (user) {
-      await newsletterService.deleteMonthlyNews(date, user.xsrftoken)
-      setRefreshData(true)
-    }
-  }
-  const handleDeletePoll = async (): Promise<void> => {
-    if (user) {
-      await newsletterService.deletePoll(date, user.xsrftoken)
-      setRefreshData(true)
-    }
-  }
-  const handleOpenDeleteModal = (target: ContentItems) => {
-    settoDelete(target)
-    setwarningModal(true)
-  }
-  const handleConfirmAlert = () => {
-    if (toDelete === 'monthlyInfo') {
-      handleDeleteMonthlyInfo()
-    }
-    if (toDelete === 'monthlyNews') {
-      handleDeleteMonthlyNews()
-    }
-    if (toDelete === 'poll') {
-      handleDeletePoll()
-    }
-    setwarningModal(false)
-  }
-
-  const isEmpty = (): boolean => {
-    if (
-      (info !== '' ||
-        title !== '' ||
-        content !== '' ||
-        question !== '' ||
-        imageURL !== '' ||
-        link !== '') &&
-      isTouched
-    ) {
-      return false
-    } else return true
-  }
-
-  const handleEditorChange = (
-    value: string,
-    type: 'info' | 'title' | 'content' | 'question' | 'link' | 'image'
-  ): void => {
-    setIsTouched(true)
-    if (type === 'info') {
-      setInfo(value)
-    }
-    if (type === 'title') {
-      setTitle(value)
-    }
-    if (type === 'content') {
-      setContent(value)
-    }
-    if (type === 'question') {
-      setQuestion(value)
-    }
-    if (type === 'link') {
-      setLink(value)
-    }
-    if (type === 'image') {
-      setImageURL(value)
-    }
-  }
-  const resetFields = useCallback(() => {
-    setImageURL('')
-    setInfo('')
-    setTitle('')
-    setContent('')
-    setLink('')
-    setQuestion('')
-  }, [])
-
-  useEffect(() => {
-    let subscribed = true
-    resetFields()
-    setisLoading(true)
-    async function getCurrentMonthlyNews() {
-      if (user) {
-        const newsletterService = new NewsletterService()
-        const montlhyInfo: IMonthlyInfo | null =
-          await newsletterService.getSingleMonthlyInfo(date, user.xsrftoken)
-        const montlhyNews: IMonthlyNews | null =
-          await newsletterService.getSingleMonthlyNews(date, user.xsrftoken)
-        const poll: IPoll | null = await newsletterService.getSinglePoll(
-          date,
-          user.xsrftoken
-        )
-        if (montlhyInfo) {
-          setInfo(montlhyInfo.info)
-          setImageURL(montlhyInfo.image)
-          setIsTouched(false)
-        }
-        if (montlhyNews) {
-          setTitle(montlhyNews.title)
-          setContent(montlhyNews.content)
-          setIsTouched(false)
-        }
-        if (poll) {
-          setLink(poll.link)
-          setQuestion(poll.question)
-          setIsTouched(false)
-        }
-      }
-      setisLoading(false)
-    }
-    if (subscribed) {
-      getCurrentMonthlyNews()
-    }
-    return () => {
-      subscribed = false
-      setRefreshData(false)
-    }
-  }, [date, user, refreshData, resetFields])
-
-  return (
-    <>
-      <div className="header">
-        <p className="title pagetitle">Édition de la newsletter</p>
-        <DateSelector date={date} setDate={setDate} isEmpty={isEmpty} />
-      </div>
-      {isLoading ? (
-        <Loader />
-      ) : (
-        <div className="content">
-          <MonthlyInfo
-            info={info}
-            onSave={handleSaveMonthlyInfo}
-            onCancel={handleCancel}
-            handleChange={handleEditorChange}
-            onDelete={handleOpenDeleteModal}
-            imageURL={imageURL}
-          />
-          <hr />
-          <MonthlyNews
-            title={title}
-            content={content}
-            onSave={handleSaveMonthlyNews}
-            onCancel={handleCancel}
-            handleChange={handleEditorChange}
-            onDelete={handleOpenDeleteModal}
-          />
-          <hr />
-          <Poll
-            question={question}
-            link={link}
-            onSave={handleSavePoll}
-            onCancel={handleCancel}
-            handleChange={handleEditorChange}
-            onDelete={handleOpenDeleteModal}
-          />
-        </div>
-      )}
-      {warningModal && (
-        <Modal>
-          <>
-            <div className="modal-text">
-              Etes-vous sûr de vouloir supprimer{' '}
-              {toDelete === 'monthlyInfo'
-                ? 'cette info mensuelle '
-                : toDelete === 'monthlyNews'
-                ? 'cette news mensuelle'
-                : 'ce sondage'}{' '}
-              ?
-            </div>
-            <div className="buttons">
-              <button
-                className="btnCancel"
-                onClick={() => setwarningModal(false)}
-              >
-                Annuler
-              </button>
-              <button className="btnValid" onClick={handleConfirmAlert}>
-                Continuer
-              </button>
-            </div>
-          </>
-        </Modal>
-      )}
-    </>
-  )
-}
-
-export default Editing
+import React, { useCallback, useContext, useEffect, useState } from 'react'
+import DateSelector from '../DateSelector/DateSelector'
+import { NewsletterService } from '../../services/newsletter.service'
+import { UserContext, UserContextProps } from '../../hooks/userContext'
+import { IMonthlyNews } from '../../models/monthlyNews.model'
+import { IMonthlyInfo } from '../../models/monthlyInfo.model'
+import { IPoll } from '../../models/poll.model'
+import Poll from '../Poll/Poll'
+import MonthlyInfo from '../MonthlyInfo/MonthlyInfo'
+import MonthlyNews from '../MonthlyNews/MonthlyNews'
+import Loader from '../Loader/Loader'
+import Modal from '../Modal/Modal'
+import './editing.scss'
+
+export type ContentItems = 'monthlyInfo' | 'monthlyNews' | 'poll' | ''
+
+const Editing: React.FC = () => {
+  // Fonctional rule :
+  // Display next month after the 5th of the current month
+  const getCurrentNewsletterDate = (): Date => {
+    let newsletterDate = new Date()
+    if (newsletterDate.getDate() > 5) {
+      newsletterDate.setMonth(newsletterDate.getMonth() + 1)
+    }
+    return newsletterDate
+  }
+
+  const [date, setDate] = useState<Date>(getCurrentNewsletterDate())
+  const [info, setInfo] = useState<string>('')
+  const [title, setTitle] = useState<string>('')
+  const [imageURL, setImageURL] = useState<string>('')
+  const [content, setContent] = useState<string>('')
+  const [question, setQuestion] = useState<string>('')
+  const [link, setLink] = useState<string>('')
+  const [isTouched, setIsTouched] = useState<boolean>(false)
+  const [refreshData, setRefreshData] = useState(false)
+  const [isLoading, setisLoading] = useState<boolean>(false)
+  const [warningModal, setwarningModal] = useState<boolean>(false)
+  const [toDelete, settoDelete] = useState<ContentItems>('')
+  const { user }: Partial<UserContextProps> = useContext(UserContext)
+  const newsletterService = new NewsletterService()
+
+  const handleSaveMonthlyInfo = async (): Promise<void> => {
+    if (user) {
+      const newsletterService = new NewsletterService()
+      await newsletterService.saveMonthlyInfo(
+        date,
+        info,
+        imageURL,
+        user.xsrftoken
+      )
+      setIsTouched(false)
+    }
+  }
+
+  const handleSaveMonthlyNews = async (): Promise<void> => {
+    if (user) {
+      const newsletterService = new NewsletterService()
+      await newsletterService.saveMonthlyNews(
+        date,
+        title,
+        content,
+        user.xsrftoken
+      )
+      setIsTouched(false)
+    }
+  }
+  const handleSavePoll = async (): Promise<void> => {
+    if (user) {
+      await newsletterService.savePoll(date, question, link, user.xsrftoken)
+      setIsTouched(false)
+    }
+  }
+  const handleCancel = useCallback(() => {
+    setRefreshData(true)
+  }, [])
+
+  const handleDeleteMonthlyInfo = async (): Promise<void> => {
+    if (user) {
+      await newsletterService.deleteMonthlyInfo(date, user.xsrftoken)
+      setRefreshData(true)
+    }
+  }
+  const handleDeleteMonthlyNews = async (): Promise<void> => {
+    if (user) {
+      await newsletterService.deleteMonthlyNews(date, user.xsrftoken)
+      setRefreshData(true)
+    }
+  }
+  const handleDeletePoll = async (): Promise<void> => {
+    if (user) {
+      await newsletterService.deletePoll(date, user.xsrftoken)
+      setRefreshData(true)
+    }
+  }
+  const handleOpenDeleteModal = (target: ContentItems) => {
+    settoDelete(target)
+    setwarningModal(true)
+  }
+  const handleConfirmAlert = () => {
+    if (toDelete === 'monthlyInfo') {
+      handleDeleteMonthlyInfo()
+    }
+    if (toDelete === 'monthlyNews') {
+      handleDeleteMonthlyNews()
+    }
+    if (toDelete === 'poll') {
+      handleDeletePoll()
+    }
+    setwarningModal(false)
+  }
+
+  const isEmpty = (): boolean => {
+    if (
+      (info !== '' ||
+        title !== '' ||
+        content !== '' ||
+        question !== '' ||
+        imageURL !== '' ||
+        link !== '') &&
+      isTouched
+    ) {
+      return false
+    } else return true
+  }
+
+  const handleEditorChange = (
+    value: string,
+    type: 'info' | 'title' | 'content' | 'question' | 'link' | 'image'
+  ): void => {
+    setIsTouched(true)
+    if (type === 'info') {
+      setInfo(value)
+    }
+    if (type === 'title') {
+      setTitle(value)
+    }
+    if (type === 'content') {
+      setContent(value)
+    }
+    if (type === 'question') {
+      setQuestion(value)
+    }
+    if (type === 'link') {
+      setLink(value)
+    }
+    if (type === 'image') {
+      setImageURL(value)
+    }
+  }
+  const resetFields = useCallback(() => {
+    setImageURL('')
+    setInfo('')
+    setTitle('')
+    setContent('')
+    setLink('')
+    setQuestion('')
+  }, [])
+
+  useEffect(() => {
+    let subscribed = true
+    resetFields()
+    setisLoading(true)
+    async function getCurrentMonthlyNews() {
+      if (user) {
+        const newsletterService = new NewsletterService()
+        const montlhyInfo: IMonthlyInfo | null =
+          await newsletterService.getSingleMonthlyInfo(date, user.xsrftoken)
+        const montlhyNews: IMonthlyNews | null =
+          await newsletterService.getSingleMonthlyNews(date, user.xsrftoken)
+        const poll: IPoll | null = await newsletterService.getSinglePoll(
+          date,
+          user.xsrftoken
+        )
+        if (montlhyInfo) {
+          setInfo(montlhyInfo.info)
+          setImageURL(montlhyInfo.image)
+          setIsTouched(false)
+        }
+        if (montlhyNews) {
+          setTitle(montlhyNews.title)
+          setContent(montlhyNews.content)
+          setIsTouched(false)
+        }
+        if (poll) {
+          setLink(poll.link)
+          setQuestion(poll.question)
+          setIsTouched(false)
+        }
+      }
+      setisLoading(false)
+    }
+    if (subscribed) {
+      getCurrentMonthlyNews()
+    }
+    return () => {
+      subscribed = false
+      setRefreshData(false)
+    }
+  }, [date, user, refreshData, resetFields])
+
+  return (
+    <>
+      <div className="header">
+        <p className="title pagetitle">Édition de la newsletter</p>
+        <DateSelector date={date} setDate={setDate} isEmpty={isEmpty} />
+      </div>
+      {isLoading ? (
+        <Loader />
+      ) : (
+        <div className="content">
+          <MonthlyInfo
+            info={info}
+            onSave={handleSaveMonthlyInfo}
+            onCancel={handleCancel}
+            handleChange={handleEditorChange}
+            onDelete={handleOpenDeleteModal}
+            imageURL={imageURL}
+          />
+          <hr />
+          <MonthlyNews
+            title={title}
+            content={content}
+            onSave={handleSaveMonthlyNews}
+            onCancel={handleCancel}
+            handleChange={handleEditorChange}
+            onDelete={handleOpenDeleteModal}
+          />
+          <hr />
+          <Poll
+            question={question}
+            link={link}
+            onSave={handleSavePoll}
+            onCancel={handleCancel}
+            handleChange={handleEditorChange}
+            onDelete={handleOpenDeleteModal}
+          />
+        </div>
+      )}
+      {warningModal && (
+        <Modal>
+          <>
+            <div className="modal-text">
+              Etes-vous sûr de vouloir supprimer{' '}
+              {toDelete === 'monthlyInfo'
+                ? 'cette info mensuelle '
+                : toDelete === 'monthlyNews'
+                ? 'cette news mensuelle'
+                : 'ce sondage'}{' '}
+              ?
+            </div>
+            <div className="buttons">
+              <button
+                className="btnCancel"
+                onClick={() => setwarningModal(false)}
+              >
+                Annuler
+              </button>
+              <button className="btnValid" onClick={handleConfirmAlert}>
+                Continuer
+              </button>
+            </div>
+          </>
+        </Modal>
+      )}
+    </>
+  )
+}
+
+export default Editing