Skip to content

Commit 41b680f

Browse files
authored
Merge pull request #37 from warioddly/feature/improve-graphify-interface
refactor: update plugin paths and improve Graphify interface structure
2 parents 4f1137d + ca35f96 commit 41b680f

File tree

18 files changed

+122
-125
lines changed

18 files changed

+122
-125
lines changed

.flutter-plugins-dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"webview_flutter_wkwebview","path":"/Users/coffeen/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.22.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"webview_flutter_android","path":"/Users/coffeen/.pub-cache/hosted/pub.dev/webview_flutter_android-4.7.0/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"webview_flutter_wkwebview","path":"/Users/coffeen/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.22.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2025-06-23 22:41:03.527735","version":"3.32.1","swift_package_manager_enabled":{"ios":false,"macos":false}}
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\user\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\webview_flutter_wkwebview-3.18.2\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"webview_flutter_android","path":"C:\\\\Users\\\\user\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\webview_flutter_android-4.3.2\\\\","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\user\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\webview_flutter_wkwebview-3.18.2\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2025-07-23 22:08:45.282745","version":"3.32.6","swift_package_manager_enabled":{"ios":false,"macos":false}}

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<a href="https://pub.dartlang.org/packages/graphify"><img alt="Pub Package" src="https://img.shields.io/pub/v/graphify.svg"></a>
44
<a href="https://pub.dev/packages/graphify"><img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/warioddly/graphify"></a>
5-
<a href="https://githubc.com/warioddly/graphify/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/warioddly/graphify" alt="GitHub closed issues"></a>
6-
<a href="https://githubc.com/warioddly/graphify/issues"><img src="https://img.shields.io/github/issues/warioddly/graphify" alt="GitHub open issues"></a>
5+
<a href="https://github.com/warioddly/graphify/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/warioddly/graphify" alt="GitHub closed issues"></a>
6+
<a href="https://github.com/warioddly/graphify/issues"><img src="https://img.shields.io/github/issues/warioddly/graphify" alt="GitHub open issues"></a>
77
<a href="https://github.com/warioddly/graphify/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/warioddly/graphify"></a>
88
<a href="https://github.com/warioddly/graphify/issues"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="Contributing"></a>
99

example/lib/charts/basic_line_chart.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class _BasicLineChartState extends State<BasicLineChart> {
3535
Widget build(BuildContext context) {
3636
return GraphifyView(
3737
controller: controller,
38-
onConsoleMessage: (message) {
38+
onConsoleMessage: <String>(message) {
3939
print("[ERROR] $message");
4040
},
4141
initialOptions: const {

lib/graphify.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,4 @@ export 'src/view/implements/facade.dart'
77
if (dart.library.io) 'src/view/implements/mobile.dart'
88
if (dart.library.html) 'src/view/implements/web.dart';
99

10-
export 'src/utils/gradient/graphify_gradient.dart';
11-
export 'src/utils/gradient/graphify_linear_gradient.dart';
12-
export 'src/utils/gradient/graphify_radial_gradient.dart';
10+
export 'src/utils/gradient/_gradient.dart';

lib/src/controller/implements/mobile.dart

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,34 @@ import 'dart:async';
22
import 'dart:convert';
33

44
import 'package:graphify/src/controller/interface.dart' as controller_interface;
5-
import 'package:graphify/src/utils/js_methods.dart';
5+
import 'package:graphify/src/controller/js_methods.dart';
66
import 'package:webview_flutter/webview_flutter.dart';
77

88
class GraphifyController extends controller_interface.GraphifyController {
99

1010
late final WebViewController _connector;
1111

12+
set connector(WebViewController connector) => _connector = connector;
13+
14+
String get _quotedUid => '"$uid"';
15+
1216
@override
1317
Future<void> update(Map<String, dynamic>? options) async {
14-
await runJavaScript('window.${JsMethods.updateChart}("$uid", ${jsonEncode(options ?? {})})');
18+
return _eval(
19+
JsMethods.updateChart,
20+
[_quotedUid, jsonEncode(options ?? {})],
21+
);
1522
}
1623

17-
set connector(WebViewController connector) => _connector = connector;
24+
@override
25+
void dispose() async => _eval(JsMethods.disposeChart, [_quotedUid]);
1826

19-
Future<void> runJavaScript(String javaScript) async {
20-
await _connector.runJavaScript(javaScript);
27+
Future<void> _eval(String method, List<String> args) async {
28+
return _connector.runJavaScript(_buildJsMethod(method, args));
2129
}
2230

23-
@override
24-
void dispose() async {
25-
await runJavaScript('window.${JsMethods.disposeChart}("$uid")');
31+
String _buildJsMethod(String method, List<String> args) {
32+
return 'window.$method(${args.map((String arg) => arg).join(', ')})';
2633
}
34+
2735
}

lib/src/controller/implements/web.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'dart:js_interop';
33
import 'dart:js_interop_unsafe';
44

55
import 'package:graphify/src/controller/interface.dart' as controller_interface;
6-
import 'package:graphify/src/utils/js_methods.dart';
6+
import 'package:graphify/src/controller/js_methods.dart';
77
import 'package:web/web.dart';
88

99
class GraphifyController extends controller_interface.GraphifyController {

lib/src/controller/interface.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11

2-
import 'package:graphify/src/utils/utils.dart';
2+
import 'package:graphify/src/utils/uid.dart';
33

4-
mixin Disposable {
5-
void dispose();
6-
}
74

8-
abstract class GraphifyController with Disposable {
5+
abstract class GraphifyController {
96

107
/// Creates a new instance of [GraphifyController] with a unique identifier.
11-
GraphifyController() : uid = Utils.uid();
8+
GraphifyController() : uid = UID.generate();
129

1310
/// Unique identifier for the chart instance.
1411
final String uid;
1512

1613
/// Updates the chart with the provided options.
1714
void update(Map<String, dynamic>? options);
1815

16+
/// Disposes of the chart instance, cleaning up resources.
17+
void dispose();
18+
1919
}

lib/src/resources/dependencies.js.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:graphify/src/resources/lib/echarts.gl.min.dart';
22
import 'package:graphify/src/resources/lib/echarts.min.dart';
33
import 'package:graphify/src/resources/lib/jquery.min.dart';
4-
import 'package:graphify/src/utils/js_methods.dart';
4+
import 'package:graphify/src/controller/js_methods.dart';
55

66
const dependencies = "$jQuery "
77
"$echartsMin "

lib/src/resources/index.html.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ignore_for_file: leading_newlines_in_multiline_strings
22

3-
import 'package:graphify/src/utils/js_methods.dart';
3+
import 'package:graphify/src/controller/js_methods.dart';
44

55
String indexHtml({ required String id, String? dependencies}) {
66
return '''<!DOCTYPE html>

0 commit comments

Comments
 (0)