@@ -84,22 +84,23 @@ MarkEdit.addExtension(EditorView.updateListener.of(update => {
8484 states . renderUpdater = setTimeout ( renderHtmlPreview , 500 ) ;
8585} ) ) ;
8686
87- MarkEdit . onEditorReady ( async ( ) => {
87+ MarkEdit . onEditorReady ( ( ) => {
8888 if ( imageHoverPreview ) {
8989 enableHoverPreview ( MarkEdit . editorView . scrollDOM ) ;
9090 }
9191
92- if ( states . isInitiating ) {
93- states . isInitiating = false ;
94- restoreViewMode ( ) ;
95- }
92+ // Restore to the last view mode, if available
93+ restoreViewMode ( ) ;
9694
97- if ( document . visibilityState === 'visible' && typeof MarkEdit . getFileInfo === 'function' ) {
98- const isDraft = ( await MarkEdit . getFileInfo ( ) ) ?. filePath === undefined ;
99- if ( isDraft && MarkEdit . editorAPI . getText ( ) . length === 0 ) {
100- setViewMode ( ViewMode . edit , false ) ;
95+ // For empty new drafts only, avoid using preview because it looks confusing
96+ requestAnimationFrame ( async ( ) => {
97+ if ( document . visibilityState === 'visible' && currentViewMode ( ) === ViewMode . preview && typeof MarkEdit . getFileInfo === 'function' ) {
98+ const isDraft = ( await MarkEdit . getFileInfo ( ) ) ?. filePath === undefined ;
99+ if ( isDraft && MarkEdit . editorAPI . getText ( ) . length === 0 ) {
100+ setViewMode ( ViewMode . edit , false ) ;
101+ }
101102 }
102- }
103+ } ) ;
103104
104105 renderHtmlPreview ( ) ;
105106 renderDecorationViews ( ) ;
@@ -163,11 +164,9 @@ function renderDecorationViews() {
163164}
164165
165166const states : {
166- isInitiating : boolean ;
167167 renderUpdater : ReturnType < typeof setTimeout > | undefined ;
168168 keyDownListener : ( ( event : KeyboardEvent ) => void ) | undefined ;
169169} = {
170- isInitiating : true ,
171170 renderUpdater : undefined ,
172171 keyDownListener : undefined ,
173172} ;
0 commit comments