Skip to content

Commit f923eba

Browse files
committed
refactor: 💡 clean code
1 parent d756d6a commit f923eba

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

‎lib/src/utils.dart‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:convert';
22

33
import 'package:chative_sdk/src/constants.dart';
44

5+
/// Generates the JavaScript script to be injected into the WebView
56
String generateScript(Map<String, dynamic> user) {
67
String userString = jsonEncode(user);
78
return '''
@@ -37,6 +38,7 @@ String generateScript(Map<String, dynamic> user) {
3738
''';
3839
}
3940

41+
/// Generates the JavaScript script to be injected into the WebView to get the config
4042
String generateScriptGetError(String channelId) {
4143
return '''
4244
function getTimeZone() {
@@ -69,6 +71,7 @@ String generateScriptGetError(String channelId) {
6971
''';
7072
}
7173

74+
/// Converts a Dart object into a JavaScript object string
7275
String widgetApi(String event, dynamic data) {
7376
String dataString;
7477
if (data is String) {
@@ -118,3 +121,12 @@ bool isScriptSafe(String script) {
118121

119122
return true;
120123
}
124+
125+
/// Safely parses a JSON string into a Map
126+
Map<String, dynamic> parseJson(String message) {
127+
try {
128+
return jsonDecode(message) as Map<String, dynamic>;
129+
} catch (e) {
130+
return {};
131+
}
132+
}

‎lib/src/webview.dart‎

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'dart:convert';
21
import 'dart:io';
32

43
import 'package:file_picker/file_picker.dart';
@@ -24,14 +23,14 @@ class Webview extends StatefulWidget {
2423
final OnError? onError;
2524

2625
const Webview({
27-
Key? key,
26+
super.key,
2827
required this.channelId,
2928
this.user,
3029
this.onLoaded,
3130
this.onClosedWidget,
3231
this.onNewMessage,
3332
this.onError,
34-
}) : super(key: key);
33+
});
3534

3635
@override
3736
State<Webview> createState() => WebviewState();
@@ -72,7 +71,7 @@ class WebviewState extends State<Webview> {
7271

7372
/// Handles JavaScript messages received from the WebView
7473
void _handleJavaScriptMessage(JavaScriptMessage message) {
75-
final parsedData = _parseJson(message.message);
74+
final parsedData = parseJson(message.message);
7675

7776
switch (parsedData['event']) {
7877
case 'closed':
@@ -93,15 +92,6 @@ class WebviewState extends State<Webview> {
9392
}
9493
}
9594

96-
/// Safely parses a JSON string into a Map
97-
Map<String, dynamic> _parseJson(String message) {
98-
try {
99-
return jsonDecode(message) as Map<String, dynamic>;
100-
} catch (e) {
101-
return {};
102-
}
103-
}
104-
10595
/// Creates a NavigationDelegate for the WebView
10696
NavigationDelegate _createNavigationDelegate() {
10797
return NavigationDelegate(

0 commit comments

Comments
 (0)