diff --git a/packages/main-layout/src/browser/tabbar/bar.view.tsx b/packages/main-layout/src/browser/tabbar/bar.view.tsx index 8a8a41ec77..38a2449526 100644 --- a/packages/main-layout/src/browser/tabbar/bar.view.tsx +++ b/packages/main-layout/src/browser/tabbar/bar.view.tsx @@ -214,13 +214,16 @@ export const IconTabView: React.FC<{ component: ComponentRegistryProvider }> = ( }, [component]); useEffect(() => { + // Immediately update with current component to handle initial badge value + setComponent({ ...component }); + const dispose = component.onChange((newComponent) => { setComponent(newComponent); }); return () => { dispose.dispose(); }; - }, []); + }, [component]); // Add component as dependency to re-run effect when it changes return (
@@ -246,12 +249,13 @@ export const TextTabView: React.FC<{ component: ComponentRegistryProvider }> = ( const [component, setComponent] = React.useState(defaultComponent); useEffect(() => { const dispose = component.onChange((newComponent) => { - setComponent(newComponent); + // Immediately update with current component to handle initial badge value + setComponent({ ...newComponent }); }); return () => { dispose.dispose(); }; - }, []); + }, [component]); // Add component as dependency to re-run effect when it changes return (
{component.options?.title?.toUpperCase()}