Skip to content

Commit 3545c75

Browse files
committed
Refactor terminal and remove duplicate code.
1 parent dc7aa24 commit 3545c75

21 files changed

+91
-253
lines changed

lib/consts.dart

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'package:apidash_design_system/apidash_design_system.dart';
33
import 'package:apidash_core/apidash_core.dart';
44
import 'package:flutter/foundation.dart';
55
import 'package:flutter/material.dart';
6-
// Terminal enums moved here from models to avoid circular imports and simplify usage
76

87
const kDiscordUrl = "https://bit.ly/heyfoss";
98
const kGitUrl = "https://github.com/foss42/apidash";
@@ -86,15 +85,6 @@ enum HistoryRetentionPeriod {
8685
final IconData icon;
8786
}
8887

89-
/// Source category of a terminal entry
90-
enum TerminalSource { network, js, system }
91-
92-
/// Severity level of a terminal entry
93-
enum TerminalLevel { debug, info, warn, error }
94-
95-
/// Phase of a network log lifecycle
96-
enum NetworkPhase { started, progress, completed, failed }
97-
9888
enum ItemMenuOption {
9989
edit("Rename"),
10090
delete("Delete"),
@@ -521,3 +511,6 @@ const kMsgClearHistorySuccess = 'History cleared successfully';
521511
const kMsgClearHistoryError = 'Error clearing history';
522512
const kMsgShareError = "Unable to share";
523513
const kLabelGenerateUI = "Generate UI";
514+
// Terminal Page
515+
const kMsgNoLogs = 'No logs yet';
516+
const kMsgSendToView = 'Send a request to view its details in the console.';

lib/models/models.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ export 'history_meta_model.dart';
22
export 'history_request_model.dart';
33
export 'request_model.dart';
44
export 'settings_model.dart';
5-
export 'terminal/models.dart';

lib/models/terminal_models.dart

Lines changed: 0 additions & 164 deletions
This file was deleted.

lib/providers/collection_providers.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:apidash_core/apidash_core.dart';
33
import 'package:flutter/material.dart';
44
import 'package:flutter_riverpod/flutter_riverpod.dart';
55
import 'package:apidash/consts.dart';
6+
import 'package:apidash/terminal/terminal.dart';
67
import 'providers.dart';
78
import '../models/models.dart';
89
import '../services/services.dart';

lib/providers/terminal_providers.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1+
import 'package:apidash/terminal/terminal.dart';
12
import 'package:flutter_riverpod/flutter_riverpod.dart';
23
import 'package:uuid/uuid.dart';
34
import 'package:apidash_core/apidash_core.dart';
4-
import '../models/terminal/models.dart';
5-
import '../consts.dart';
65

76
final terminalStateProvider =
87
StateNotifierProvider<TerminalController, TerminalState>((ref) {

lib/screens/terminal/terminal_page.dart

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_riverpod/flutter_riverpod.dart';
3-
import '../../models/terminal/models.dart';
4-
import '../../consts.dart';
5-
import '../../providers/terminal_providers.dart';
6-
import '../../providers/collection_providers.dart';
7-
import '../../widgets/button_copy.dart';
8-
import '../../widgets/field_search.dart';
9-
import '../../widgets/terminal_tiles.dart';
10-
import '../../widgets/empty_message.dart';
113
import 'package:apidash_design_system/apidash_design_system.dart';
12-
import '../../widgets/terminal_level_filter_menu.dart';
4+
import 'package:apidash/terminal/terminal.dart';
5+
import 'package:apidash/widgets/widgets.dart';
6+
import 'package:apidash/providers/providers.dart';
7+
import 'package:apidash/consts.dart';
138

149
class TerminalPage extends ConsumerStatefulWidget {
1510
const TerminalPage({super.key});
@@ -109,10 +104,9 @@ class _TerminalPageState extends ConsumerState<TerminalPage> {
109104
Expanded(
110105
child: filtered.isEmpty
111106
? const Center(
112-
child: EmptyMessage(
113-
title: 'No logs yet',
114-
subtitle:
115-
'Send a request to see details here in the console',
107+
child: SimpleText(
108+
title: kMsgNoLogs,
109+
subtitle: kMsgSendToView,
116110
),
117111
)
118112
: ListView.separated(

lib/terminal/enums.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/// Source category of a terminal entry
2+
enum TerminalSource { network, js, system }
3+
4+
/// Severity level of a terminal entry
5+
enum TerminalLevel { debug, info, warn, error }
6+
7+
/// Phase of a network log lifecycle
8+
enum NetworkPhase { started, progress, completed, failed }
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class BodyChunk {
2+
BodyChunk({required this.ts, required this.text, required this.sizeBytes});
3+
4+
final DateTime ts;
5+
final String text; // preview text (could be partial)
6+
final int sizeBytes;
7+
}
File renamed without changes.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
export 'network_log_data.dart';
1+
export 'body_chunk.dart';
22
export 'js_log_data.dart';
3+
export 'network_log_data.dart';
34
export 'system_log_data.dart';
45
export 'terminal_entry.dart';

0 commit comments

Comments
 (0)