diff --git a/lib/data/repositories/persistence_repository.dart b/lib/data/repositories/persistence_repository.dart index 0e710478d..44191f101 100644 --- a/lib/data/repositories/persistence_repository.dart +++ b/lib/data/repositories/persistence_repository.dart @@ -1,16 +1,17 @@ import 'dart:async'; import 'dart:convert'; import 'dart:core'; -//import 'dart:html' as html; import 'dart:io'; +import 'package:meta/meta.dart'; import 'package:flutter/foundation.dart'; import 'package:invoiceninja_flutter/redux/static/static_state.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_state.dart'; import 'package:invoiceninja_flutter/redux/company/company_state.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_state.dart'; -import 'package:meta/meta.dart'; import 'package:invoiceninja_flutter/data/models/serializers.dart'; import 'package:invoiceninja_flutter/data/file_storage.dart'; +import 'package:invoiceninja_flutter/utils/web_stub.dart' + if (dart.library.html) 'package:invoiceninja_flutter/utils/web.dart'; class PersistenceRepository { const PersistenceRepository({ @@ -25,11 +26,8 @@ class PersistenceRepository { state.rebuild((b) => b..userCompany.token.token = ''); if (kIsWeb) { - /* - print('## COOKIE: ${html.window.document.cookie}'); - html.window.document.cookie = - 'token=$token; expires=Sat, 19 Dec 2099 12:00:00 UTC; Secure; SameSite=Strict;'; - */ + print('## COOKIE: ${readCookie()}'); + writeCookie('token', token); } // TODO persist stateWithoutToken diff --git a/lib/ui/settings/company_details.dart b/lib/ui/settings/company_details.dart index 55607a97f..713205305 100644 --- a/lib/ui/settings/company_details.dart +++ b/lib/ui/settings/company_details.dart @@ -17,7 +17,8 @@ import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/dialogs.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; -import 'package:invoiceninja_flutter/utils/web.dart'; +import 'package:invoiceninja_flutter/utils/web_stub.dart' + if (dart.library.html) 'package:invoiceninja_flutter/utils/web.dart'; class CompanyDetails extends StatefulWidget { const CompanyDetails({ diff --git a/lib/utils/web.dart b/lib/utils/web.dart index dfb1433cd..9b8f48591 100644 --- a/lib/utils/web.dart +++ b/lib/utils/web.dart @@ -1,6 +1,15 @@ import 'dart:async'; import 'dart:html'; +void writeCookie(String key, String value) { + window.document.cookie = + '$key=$value; expires=Sat, 19 Dec 2099 12:00:00 UTC; Secure; SameSite=Strict;'; +} + +String readCookie() { + return window.document.cookie; +} + Future getFileOnWeb() { final completer = new Completer(); final InputElement input = document.createElement('input'); diff --git a/lib/utils/web_stub.dart b/lib/utils/web_stub.dart new file mode 100644 index 000000000..6276a6ea1 --- /dev/null +++ b/lib/utils/web_stub.dart @@ -0,0 +1,5 @@ +void writeCookie(String key, String value) {} + +String readCookie() => null; + +Future getFileOnWeb() => null; diff --git a/pubspec.lock b/pubspec.lock index c910a3e97..53cbea506 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -562,7 +562,7 @@ packages: name: native_pdf_renderer url: "https://pub.dartlang.org" source: hosted - version: "1.6.2" + version: "1.7.0" native_pdf_view: dependency: "direct main" description: @@ -597,7 +597,7 @@ packages: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.9.0" package_resolver: dependency: transitive description: @@ -826,7 +826,7 @@ packages: name: stream_transform url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" string_scanner: dependency: transitive description: @@ -1003,5 +1003,5 @@ packages: source: hosted version: "2.2.0" sdks: - dart: ">=2.7.0-dev <3.0.0" + dart: ">=2.7.0 <3.0.0" flutter: ">=1.12.13+hotfix.5 <2.0.0"