Skip to content

Commit 5434792

Browse files
committed
converted functional component to StatelessWidget
1 parent 97aad86 commit 5434792

File tree

2 files changed

+69
-58
lines changed

2 files changed

+69
-58
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
3+
4+
class PermissionSection extends StatelessWidget {
5+
final IconData icon;
6+
final String title;
7+
final String description;
8+
final bool isDarkMode;
9+
10+
const PermissionSection({
11+
super.key,
12+
required this.icon,
13+
required this.title,
14+
required this.description,
15+
required this.isDarkMode,
16+
});
17+
18+
@override
19+
Widget build(BuildContext context) {
20+
return Container(
21+
padding: const EdgeInsets.all(16),
22+
decoration: BoxDecoration(
23+
border: Border.all(
24+
color: isDarkMode
25+
? TaskWarriorColors.ksecondaryBackgroundColor
26+
: TaskWarriorColors.borderColor,
27+
),
28+
borderRadius: BorderRadius.circular(12),
29+
color: isDarkMode
30+
? TaskWarriorColors.kdialogBackGroundColor
31+
: TaskWarriorColors.kLightDialogBackGroundColor,
32+
),
33+
child: Column(
34+
crossAxisAlignment: CrossAxisAlignment.start,
35+
children: [
36+
Row(
37+
children: [
38+
Icon(icon, color: TaskWarriorColors.black),
39+
const SizedBox(width: 12),
40+
Expanded(
41+
child: Text(
42+
title,
43+
style: Theme.of(context).textTheme.titleMedium?.copyWith(
44+
fontWeight: FontWeight.bold,
45+
color: isDarkMode
46+
? TaskWarriorColors.kprimaryTextColor
47+
: TaskWarriorColors.kLightPrimaryTextColor,
48+
),
49+
),
50+
),
51+
],
52+
),
53+
const SizedBox(height: 8),
54+
Text(
55+
description,
56+
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
57+
color: isDarkMode
58+
? TaskWarriorColors.ksecondaryTextColor
59+
: TaskWarriorColors.kLightSecondaryTextColor,
60+
),
61+
),
62+
],
63+
),
64+
);
65+
}
66+
}

lib/app/modules/permission/views/permission_view.dart

Lines changed: 3 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:io';
22

33
import 'package:flutter/material.dart';
44
import 'package:get/get.dart';
5+
import 'package:taskwarrior/app/modules/permission/views/permission_section.dart';
56
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
67
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
78
import '../controllers/permission_controller.dart';
@@ -51,8 +52,7 @@ class PermissionView extends GetView<PermissionController> {
5152
: TaskWarriorColors.white,
5253
),
5354
const SizedBox(height: 32),
54-
_buildPermissionSection(
55-
context,
55+
PermissionSection(
5656
icon: Icons.folder_outlined,
5757
title: 'Storage Permission',
5858
description:
@@ -62,8 +62,7 @@ class PermissionView extends GetView<PermissionController> {
6262
isDarkMode: isDarkMode,
6363
),
6464
const SizedBox(height: 24),
65-
_buildPermissionSection(
66-
context,
65+
PermissionSection(
6766
icon: Icons.notifications_outlined,
6867
title: 'Notification Permission',
6968
description:
@@ -140,58 +139,4 @@ class PermissionView extends GetView<PermissionController> {
140139
),
141140
);
142141
}
143-
144-
Widget _buildPermissionSection(
145-
BuildContext context, {
146-
required IconData icon,
147-
required String title,
148-
required String description,
149-
required bool isDarkMode,
150-
}) {
151-
return Container(
152-
padding: const EdgeInsets.all(16),
153-
decoration: BoxDecoration(
154-
border: Border.all(
155-
color: isDarkMode
156-
? TaskWarriorColors.ksecondaryBackgroundColor
157-
: TaskWarriorColors.borderColor,
158-
),
159-
borderRadius: BorderRadius.circular(12),
160-
color: isDarkMode
161-
? TaskWarriorColors.kdialogBackGroundColor
162-
: TaskWarriorColors.kLightDialogBackGroundColor,
163-
),
164-
child: Column(
165-
crossAxisAlignment: CrossAxisAlignment.start,
166-
children: [
167-
Row(
168-
children: [
169-
Icon(icon, color: TaskWarriorColors.black),
170-
const SizedBox(width: 12),
171-
Expanded(
172-
child: Text(
173-
title,
174-
style: Theme.of(context).textTheme.titleMedium?.copyWith(
175-
fontWeight: FontWeight.bold,
176-
color: isDarkMode
177-
? TaskWarriorColors.kprimaryTextColor
178-
: TaskWarriorColors.kLightPrimaryTextColor,
179-
),
180-
),
181-
),
182-
],
183-
),
184-
const SizedBox(height: 8),
185-
Text(
186-
description,
187-
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
188-
color: isDarkMode
189-
? TaskWarriorColors.ksecondaryTextColor
190-
: TaskWarriorColors.kLightSecondaryTextColor,
191-
),
192-
),
193-
],
194-
),
195-
);
196-
}
197142
}

0 commit comments

Comments
 (0)