2020-08-03 12:04:07 +02:00
|
|
|
import { useState } from 'react'
|
|
|
|
import dynamic from 'next/dynamic'
|
|
|
|
import { complex } from '../../utils/sunEditorConfig'
|
|
|
|
import api from '../../utils/api'
|
|
|
|
import FunctionArticle from '../FunctionPage/FunctionArticle'
|
|
|
|
import 'notyf/notyf.min.css'
|
|
|
|
import '../../public/css/suneditor.min.css'
|
2020-04-15 22:50:40 +02:00
|
|
|
|
|
|
|
const SunEditor = dynamic(
|
2020-08-03 12:04:07 +02:00
|
|
|
() => import('suneditor-react'),
|
|
|
|
{ ssr: false }
|
|
|
|
)
|
2020-04-15 22:50:40 +02:00
|
|
|
|
|
|
|
const EditArticleFunction = (props) => {
|
2020-08-03 12:04:07 +02:00
|
|
|
const [htmlContent, setHtmlContent] = useState('')
|
2020-04-15 22:50:40 +02:00
|
|
|
|
2020-08-03 12:04:07 +02:00
|
|
|
const handleEditorChange = (content) => {
|
|
|
|
setHtmlContent(content)
|
|
|
|
}
|
2020-04-15 22:50:40 +02:00
|
|
|
|
2020-08-03 12:04:07 +02:00
|
|
|
const handleSave = async (content) => {
|
|
|
|
let Notyf
|
|
|
|
if (typeof window !== 'undefined') {
|
|
|
|
Notyf = require('notyf')
|
2020-04-15 22:50:40 +02:00
|
|
|
}
|
2020-08-03 12:04:07 +02:00
|
|
|
const notyf = new Notyf.Notyf({
|
|
|
|
duration: 5000
|
|
|
|
})
|
|
|
|
try {
|
|
|
|
await api.put(`/admin/functions/article/${props.functionInfo.id}`, { article: content }, { headers: { Authorization: props.user.token } })
|
|
|
|
notyf.success('Sauvegardé!')
|
|
|
|
} catch {
|
|
|
|
notyf.error('Erreur!')
|
2020-04-15 22:50:40 +02:00
|
|
|
}
|
2020-08-03 12:04:07 +02:00
|
|
|
}
|
2020-04-15 22:50:40 +02:00
|
|
|
|
2020-08-03 12:04:07 +02:00
|
|
|
return (
|
|
|
|
<div className='container-fluid'>
|
|
|
|
<SunEditor setContents={props.functionInfo.article} lang='fr' onChange={handleEditorChange} setOptions={{ buttonList: complex, callBackSave: handleSave }} />
|
|
|
|
<FunctionArticle article={htmlContent} />
|
|
|
|
</div>
|
|
|
|
)
|
2020-04-15 22:50:40 +02:00
|
|
|
}
|
|
|
|
|
2020-08-03 12:04:07 +02:00
|
|
|
export default EditArticleFunction
|