|
3 | 3 | import 'package:flutter/material.dart'; |
4 | 4 | import 'package:get/get.dart'; |
5 | 5 | import 'package:google_fonts/google_fonts.dart'; |
| 6 | +import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart'; |
| 7 | +import 'package:taskwarrior/app/modules/taskc_details/views/tag_editor.dart'; |
6 | 8 | import 'package:taskwarrior/app/utils/app_settings/app_settings.dart'; |
7 | 9 | import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart'; |
8 | 10 | import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart'; |
| 11 | +import 'package:taskwarrior/app/utils/home_path/impl/home.dart'; |
9 | 12 | import 'package:taskwarrior/app/utils/themes/theme_extension.dart'; |
10 | 13 | import 'package:taskwarrior/app/utils/language/sentence_manager.dart'; |
11 | 14 | import '../controllers/taskc_details_controller.dart'; |
@@ -102,7 +105,7 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> { |
102 | 105 | controller.wait.value, |
103 | 106 | ), |
104 | 107 | ], |
105 | | - _buildEditableDetail( |
| 108 | + _buildTagEditorDetail( |
106 | 109 | context, |
107 | 110 | '${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageTags}:', |
108 | 111 | controller.tags.join(', '), |
@@ -182,6 +185,38 @@ class TaskcDetailsView extends GetView<TaskcDetailsController> { |
182 | 185 | ); |
183 | 186 | } |
184 | 187 |
|
| 188 | + Widget _buildTagEditorDetail(BuildContext context, String label, String value, |
| 189 | + Function(String) onChanged) { |
| 190 | + TaskwarriorColorTheme tColors = |
| 191 | + Theme.of(context).extension<TaskwarriorColorTheme>()!; |
| 192 | + Iterable<String> suggestions = |
| 193 | + Get.find<HomeController>().allTagsInCurrentTasks; |
| 194 | + return InkWell( |
| 195 | + onTap: () async { |
| 196 | + showModalBottomSheet( |
| 197 | + backgroundColor: tColors.dialogBackgroundColor, |
| 198 | + context: context, |
| 199 | + isScrollControlled: true, |
| 200 | + shape: const RoundedRectangleBorder( |
| 201 | + borderRadius: BorderRadius.only( |
| 202 | + topLeft: Radius.circular(0), |
| 203 | + topRight: Radius.circular(0), |
| 204 | + ), |
| 205 | + ), |
| 206 | + builder: (context) => TagEditor( |
| 207 | + suggestions: |
| 208 | + suggestions.toList(), // You can pass tag suggestions here |
| 209 | + initialTags: value.split(',').map((e) => e.trim()).toList(), |
| 210 | + onSave: (List<String> newTags) { |
| 211 | + onChanged(newTags.join(', ')); |
| 212 | + }, |
| 213 | + ), |
| 214 | + ); |
| 215 | + }, |
| 216 | + child: _buildDetail(context, label, value), |
| 217 | + ); |
| 218 | + } |
| 219 | + |
185 | 220 | Widget _buildSelectableDetail(BuildContext context, String label, |
186 | 221 | String value, List<String> options, Function(String) onChanged) { |
187 | 222 | return InkWell( |
|
0 commit comments