66 JupyterFrontEndPlugin ,
77} from '@jupyterlab/application' ;
88
9- import { IRenderMimeRegistry } from '@jupyterlab/rendermime' ;
9+ import { IRenderMimeRegistry , IRenderMime } from '@jupyterlab/rendermime' ;
1010import { NetVisRenderer , MIME_TYPE } from './renderer' ;
1111
1212// Export other modules for backward compatibility
@@ -25,16 +25,29 @@ const mimeExtension: JupyterFrontEndPlugin<void> = {
2525 rendermime : IRenderMimeRegistry ,
2626 ) : void => {
2727 // Register MIME renderer for _repr_mimebundle_
28- rendermime . addFactory (
29- {
30- safe : true ,
31- mimeTypes : [ MIME_TYPE ] ,
32- createRenderer : ( options ) => new NetVisRenderer ( options ) ,
33- } ,
34- 0 , // rank: 0 means highest priority
35- ) ;
28+ // JupyterLab 4.x compatible registration
29+ const rendererFactory : IRenderMime . IRendererFactory = {
30+ safe : true ,
31+ mimeTypes : [ MIME_TYPE ] ,
32+ createRenderer : ( options : IRenderMime . IRendererOptions ) => new NetVisRenderer ( options ) ,
33+ } ;
3634
37- console . log ( 'NetVis MIME renderer registered' ) ;
35+ try {
36+ // Try to add factory with default rank
37+ // JupyterLab 4.x doesn't use rank parameter directly
38+ rendermime . addFactory ( rendererFactory ) ;
39+ console . log ( 'NetVis MIME renderer registered successfully' ) ;
40+ } catch ( error ) {
41+ console . error ( 'Failed to register NetVis MIME renderer:' , error ) ;
42+ // Fallback: try alternative registration if the first attempt fails
43+ try {
44+ // @ts -ignore - For backward compatibility
45+ rendermime . addFactory ( rendererFactory , 0 ) ;
46+ console . log ( 'NetVis MIME renderer registered with rank 0' ) ;
47+ } catch ( fallbackError ) {
48+ console . error ( 'Fallback registration also failed:' , fallbackError ) ;
49+ }
50+ }
3851 } ,
3952} ;
4053
0 commit comments