From 578136bb387dece2ee1ee784b8f214a5e9931c22 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Thu, 7 Dec 2023 22:11:09 +0100 Subject: [PATCH 1/2] add Tab.visible --- package/lib/src/controls/tabs.dart | 3 +++ sdk/python/packages/flet-core/src/flet_core/tabs.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/package/lib/src/controls/tabs.dart b/package/lib/src/controls/tabs.dart index b123025e9..74417739f 100644 --- a/package/lib/src/controls/tabs.dart +++ b/package/lib/src/controls/tabs.dart @@ -75,6 +75,9 @@ class _TabsControlState extends State Widget build(BuildContext context) { debugPrint("TabsControl build: ${widget.control.id}"); + // keep only visible tabs + widget.children.retainWhere((c) => c.isVisible); + var tabs = StoreConnector( distinct: true, converter: (store) => ControlsViewModel.fromStore( diff --git a/sdk/python/packages/flet-core/src/flet_core/tabs.py b/sdk/python/packages/flet-core/src/flet_core/tabs.py index ade61ffc1..4185a6900 100644 --- a/sdk/python/packages/flet-core/src/flet_core/tabs.py +++ b/sdk/python/packages/flet-core/src/flet_core/tabs.py @@ -25,8 +25,9 @@ def __init__( tab_content: Optional[Control] = None, ref: Optional[Ref] = None, icon: Optional[str] = None, + visible: Optional[bool] = None, ): - Control.__init__(self, ref=ref) + Control.__init__(self, ref=ref, visible=visible) self.text = text self.icon = icon self.__content: Optional[Control] = None From 407db223fba6dd044eb0304dc071a197dc3a5b3f Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Thu, 7 Dec 2023 22:11:46 +0100 Subject: [PATCH 2/2] fix typo --- package/lib/src/controls/tabs.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package/lib/src/controls/tabs.dart b/package/lib/src/controls/tabs.dart index 74417739f..7549589c8 100644 --- a/package/lib/src/controls/tabs.dart +++ b/package/lib/src/controls/tabs.dart @@ -124,12 +124,12 @@ class _TabsControlState extends State var indicatorBorderRadius = parseBorderRadius(widget.control, "indicatorBorderRadius"); - var inidicatorBorderSide = parseBorderSide( - Theme.of(context), widget.control, "inidicatorBorderSide"); + var indicatorBorderSide = parseBorderSide( + Theme.of(context), widget.control, "indicatorBorderSide"); var indicatorPadding = parseEdgeInsets(widget.control, "indicatorPadding"); - var inidicatorColor = HexColor.fromString(Theme.of(context), + var indicatorColor = HexColor.fromString(Theme.of(context), widget.control.attrString("indicatorColor", "")!) ?? TabBarTheme.of(context).indicatorColor ?? Theme.of(context).colorScheme.primary; @@ -151,7 +151,7 @@ class _TabsControlState extends State : TabBarIndicatorSize.label) : TabBarTheme.of(context).indicatorSize, indicator: indicatorBorderRadius != null || - inidicatorBorderSide != null || + indicatorBorderSide != null || indicatorPadding != null ? UnderlineTabIndicator( borderRadius: indicatorBorderRadius ?? @@ -159,17 +159,17 @@ class _TabsControlState extends State const BorderRadius.only( topLeft: Radius.circular(2), topRight: Radius.circular(2)), - borderSide: inidicatorBorderSide ?? + borderSide: indicatorBorderSide ?? themeIndicator?.borderSide ?? BorderSide( width: themeIndicator?.borderSide.width ?? 2, color: themeIndicator?.borderSide.color ?? - inidicatorColor), + indicatorColor), insets: indicatorPadding ?? themeIndicator?.insets ?? EdgeInsets.zero) : TabBarTheme.of(context).indicator, - indicatorColor: inidicatorColor, + indicatorColor: indicatorColor, labelColor: HexColor.fromString(Theme.of(context), widget.control.attrString("labelColor", "")!) ?? TabBarTheme.of(context).labelColor ?? Theme.of(context).colorScheme.primary,