diff --git a/lib/bloc/cubits/export_cubit.dart b/lib/bloc/cubits/export_cubit.dart index 98ed81c..a7a8538 100644 --- a/lib/bloc/cubits/export_cubit.dart +++ b/lib/bloc/cubits/export_cubit.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'dart:html'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:powasys_frontend/bloc/repos/data_repo.dart'; @@ -8,6 +7,7 @@ import 'package:powasys_frontend/constants.dart'; import 'package:powasys_frontend/data/trend.dart'; import 'package:powasys_frontend/generated/l10n.dart'; import 'package:tuple/tuple.dart'; +import 'package:web/web.dart'; class ExportCubit extends Cubit { ExportCubit(this._dataRepo) @@ -66,13 +66,13 @@ class ExportCubit extends Cubit { "${e.item3[Trend.temperature]}\n", ).join()}'; + final elem = document.createElement('anchor') as HTMLAnchorElement + ..href = 'data:application/octet-stream;charset=utf-16le;base64,' + '${base64Encode(toExport.codeUnits)}'; emit( state.copyWith( state: ExportGenState.exported, - toDownload: AnchorElement( - href: 'data:application/octet-stream;charset=utf-16le;base64,' - '${base64Encode(toExport.codeUnits)}', - ), + toDownload: elem, ), ); } catch (e) { diff --git a/lib/bloc/states.dart b/lib/bloc/states.dart index c98bfc2..9c6d2e0 100644 --- a/lib/bloc/states.dart +++ b/lib/bloc/states.dart @@ -1,9 +1,8 @@ -import 'dart:html'; - import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; import 'package:powasys_frontend/data/trend.dart'; import 'package:tuple/tuple.dart'; +import 'package:web/web.dart'; class BlocState { const BlocState( @@ -82,12 +81,12 @@ class ExportState extends BlocState { this.toDownload, }); - final AnchorElement? toDownload; + final HTMLAnchorElement? toDownload; ExportState copyWith({ ExportGenState? state, ex, - AnchorElement? toDownload, + HTMLAnchorElement? toDownload, }) => ExportState( state ?? super.state, diff --git a/pubspec.lock b/pubspec.lock index a8a9891..f410605 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -350,7 +350,7 @@ packages: source: hosted version: "2.1.4" web: - dependency: transitive + dependency: "direct main" description: name: web sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 diff --git a/pubspec.yaml b/pubspec.yaml index d984213..fff9cce 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,6 +40,7 @@ dependencies: package_info_plus: ^8.0.0 sprintf: ^7.0.0 tuple: ^2.0.0 + web: ^1.0.0 dev_dependencies: flutter_lints: ^4.0.0