File tree Expand file tree Collapse file tree 5 files changed +80
-4
lines changed
screens/history/history_widgets
packages/apidash_design_system/lib/widgets Expand file tree Collapse file tree 5 files changed +80
-4
lines changed Original file line number Diff line number Diff line change @@ -473,3 +473,9 @@ const kMsgNoContent = "No content";
473
473
const kMsgUnknowContentType = "Unknown Response Content-Type" ;
474
474
// Workspace Selector
475
475
const kMsgSelectWorkspace = "Create your workspace" ;
476
+ // History Page
477
+ const kTitleClearHistory = 'Clear History' ;
478
+ const kMsgClearHistory =
479
+ 'Clearing History is permanent. Do you want to continue?' ;
480
+ const kMsgClearHistorySuccess = 'History cleared successfully' ;
481
+ const kMsgClearHistoryError = 'Error clearing history' ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ class HistorySidebarHeader extends ConsumerWidget {
11
11
@override
12
12
Widget build (BuildContext context, WidgetRef ref) {
13
13
final mobileScaffoldKey = ref.read (mobileScaffoldKeyStateProvider);
14
+ final sm = ScaffoldMessenger .of (context);
14
15
return Padding (
15
16
padding: kPe4,
16
17
child: Row (
@@ -28,10 +29,29 @@ class HistorySidebarHeader extends ConsumerWidget {
28
29
color: Theme .of (context).brightness == Brightness .dark
29
30
? kColorDarkDanger
30
31
: kColorLightDanger,
31
- onPressed: () async {
32
- await ref
33
- .read (historyMetaStateNotifier.notifier)
34
- .clearAllHistory ();
32
+ onPressed: () {
33
+ showOkCancelDialog (
34
+ context,
35
+ dialogTitle: kTitleClearHistory,
36
+ content: kMsgClearHistory,
37
+ onClickOk: () async {
38
+ sm.hideCurrentSnackBar ();
39
+ try {
40
+ await ref
41
+ .read (historyMetaStateNotifier.notifier)
42
+ .clearAllHistory ();
43
+ sm.showSnackBar (getSnackBar (
44
+ kMsgClearHistorySuccess,
45
+ ));
46
+ } catch (e) {
47
+ debugPrint ("Clear History Stack: $e " );
48
+ sm.showSnackBar (getSnackBar (
49
+ kMsgClearHistoryError,
50
+ color: kColorRed,
51
+ ));
52
+ }
53
+ },
54
+ );
35
55
},
36
56
),
37
57
ADIconButton (
Original file line number Diff line number Diff line change
1
+ import 'package:apidash/consts.dart' ;
2
+ import 'package:apidash_design_system/apidash_design_system.dart' ;
3
+ import 'package:flutter/material.dart' ;
4
+
5
+ showOkCancelDialog (
6
+ BuildContext context, {
7
+ String ? dialogTitle,
8
+ String ? content,
9
+ String ? buttonLabelOk,
10
+ VoidCallback ? onClickOk,
11
+ String ? buttonLabelCancel,
12
+ VoidCallback ? onClickCancel,
13
+ }) {
14
+ showDialog (
15
+ context: context,
16
+ builder: (context) {
17
+ return AlertDialog (
18
+ title: Text (dialogTitle ?? "" ),
19
+ titleTextStyle: Theme .of (context).textTheme.titleLarge,
20
+ content: Container (
21
+ padding: kPt20,
22
+ width: 300 ,
23
+ child: Text (content ?? "" ),
24
+ ),
25
+ actions: < Widget > [
26
+ TextButton (
27
+ onPressed: () {
28
+ onClickCancel? .call ();
29
+ if (context.mounted) {
30
+ Navigator .pop (context);
31
+ }
32
+ },
33
+ child: Text (buttonLabelCancel ?? kLabelCancel),
34
+ ),
35
+ TextButton (
36
+ onPressed: () {
37
+ onClickOk? .call ();
38
+ if (context.mounted) {
39
+ Navigator .pop (context);
40
+ }
41
+ },
42
+ child: Text (buttonLabelOk ?? kLabelOk),
43
+ ),
44
+ ],
45
+ );
46
+ });
47
+ }
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ export 'codegen_previewer.dart';
16
16
export 'dialog_about.dart' ;
17
17
export 'dialog_history_retention.dart' ;
18
18
export 'dialog_import.dart' ;
19
+ export 'dialog_ok_cancel.dart' ;
19
20
export 'dialog_rename.dart' ;
20
21
export 'dialog_text.dart' ;
21
22
export 'drag_and_drop_area.dart' ;
Original file line number Diff line number Diff line change @@ -3,9 +3,11 @@ import 'package:flutter/material.dart';
3
3
SnackBar getSnackBar (
4
4
String text, {
5
5
bool small = true ,
6
+ Color ? color,
6
7
}) {
7
8
return SnackBar (
8
9
width: small ? 300 : 500 ,
10
+ backgroundColor: color,
9
11
behavior: SnackBarBehavior .floating,
10
12
content: Text (
11
13
text,
You can’t perform that action at this time.
0 commit comments