From 1fb8ff78618aacbe7d67df295f2bb157d54a93d0 Mon Sep 17 00:00:00 2001
From: Sean Perkins <13732623+sean-perkins@users.noreply.github.com>
Date: Tue, 13 Feb 2024 20:29:14 -0500
Subject: [PATCH] feat(modal): remove capacitor 2 support for status bar styles
(#29028)
Issue number: N/A
---------
## What is the current behavior?
Ionic Framework has fallback detection for Capacitor 2 applications to
avoid applying status bar style changes to the card modal.
## What is the new behavior?
- Ionic Framework's detection for applying status bar styles will be
based on the APIs available in Capacitor 3+.
- Ionic Framework will no longer support the legacy Capacitor 2
configurations.
## Does this introduce a breaking change?
- [x] Yes
- [ ] No
Developer should upgrade to the latest major release of Capacitor.
## Other information
---
BREAKING.md | 5 +++++
core/src/components/modal/utils.ts | 10 ++--------
core/src/utils/native/status-bar.ts | 11 -----------
3 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/BREAKING.md b/BREAKING.md
index 3f015668a2..3f3e4ad0fa 100644
--- a/BREAKING.md
+++ b/BREAKING.md
@@ -21,6 +21,7 @@ This is a comprehensive list of the breaking changes introduced in the major ver
- [Content](#version-8x-content)
- [Datetime](#version-8x-datetime)
- [Input](#version-8x-input)
+ - [Modal](#version-8x-modal)
- [Nav](#version-8x-nav)
- [Picker](#version-8x-picker)
- [Progress bar](#version-8x-progress-bar)
@@ -159,6 +160,10 @@ For more information on the dynamic font, refer to the [Dynamic Font Scaling doc
- `accept` has been removed from the `ion-input` component. This was previously used in conjunction with the `type="file"`. However, the `file` value for `type` is not a valid value in Ionic Framework.
- The `legacy` property and support for the legacy syntax, which involved placing an `ion-input` inside of an `ion-item` with an `ion-label`, have been removed. For more information on migrating from the legacy input syntax, refer to the [Input documentation](https://ionicframework.com/docs/api/input#migrating-from-legacy-input-syntax).
+
Modal
+
+- Detection for Capacitor <= 2 with applying status bar styles has been removed. Developers should ensure they are using Capacitor 3 or later when using the card modal presentation.
+
Nav
- `getLength` returns `Promise` instead of ``. This method was not previously available in Nav's TypeScript interface, but developers could still access it by casting Nav as `any`. Developers should ensure they `await` their `getLength` call before accessing the returned value.
diff --git a/core/src/components/modal/utils.ts b/core/src/components/modal/utils.ts
index e2ea7e0142..ac01b3eebe 100644
--- a/core/src/components/modal/utils.ts
+++ b/core/src/components/modal/utils.ts
@@ -68,14 +68,9 @@ export const getBackdropValueForSheet = (x: number, backdropBreakpoint: number)
* is not transformed, so we do not need to
* adjust the status bar color.
*
- * Note: We check supportsDefaultStatusBarStyle so that
- * Capacitor <= 2 users do not get their status bar
- * stuck in an inconsistent state due to a lack of
- * support for Style.Default.
*/
export const setCardStatusBarDark = () => {
- // TODO FW-4696 Remove supportDefaultStatusBarStyle in Ionic v8
- if (!win || win.innerWidth >= 768 || !StatusBar.supportsDefaultStatusBarStyle()) {
+ if (!win || win.innerWidth >= 768) {
return;
}
@@ -83,8 +78,7 @@ export const setCardStatusBarDark = () => {
};
export const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
- // TODO FW-4696 Remove supportDefaultStatusBarStyle in Ionic v8
- if (!win || win.innerWidth >= 768 || !StatusBar.supportsDefaultStatusBarStyle()) {
+ if (!win || win.innerWidth >= 768) {
return;
}
diff --git a/core/src/utils/native/status-bar.ts b/core/src/utils/native/status-bar.ts
index 8d41d0264e..c673a55394 100644
--- a/core/src/utils/native/status-bar.ts
+++ b/core/src/utils/native/status-bar.ts
@@ -21,17 +21,6 @@ export const StatusBar = {
}
return undefined;
},
- // TODO FW-4696 Remove supportDefaultStatusBarStyle in Ionic v8
- supportsDefaultStatusBarStyle() {
- const capacitor = getCapacitor() as any;
- /**
- * The 'DEFAULT' status bar style was added
- * to the @capacitor/status-bar plugin in Capacitor 3.
- * PluginHeaders is only supported in Capacitor 3+,
- * so we can use this to detect Capacitor 3.
- */
- return !!capacitor?.PluginHeaders;
- },
setStyle(options: StyleOptions) {
const engine = this.getEngine();
if (!engine) {