diff --git a/lib/api/third_party/chartmuseum.dart b/lib/api/third_party/chartmuseum.dart deleted file mode 100644 index 696ee37..0000000 --- a/lib/api/third_party/chartmuseum.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:dio/dio.dart'; - -class HelmChart { - final String name; - final String version; - - const HelmChart({ - required this.name, - required this.version, - }); -} - -Future> fetchCharts() async { - final dio = Dio(); - final response = await dio.get('https://helm.badhouseplants.net/api/charts', - options: Options(headers: { - "Accept": "application/json", - })); - if (response.statusCode == 200) { - final Map charsRaw = json.decode(response.data); - - List charts = []; - charsRaw.forEach((key, value) { - charts.add(HelmChart(name: key, version: value.first["version"])); - }); - return charts; - } else { - throw Exception('Failed to load album'); - } -} diff --git a/lib/components/login_form.dart b/lib/components/login_form.dart index a4bb0c2..65ece6e 100644 --- a/lib/components/login_form.dart +++ b/lib/components/login_form.dart @@ -1,4 +1,4 @@ -import 'dart:html'; +import 'package:web/web.dart' as web; import 'package:flutter/material.dart'; import 'package:grpc/grpc_web.dart'; @@ -39,8 +39,8 @@ class _LoginFormState extends State { final password = passwordCtrl.text; final email = emailCtrl.text; accountsGrpc.signUp(username, email, password).then((rs) { - window.localStorage["token"] = rs.token; - window.localStorage["uuid"] = rs.uuid; + web.window.localStorage.setItem("token", rs.token); + web.window.localStorage.setItem("uuid", rs.uuid); widget.notifyParent(); Navigator.of(context, rootNavigator: true).pop(); }).catchError((e) { diff --git a/lib/components/menubar.dart b/lib/components/menubar.dart deleted file mode 100644 index cfc3bcd..0000000 --- a/lib/components/menubar.dart +++ /dev/null @@ -1,78 +0,0 @@ -// This project is not supposed to be cross-platform, -// so we don't care about this warning -// ignore: avoid_web_libraries_in_flutter -import 'dart:html'; - -import 'package:flutter/material.dart'; -import 'package:softplayer_web/api/grpc/accounts.dart'; -import 'package:softplayer_web/components/sign_in_form.dart'; -import 'package:softplayer_web/components/sign_up_form.dart'; - -class MenuPanel extends StatefulWidget implements PreferredSizeWidget { - final TabName tab; - final AccountsGrpc accountsGrpc; - const MenuPanel({ - super.key, - required this.tab, - required this.accountsGrpc, - }) : preferredSize = const Size.fromHeight(kToolbarHeight); - @override - final Size preferredSize; - @override - State createState() => _MenuPanel(); -} - -enum TabName { home, catalog, about } - -class _MenuPanel extends State { - bool isSignedIn() { - return window.localStorage.containsKey("token"); - } - - List accountActions() { - if (isSignedIn()) { - return [ - IconButton( - onPressed: () => print("acc"), - icon: const Icon(Icons.account_circle)) - ]; - } else { - return [ - TextButton( - onPressed: () { - showDialog( - context: context, - builder: (BuildContext context) => SignInForm( - accountsGrpc: widget.accountsGrpc, - )); - }, - child: const Text("sign in")), - TextButton( - onPressed: () { - showDialog( - context: context, - builder: (BuildContext context) => SignUpForm( - accountsGrpc: widget.accountsGrpc, - )); - }, - child: const Text("sign up")), - ]; - } - } - - @override - PreferredSizeWidget build(BuildContext context) { - return AppBar( - title: Row(children: [ - TextButton( - child: const Text("Softplayer"), - onPressed: () { - Navigator.pushNamed(context, "/"); - }), - ]), - backgroundColor: const Color.fromRGBO(46, 51, 78, 1.0), - automaticallyImplyLeading: false, - actions: accountActions(), - ); - } -} diff --git a/lib/main.dart b/lib/main.dart index 9e75aa8..a6db58f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,4 @@ -import 'dart:html'; - +import 'package:web/web.dart' as web; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter/material.dart'; import 'package:grpc/grpc_web.dart'; @@ -51,7 +50,7 @@ class _StateRootWidget extends State { } bool isSignedIn() { - return window.localStorage.containsKey("token"); + return web.window.localStorage.getItem("token") != null; } final GlobalKey _key = GlobalKey(); // Create a key diff --git a/pubspec.lock b/pubspec.lock index 86a8f09..707eb1a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -349,12 +349,12 @@ packages: dependency: transitive description: name: vm_service - sha256: "046d3928e16fa4dc46e8350415661755ab759d9fc97fc21b5ab295f71e4f0499" + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" url: "https://pub.dev" source: hosted - version: "15.1.0" + version: "15.2.0" web: - dependency: transitive + dependency: "direct main" description: name: web sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" diff --git a/pubspec.yaml b/pubspec.yaml index 6ce13fc..44d6e94 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -19,7 +19,7 @@ dependencies: http: ^1.6.0 dio: ^5.9.2 flutter_dotenv: ^6.0.1 - + web: ^1.1.1 dev_dependencies: flutter_test: sdk: flutter diff --git a/renovate.json b/renovate.json index 7190a60..02ae055 100644 --- a/renovate.json +++ b/renovate.json @@ -1,3 +1,4 @@ { - "$schema": "https://docs.renovatebot.com/renovate-schema.json" + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "dependencyDashboard": true }