@@ -119,6 +119,8 @@ const ReadsEditor: Component = () => {
119119 } )
120120
121121 const initEditor = async ( ) => {
122+ if ( editor ( ) ) return ;
123+
122124 try {
123125 const e = await Editor . make ( )
124126 . config ( ( ctx ) => {
@@ -188,19 +190,17 @@ const ReadsEditor: Component = () => {
188190 // insert(cont)(e.ctx);
189191 // setHtml(() => getHTML()(e.ctx));
190192
193+ // e.action(replaceAll(article.content))
194+
191195 setEditor ( ( ) => e ) ;
192196
193197 } catch ( err ) {
194198 logError ( 'Failed init milkdown editor: ' , err ) ;
195199 }
196200 }
197201
198- createEffect ( ( ) => {
199- if ( accordionSection ( ) . includes ( 'content' ) ) {
200- setTimeout ( ( ) => {
201- initEditor ( ) ;
202- } , 10 )
203- }
202+ onMount ( ( ) => {
203+ initEditor ( ) ;
204204 } ) ;
205205
206206 onCleanup ( ( ) => editor ( ) ?. destroy ( ) ) ;
@@ -331,22 +331,47 @@ const ReadsEditor: Component = () => {
331331 setAccordionSection ( ( as ) => [ ...as , 'metadata' ] ) ;
332332 } }
333333 >
334+ < Show
335+ when = { accordionSection ( ) . includes ( 'metadata' ) }
336+ fallback = { < span > Show</ span > }
337+ >
338+ < span > Hide</ span >
339+ </ Show >
334340 Metadata
335341 </ button >
336342
337- < button
338- class = { `${ styles . sectionButton } ${ accordionSection ( ) . includes ( 'content' ) ? styles . open : '' } ` }
339- onClick = { ( ) => {
340- if ( accordionSection ( ) . includes ( 'content' ) ) {
341- setAccordionSection ( ( as ) => as . filter ( s => s !== 'content' ) ) ;
342- return ;
343- }
344-
345- setAccordionSection ( ( as ) => [ ...as , 'content' ] ) ;
346- } }
347- >
348- Content
349- </ button >
343+ < Show when = { ! accordionSection ( ) . includes ( 'metadata' ) } >
344+ < div class = { styles . metadataPreview } >
345+ < Show when = { article . title . length > 0 } >
346+ < div class = { styles . titlePreview } >
347+ { article . title }
348+ </ div >
349+ </ Show >
350+
351+ < Show when = { article . image . length > 0 } >
352+ < img
353+ class = { styles . titleImagePreview }
354+ src = { article . image }
355+ />
356+ </ Show >
357+
358+ < Show when = { article . summary . length > 0 } >
359+ < div class = { styles . summaryPreview } >
360+ { article . summary }
361+ </ div >
362+ </ Show >
363+
364+ < Show when = { article . tags . length > 0 } >
365+ < div class = { styles . tagPreview } >
366+ < div class = { styles . tagList } >
367+ < For each = { article . tags } >
368+ { tag => < div class = { styles . tag } > { tag } </ div > }
369+ </ For >
370+ </ div >
371+ </ div >
372+ </ Show >
373+ </ div >
374+ </ Show >
350375 </ div >
351376 </ Wormhole >
352377
@@ -485,6 +510,7 @@ const ReadsEditor: Component = () => {
485510
486511 const tags = value . split ( ',' ) . map ( ( x : string ) => x . trim ( ) ) ;
487512 setArticle ( 'tags' , ( ts ) => [ ...ts , ...tags ] ) ;
513+ // @ts -ignore
488514 e . target . value = ''
489515 } }
490516 >
@@ -497,56 +523,54 @@ const ReadsEditor: Component = () => {
497523 </ div >
498524 </ Show >
499525
500- < Show when = { accordionSection ( ) . includes ( 'content' ) } >
501- < div >
502- < div class = { styles . toolbar } >
503- < div >
504- < button
505- id = "undoBtn"
506- class = { styles . mdToolButton }
507- onClick = { undo }
508- >
509- < div class = { styles . undoIcon } > </ div >
510- </ button >
511- < button
512- id = "redoBtn"
513- class = { styles . mdToolButton }
514- onClick = { redo }
515- >
516- < div class = { styles . redoIcon } > </ div >
517- </ button >
518- < button
519- id = "boldBtn"
520- class = { `${ styles . mdToolButton } ${ isBoldActive ( ) || isBoldSelected ( ) ? styles . selected : '' } ` }
521- onClick = { bold }
522- >
523- < div class = { styles . boldIcon } > </ div >
524- </ button >
525- < button
526- id = "italicBtn"
527- class = { `${ styles . mdToolButton } ${ isItalicActive ( ) || isItalicSelected ( ) ? styles . selected : '' } ` }
528- onClick = { italic }
529- >
530- < div class = { styles . italicIcon } > </ div >
531- </ button >
532- </ div >
526+ < div class = { styles . contentEditor } >
527+ < div class = { styles . toolbar } >
528+ < div >
529+ < button
530+ id = "undoBtn"
531+ class = { styles . mdToolButton }
532+ onClick = { undo }
533+ >
534+ < div class = { styles . undoIcon } > </ div >
535+ </ button >
536+ < button
537+ id = "redoBtn"
538+ class = { styles . mdToolButton }
539+ onClick = { redo }
540+ >
541+ < div class = { styles . redoIcon } > </ div >
542+ </ button >
543+ < button
544+ id = "boldBtn"
545+ class = { `${ styles . mdToolButton } ${ isBoldActive ( ) || isBoldSelected ( ) ? styles . selected : '' } ` }
546+ onClick = { bold }
547+ >
548+ < div class = { styles . boldIcon } > </ div >
549+ </ button >
550+ < button
551+ id = "italicBtn"
552+ class = { `${ styles . mdToolButton } ${ isItalicActive ( ) || isItalicSelected ( ) ? styles . selected : '' } ` }
553+ onClick = { italic }
554+ >
555+ < div class = { styles . italicIcon } > </ div >
556+ </ button >
533557 </ div >
534- < div
535- class = { styles . editor }
536- ref = { mdEditor }
537- onClick = { ( ) => {
538- // focusEditor();
539- } }
540- > </ div >
541558 </ div >
542- </ Show >
559+ < div
560+ class = { styles . editor }
561+ ref = { mdEditor }
562+ onClick = { ( ) => {
563+ // focusEditor();
564+ } }
565+ > </ div >
566+ </ div >
543567
544568
545569 < div class = { styles . postingControls } >
546570 < ButtonPrimary
547571 onClick = { postArticle }
548572 >
549- Post
573+ Publish Article
550574 </ ButtonPrimary >
551575 </ div >
552576 </ div >
0 commit comments