@@ -3,7 +3,7 @@ import { useRouter } from 'next/router';
33import { useEffect , useState } from 'react' ;
44import * as Y from 'yjs' ;
55
6- import { Box } from '@/components' ;
6+ import { Box , Text , TextErrors } from '@/components' ;
77import { BlockNoteReader } from '@/docs/doc-editor/components/BlockNoteEditor' ;
88import { DocEditorContainer } from '@/docs/doc-editor/components/DocEditor' ;
99import { Doc , base64ToBlocknoteXmlFragment } from '@/docs/doc-management' ;
@@ -32,7 +32,7 @@ export const DocVersionEditor = ({
3232 versionId,
3333 } ) ;
3434
35- const { replace, asPath } = useRouter ( ) ;
35+ const { replace } = useRouter ( ) ;
3636 const [ initialContent , setInitialContent ] = useState < Y . XmlFragment > ( ) ;
3737
3838 // Reset initialContent when versionId changes to avoid conflicts between versions
@@ -48,23 +48,30 @@ export const DocVersionEditor = ({
4848 setInitialContent ( base64ToBlocknoteXmlFragment ( version . content ) ) ;
4949 } , [ versionId , version ?. content , isLoading , initialContent ] ) ;
5050
51- useEffect ( ( ) => {
52- if ( ! isError || ! error ) {
53- return ;
54- }
55-
51+ if ( isError && error ) {
5652 if ( error . status === 404 ) {
57- void replace ( '/404' ) ;
58- } else if ( error . status === 502 ) {
59- void replace ( '/offline' ) ;
60- } else {
61- const fromPath = encodeURIComponent ( asPath ) ;
62- void replace ( `/500?from=${ fromPath } ` ) ;
53+ void replace ( `/404` ) ;
54+ return null ;
6355 }
64- } , [ isError , error , replace , asPath ] ) ;
6556
66- if ( isError ) {
67- return null ;
57+ return (
58+ < Box $margin = "large" className = "--docs--doc-version-editor-error" >
59+ < TextErrors
60+ causes = { error . cause }
61+ icon = {
62+ error . status === 502 ? (
63+ < Text
64+ className = "material-icons"
65+ $theme = "danger"
66+ aria-hidden = { true }
67+ >
68+ wifi_off
69+ </ Text >
70+ ) : undefined
71+ }
72+ />
73+ </ Box >
74+ ) ;
6875 }
6976
7077 if ( isLoading || ! version || ! initialContent ) {
0 commit comments