11import "package:flutter/material.dart" ;
22import "package:flutter_svg/flutter_svg.dart" ;
3+ import "package:frontend/common/shared_functions.dart" ;
34import "package:frontend/exports.dart" ;
45import "package:provider/provider.dart" ;
5- import "package:super_tooltip/super_tooltip.dart" ;
66
77class SettingsRow extends StatefulWidget {
88 const SettingsRow ({
@@ -12,44 +12,24 @@ class SettingsRow extends StatefulWidget {
1212 required this .modalHeader,
1313 this .choseDiffWidget,
1414 this .onChanged,
15- this .forceTabletLayout,
1615 });
1716
1817 final bool ? chose;
1918 final String text;
2019 final String modalHeader;
2120 final Widget ? choseDiffWidget;
2221 final void Function (bool )? onChanged;
23- final bool ? forceTabletLayout;
2422
2523 @override
2624 State <SettingsRow > createState () => _SettingsRowState ();
2725}
2826
2927class _SettingsRowState extends State <SettingsRow > {
30- late final SuperTooltipController _tooltipController;
31-
32- @override
33- void initState () {
34- super .initState ();
35- _tooltipController = SuperTooltipController ();
36- }
37-
38- @override
39- void dispose () {
40- _tooltipController.dispose ();
41- super .dispose ();
42- }
43-
44- bool _isTablet (BuildContext context) {
45- return widget.forceTabletLayout ?? MediaQuery .of (context).size.width >= 640 ;
46- }
47-
4828 @override
4929 Widget build (BuildContext context) {
5030 final scheme = Theme .of (context).colorScheme;
5131 final isPro = context.watch <ProVersionProvider >().isPro;
52- final isTablet = _isTablet (context);
32+ final isTablet = SharedFunctions . isTablet (context);
5333 return Padding (
5434 padding: const EdgeInsets .only (bottom: 8 ),
5535 child: SizedBox (
@@ -66,17 +46,14 @@ class _SettingsRowState extends State<SettingsRow> {
6646 fontSize: isTablet ? 25 : 16 ,
6747 ),
6848 ),
69- SizedBox (
70- width: isTablet ? 16 : 10
71- ),
49+ SizedBox (width: isTablet ? 16 : 10 ),
7250 ProFunctionsTooltip (
7351 isPro: isPro,
7452 modalHeader: widget.modalHeader,
75- controller: _tooltipController,
7653 child: SvgPicture .asset (
7754 "assets/images/icons/question_icon.svg" ,
7855 colorFilter: ColorFilter .mode (
79- isPro
56+ isPro
8057 ? scheme.tertiaryContainer
8158 : ColorsConst .disabledColor,
8259 BlendMode .srcIn),
@@ -86,21 +63,20 @@ class _SettingsRowState extends State<SettingsRow> {
8663 ),
8764 Theme (
8865 data: ThemeData (useMaterial3: false ),
89- child: Switch (
90- materialTapTargetSize: MaterialTapTargetSize .shrinkWrap,
91- value: isPro ? widget.chose! : false ,
92- inactiveThumbColor:
93- isPro ? scheme.surfaceTint : ColorsConst .disabledColor,
94- inactiveTrackColor: scheme.outline,
95- activeColor: scheme.inversePrimary,
96- activeTrackColor: ColorsConst .primaryColor100,
97- onChanged: (value) {
98- if (isPro) {
99- widget.onChanged? .call (value);
100- } else {
101- _tooltipController.showTooltip ();
102- }
103- },
66+ child: ProFunctionsTooltip (
67+ isPro: isPro,
68+ modalHeader: widget.modalHeader,
69+ child: Switch (
70+ materialTapTargetSize: MaterialTapTargetSize .shrinkWrap,
71+ value: isPro ? widget.chose! : false ,
72+ inactiveThumbColor:
73+ isPro ? scheme.surfaceTint : ColorsConst .disabledColor,
74+ inactiveTrackColor: scheme.outline,
75+ activeColor: scheme.inversePrimary,
76+ activeTrackColor: ColorsConst .primaryColor100,
77+ onChanged:
78+ isPro ? (value) => widget.onChanged? .call (value) : null ,
79+ ),
10480 ),
10581 ),
10682 ],
0 commit comments