Skip to content

Commit 8a69e1a

Browse files
committed
improve debug mode
1 parent 02aa77e commit 8a69e1a

File tree

3 files changed

+76
-58
lines changed

3 files changed

+76
-58
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import 'package:app/presentation/resources/locale/generated/l10n.dart';
2+
import 'package:app/presentation/resources/resources.dart';
3+
import 'package:flutter/material.dart';
4+
import 'package:gap/gap.dart';
5+
6+
class TermsServicesCheck extends StatelessWidget {
7+
final bool agreeToTerms;
8+
final void Function(bool)? onChanged;
9+
10+
const TermsServicesCheck({
11+
super.key,
12+
this.agreeToTerms = false,
13+
this.onChanged,
14+
});
15+
16+
@override
17+
Widget build(BuildContext context) {
18+
return SizedBox(
19+
width: double.infinity,
20+
child: TextButton(
21+
style: Theme.of(context).textButtonTheme.style?.copyWith(
22+
alignment: Alignment.centerLeft, // <-- important
23+
padding: WidgetStateProperty.all(
24+
EdgeInsets.zero,
25+
), // optional, but helps
26+
),
27+
onPressed: () => onChanged?.call(!agreeToTerms),
28+
child: Row(
29+
crossAxisAlignment: CrossAxisAlignment.center,
30+
mainAxisAlignment: MainAxisAlignment.center,
31+
children: [
32+
Checkbox(
33+
value: agreeToTerms,
34+
onChanged: (value) => onChanged?.call(!agreeToTerms),
35+
),
36+
Expanded(
37+
child: Text(
38+
S.of(context).labelAgreeToTerms,
39+
style: Theme.of(context).textTheme.titleSmall,
40+
maxLines: 2,
41+
textAlign: TextAlign.start,
42+
),
43+
),
44+
const Gap(Dimen.spacingS),
45+
IconButton(
46+
onPressed: () {
47+
ScaffoldMessenger.of(context).showSnackBar(
48+
SnackBar(
49+
content: Text(S.of(context).hintTermsAndConditions),
50+
),
51+
);
52+
},
53+
icon: const Icon(Icons.info),
54+
),
55+
],
56+
),
57+
),
58+
);
59+
}
60+
}

app/lib/presentation/ui/pages/auth/login/login_form.dart

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:app/presentation/navigation/routers.dart';
22
import 'package:app/presentation/resources/locale/generated/l10n.dart';
33
import 'package:app/presentation/resources/resources.dart';
44
import 'package:app/presentation/ui/components/primary_button.dart';
5+
import 'package:app/presentation/ui/custom/terms_services_check.dart';
56
import 'package:common/core/resource.dart';
67
import 'package:domain/bloc/auth/auth_cubit.dart';
78
import 'package:flutter/material.dart';
@@ -83,35 +84,13 @@ class _LoginFormState extends State<LoginForm> {
8384
style: Theme.of(context).textTheme.bodySmall,
8485
),
8586
const Gap(Dimen.spacingM),
86-
TextButton(
87-
onPressed: () => setState(() {
88-
agreeToTerms = !agreeToTerms;
89-
}),
90-
child: Row(
91-
children: [
92-
Checkbox(
93-
value: agreeToTerms,
94-
onChanged: (value) => setState(() {
95-
agreeToTerms = value ?? false;
96-
}),
97-
),
98-
Text(
99-
S.of(context).labelAgreeToTerms,
100-
style: Theme.of(context).textTheme.titleSmall,
101-
),
102-
const Gap(Dimen.spacingS),
103-
IconButton(
104-
onPressed: () {
105-
ScaffoldMessenger.of(context).showSnackBar(
106-
SnackBar(
107-
content: Text(S.of(context).hintTermsAndConditions),
108-
),
109-
);
110-
},
111-
icon: const Icon(Icons.info),
112-
)
113-
],
114-
),
87+
TermsServicesCheck(
88+
agreeToTerms: agreeToTerms,
89+
onChanged: (value) {
90+
setState(() {
91+
agreeToTerms = value;
92+
});
93+
},
11594
),
11695
const Gap(Dimen.spacingM),
11796
BlocBuilder<AuthCubit, Resource>(

app/lib/presentation/ui/pages/auth/sign_up/sign_up_form.dart

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:app/presentation/resources/locale/generated/l10n.dart';
22
import 'package:app/presentation/resources/resources.dart';
33
import 'package:app/presentation/ui/components/primary_button.dart';
4+
import 'package:app/presentation/ui/custom/terms_services_check.dart';
45
import 'package:common/core/resource.dart';
56
import 'package:common/validators/form_validator.dart';
67
import 'package:domain/bloc/auth/auth_cubit.dart';
@@ -98,35 +99,13 @@ class _SignUpFormState extends State<SignUpForm> {
9899
},
99100
),
100101
const Gap(Dimen.spacingM),
101-
TextButton(
102-
onPressed: () => setState(() {
103-
agreeToTerms = !agreeToTerms;
104-
}),
105-
child: Row(
106-
children: [
107-
Checkbox(
108-
value: agreeToTerms,
109-
onChanged: (value) => setState(() {
110-
agreeToTerms = value ?? false;
111-
}),
112-
),
113-
Text(
114-
S.of(context).labelAgreeToTerms,
115-
style: Theme.of(context).textTheme.titleSmall,
116-
),
117-
const Gap(Dimen.spacingS),
118-
IconButton(
119-
onPressed: () {
120-
ScaffoldMessenger.of(context).showSnackBar(
121-
SnackBar(
122-
content: Text(S.of(context).hintTermsAndConditions),
123-
),
124-
);
125-
},
126-
icon: const Icon(Icons.info),
127-
)
128-
],
129-
),
102+
TermsServicesCheck(
103+
agreeToTerms: agreeToTerms,
104+
onChanged: (value) {
105+
setState(() {
106+
agreeToTerms = value;
107+
});
108+
},
130109
),
131110
const Gap(Dimen.spacingM),
132111
BlocBuilder<AuthCubit, Resource>(

0 commit comments

Comments
 (0)