@@ -16,7 +16,18 @@ const ReactQuill = dynamic(() => import("react-quill"),{ssr:false});
1616
1717const NewBlog = ( { router} ) => {
1818
19- const [ body , setBody ] = useState ( { } )
19+ const getBlogFromLocalStorage = ( ) => {
20+ if ( typeof window === "undefined" ) {
21+ return false ;
22+ }
23+
24+ if ( localStorage . getItem ( "blog" ) ) {
25+ return JSON . parse ( localStorage . getItem ( "blog" ) )
26+ } else
27+ return false ;
28+ } ;
29+
30+ const [ body , setBody ] = useState ( getBlogFromLocalStorage ( ) )
2031 const [ infos , setInfos ] = useState ( {
2132 error :"" ,
2233 sizeError :"" ,
@@ -28,16 +39,29 @@ const NewBlog = ({router})=>{
2839
2940 const { error, sizeError, success, formData, title, hidePublishButton} = infos
3041
42+ useEffect ( ( ) => {
43+ setInfos ( { ...infos , formData : new FormData ( ) } )
44+ } , [ router ] )
45+
3146 const publishTheBlog = ( event ) => {
3247 event . preventDefault ( ) ;
3348 }
3449
3550 const handleChange = ( name ) => event => {
36- console . log ( event . target . value ) ;
51+ // console.log(event.target.value);
52+ const info = name === "photo" ? event . target . files [ 0 ] : event . target . value
53+ formData . set ( name , info )
54+ setInfos ( { ...infos , [ name ] :info , formData, error :'' } )
55+
3756 } ;
3857
3958 const handleBody = ( event ) => {
40- console . log ( event )
59+ // console.log(event)
60+ setBody ( event )
61+ formData . set ( "body" , event )
62+ if ( typeof window !== "undefined" ) {
63+ localStorage . setItem ( "blog" , JSON . stringify ( event ) )
64+ }
4165 } ;
4266
4367 ////////////////////
@@ -56,7 +80,7 @@ const NewBlog = ({router})=>{
5680 < input type = "text" className = "form-control" value = { title } onChange = { handleChange ( "title" ) } />
5781 </ div >
5882 < div className = "form-group" >
59- < ReactQuill style = { { "background-color " :"white" , "color" :"black" } } value = { body } placeholder = "Sketch your blog..." onChange = { handleBody } />
83+ < ReactQuill modules = { NewBlog . modules } formats = { NewBlog . formats } style = { { "backgroundColor " :"white" , "color" :"black" } } value = { body } placeholder = "Sketch your blog..." onChange = { handleBody } />
6084 </ div >
6185 < div >
6286 < button type = "submit" className = "btn btn-info" >
@@ -76,4 +100,34 @@ const NewBlog = ({router})=>{
76100 )
77101} ;
78102
103+ NewBlog . modules = {
104+ toolbar : [
105+ [ { header : [ 1 , 2 , 3 , 4 , 5 , 6 ] } , { font : [ ] } ] ,
106+ [ { size : [ ] } ] ,
107+ [ 'bold' , 'italic' , 'underline' , 'strike' , 'blockquote' ] ,
108+ [ { list : 'ordered' } , { list : 'bullet' } ] ,
109+ [ 'link' , 'image' , 'video' ] ,
110+ [ 'clean' ] ,
111+ [ 'code-block' ]
112+ ]
113+ } ;
114+
115+ NewBlog . formats = [
116+ 'header' ,
117+ 'font' ,
118+ 'size' ,
119+ 'bold' ,
120+ 'italic' ,
121+ 'underline' ,
122+ 'strike' ,
123+ 'blockquote' ,
124+ 'list' ,
125+ 'bullet' ,
126+ 'link' ,
127+ 'image' ,
128+ 'video' ,
129+ 'code-block'
130+ ] ;
131+
132+
79133export default withRouter ( NewBlog ) ;
0 commit comments