Skip to content

Commit

Permalink
Do not use provider inside helper classes
Browse files Browse the repository at this point in the history
  • Loading branch information
PrimozRatej committed Sep 25, 2024
1 parent 75ba8d5 commit 92b875d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
3 changes: 2 additions & 1 deletion lib/flavored/web_view.f.dart
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ class FlavoredWebViewState extends ConsumerState<WebViewF> {
Future<bool> _onCreateWindow(InAppWebViewController controller, CreateWindowAction createWindowAction) async {
final urlToOpen = createWindowAction.request.url;
if (urlToOpen == null) return Future.value(false);
if (WebViewGlobalController.openCreateWindowInWebView(ref, urlToOpen.rawValue)) {
if (WebViewGlobalController.openCreateWindowInWebView(
url: urlToOpen.rawValue, manifest: instance.manifest)) {
controller.loadUrl(urlRequest: createWindowAction.request);
return Future.value(false);
}
Expand Down
7 changes: 6 additions & 1 deletion lib/pages/web_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ class WebViewAppState extends ConsumerState<WebView> {

//Open in external browser
final url = action.request.url!.rawValue;

/// First BLOCK everything that rules out as blocked.
if (BlackListRules.check(url)) {
return NavigationActionPolicy.CANCEL;
Expand Down Expand Up @@ -195,7 +196,11 @@ class WebViewAppState extends ConsumerState<WebView> {
WebUri? urlToOpen = createWindowAction.request.url;

if (urlToOpen == null) return Future.value(false);
if (WebViewGlobalController.openCreateWindowInWebView(ref, urlToOpen.rawValue)) {
if (WebViewGlobalController.openCreateWindowInWebView(

url: urlToOpen.rawValue,
manifest: ref.read(humHubProvider).manifest!,
)) {
controller.loadUrl(urlRequest: createWindowAction.request);
return Future.value(false);
}
Expand Down
8 changes: 3 additions & 5 deletions lib/util/web_view_global_controller.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import 'dart:convert';

import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:humhub/util/providers.dart';
import 'package:humhub/models/manifest.dart';

class WebViewGlobalController {
static InAppWebViewController? _value;
Expand All @@ -21,8 +19,8 @@ class WebViewGlobalController {
/// [ref] is reference to the app state.
/// [url] is the URL to evaluate.
/// @return `true` if the URL should open in a new window, `false` otherwise.
static bool openCreateWindowInWebView(WidgetRef ref, String url) {
String? baseUrl = ref.read(humHubProvider).manifest?.baseUrl;
static bool openCreateWindowInWebView({required String url, required Manifest manifest}) {
String? baseUrl = manifest.baseUrl;
if (url.startsWith('$baseUrl/file/file/download')) return true;
if (url.startsWith('$baseUrl/u')) return true;
if (url.startsWith('$baseUrl/s')) return true;
Expand Down

0 comments on commit 92b875d

Please sign in to comment.