22 ILabShell ,
33 JupyterFrontEnd ,
44 JupyterFrontEndPlugin ,
5+ JupyterLab ,
56} from '@jupyterlab/application' ;
67
78import { IToolbarWidgetRegistry } from '@jupyterlab/apputils' ;
@@ -70,14 +71,25 @@ const resourceStatusPlugin: JupyterFrontEndPlugin<void> = {
7071 id : '@jupyter-server/resource-usage:status-item' ,
7172 autoStart : true ,
7273 requires : [ ITranslator ] ,
73- optional : [ IStatusBar ] ,
74+ optional : [ IStatusBar , JupyterLab . IInfo ] ,
7475 activate : (
7576 app : JupyterFrontEnd ,
7677 translator : ITranslator ,
77- statusBar : IStatusBar | null
78+ statusBar : IStatusBar | null ,
79+ info : JupyterLab . IInfo | null
7880 ) => {
81+ const refreshRate = DEFAULT_REFRESH_RATE ;
82+
7983 const trans = translator . load ( 'jupyter-resource-usage' ) ;
80- const item = new ResourceUsageStatus ( trans ) ;
84+ const item = new ResourceUsageStatus ( trans , {
85+ refreshRate,
86+ refreshStandby : ( ) => {
87+ if ( info ) {
88+ return ! info . isConnected || 'when-hidden' ;
89+ }
90+ return 'when-hidden' ;
91+ } ,
92+ } ) ;
8193
8294 if ( statusBar ) {
8395 statusBar . registerStatusItem ( resourceStatusPlugin . id , {
@@ -98,11 +110,12 @@ const systemMonitorPlugin: JupyterFrontEndPlugin<void> = {
98110 id : '@jupyter-server/resource-usage:topbar-item' ,
99111 autoStart : true ,
100112 requires : [ IToolbarWidgetRegistry ] ,
101- optional : [ ISettingRegistry ] ,
113+ optional : [ ISettingRegistry , JupyterLab . IInfo ] ,
102114 activate : async (
103115 app : JupyterFrontEnd ,
104116 toolbarRegistry : IToolbarWidgetRegistry ,
105- settingRegistry : ISettingRegistry | null
117+ settingRegistry : ISettingRegistry | null ,
118+ info : JupyterLab . IInfo | null
106119 ) => {
107120 let enablePlugin = DEFAULT_ENABLE_SYSTEM_MONITOR ;
108121 let refreshRate = DEFAULT_REFRESH_RATE ;
@@ -126,7 +139,15 @@ const systemMonitorPlugin: JupyterFrontEndPlugin<void> = {
126139 diskLabel = diskSettings . label ;
127140 }
128141
129- const model = new ResourceUsage . Model ( { refreshRate } ) ;
142+ const model = new ResourceUsage . Model ( {
143+ refreshRate,
144+ refreshStandby : ( ) => {
145+ if ( info ) {
146+ return ! info . isConnected || 'when-hidden' ;
147+ }
148+ return 'when-hidden' ;
149+ } ,
150+ } ) ;
130151 await model . refresh ( ) ;
131152
132153 if ( enablePlugin && model . cpuAvailable ) {
0 commit comments