From a827d120e3b11b7528b8c4681d012017aa3db939 Mon Sep 17 00:00:00 2001 From: Lenz Paul Date: Sun, 11 Feb 2024 17:31:29 -0500 Subject: [PATCH] Updates browser tab title setting method --- package/lib/src/beamer_delegate.dart | 14 +++++++------- .../lib/src/browser_tab_title_util_non_web.dart | 4 ++++ package/lib/src/browser_tab_title_util_web.dart | 10 ++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 package/lib/src/browser_tab_title_util_non_web.dart create mode 100644 package/lib/src/browser_tab_title_util_web.dart diff --git a/package/lib/src/beamer_delegate.dart b/package/lib/src/beamer_delegate.dart index 0194c9f..11d1023 100644 --- a/package/lib/src/beamer_delegate.dart +++ b/package/lib/src/beamer_delegate.dart @@ -1,4 +1,7 @@ import 'package:beamer/beamer.dart'; +import 'package:beamer/src/browser_tab_title_util_non_web.dart' + if (dart.library.html) 'package:beamer/src/browser_tab_title_util_web.dart' + as browser_tab_title_util; import 'package:beamer/src/utils.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -987,13 +990,10 @@ class BeamerDelegate extends RouterDelegate } void _setBrowserTitle(BuildContext context) { - if (active && kIsWeb && setBrowserTabTitle) { - SystemChrome.setApplicationSwitcherDescription( - ApplicationSwitcherDescription( - label: _currentPages.last.title ?? - currentBeamLocation.state.routeInformation.uri.path, - primaryColor: Theme.of(context).primaryColor.value, - )); + if (active && setBrowserTabTitle) { + final String title = _currentPages.last.title ?? + currentBeamLocation.state.routeInformation.uri.path; + browser_tab_title_util.setTabTitle(title); } } diff --git a/package/lib/src/browser_tab_title_util_non_web.dart b/package/lib/src/browser_tab_title_util_non_web.dart new file mode 100644 index 0000000..d1d204e --- /dev/null +++ b/package/lib/src/browser_tab_title_util_non_web.dart @@ -0,0 +1,4 @@ +/// {@macro browser_tab_title_util.tab_title} +setTabTitle(String title) { + // no-op +} diff --git a/package/lib/src/browser_tab_title_util_web.dart b/package/lib/src/browser_tab_title_util_web.dart new file mode 100644 index 0000000..91ba9ee --- /dev/null +++ b/package/lib/src/browser_tab_title_util_web.dart @@ -0,0 +1,10 @@ +import 'dart:html' as html; + +/// {@template browser_tab_title_util.tab_title} +/// Sets the title of the browser tab on web. +/// +/// This is a no-op on non-web platforms. +/// {@endtemplate} +setTabTitle(String title) { + html.document.title = title; +}