Compare commits

..

7 Commits

Author SHA1 Message Date
Sean Perkins
77bfa7986c fix(react-router): parameterized routes create new instances 2023-07-20 21:24:48 -04:00
Liam DeBeasi
38626d9680 fix(modal): body background is reset with inline card modals (#27835)
Issue number: resolves #27830

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Card modals set the body background to `black` to match iOS. This color
should be removed once the final card modal has been closed. When modals
were updated to work inline, the code that removed the background color
was never updated to account for this. As a result, opening multiple
inline card modals never removes the background color because there are
always >1 modals in the DOM.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- The card modal now queries for _visible_ modals in the DOM to
determine if it should remove the background color.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

Dev-build: `7.2.1-dev.11689879279.14e28634`
2023-07-20 19:13:02 +00:00
Liam DeBeasi
6e4919caff fix(item-sliding): buttons are not interactive on close (#27829)
Issue number: resolves #22722

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Item Sliding Options are not disabled until after a 600ms timeout. This
timeout exists to allow the close transition to complete. Without the
timeout, the item sliding options disappear without a transition. I
explored waiting for the `transitionend` event instead of the
`setTimeout`, but the bug persisted.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- If an item sliding is closing then we add a class to the host. This
class disables pointer events on all `ion-item-options` children so the
buttons cannot be accidentally tapped while closing. This class is then
removed after the 600ms timeout.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2023-07-20 18:27:45 +00:00
dependabot[bot]
5122ced9e1 chore(deps-dev): Bump @capacitor/core from 5.2.1 to 5.2.2 in /core (#27832)
Bumps [@capacitor/core](https://github.com/ionic-team/capacitor) from
5.2.1 to 5.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ionic-team/capacitor/releases"><code>@​capacitor/core</code>'s
releases</a>.</em></p>
<blockquote>
<h2>5.2.2</h2>
<h2><a
href="https://github.com/ionic-team/capacitor/compare/5.2.1...5.2.2">5.2.2</a>
(2023-07-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add http method to prototype.open (<a
href="https://redirect.github.com/ionic-team/capacitor/issues/6740">#6740</a>)
(<a
href="1fd2d8762f">1fd2d87</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ionic-team/capacitor/blob/main/CHANGELOG.md"><code>@​capacitor/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/ionic-team/capacitor/compare/5.2.1...5.2.2">5.2.2</a>
(2023-07-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add http method to prototype.open (<a
href="https://redirect.github.com/ionic-team/capacitor/issues/6740">#6740</a>)
(<a
href="1fd2d8762f">1fd2d87</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f378edae9e"><code>f378eda</code></a>
Release 5.2.2</li>
<li><a
href="1fd2d8762f"><code>1fd2d87</code></a>
fix: add http method to prototype.open (<a
href="https://redirect.github.com/ionic-team/capacitor/issues/6740">#6740</a>)</li>
<li><a
href="67c7f6e7bd"><code>67c7f6e</code></a>
chore: Improve bot message for requesting reproductions (<a
href="https://redirect.github.com/ionic-team/capacitor/issues/6735">#6735</a>)</li>
<li>See full diff in <a
href="https://github.com/ionic-team/capacitor/compare/5.2.1...5.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@capacitor/core&package-manager=npm_and_yarn&previous-version=5.2.1&new-version=5.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-20 15:40:09 +00:00
Liam DeBeasi
3c794d25d6 merge feature-7.2
Feature 7.2
2023-07-19 14:24:54 -04:00
Liam DeBeasi
9c799a6eea merge release-7.2
Release 7.2
2023-07-19 13:41:06 -04:00
ionitron
08cc3d93ae chore(): update package lock files 2023-07-19 16:29:26 +00:00
15 changed files with 126 additions and 75 deletions

14
core/package-lock.json generated
View File

@@ -15,7 +15,7 @@
},
"devDependencies": {
"@axe-core/playwright": "^4.7.3",
"@capacitor/core": "^5.2.1",
"@capacitor/core": "^5.2.2",
"@capacitor/haptics": "^5.0.6",
"@capacitor/keyboard": "^5.0.6",
"@capacitor/status-bar": "^5.0.6",
@@ -607,9 +607,9 @@
"dev": true
},
"node_modules/@capacitor/core": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.2.1.tgz",
"integrity": "sha512-v7nzTQZj9l99Sp0v8C7Zq8QX6Cg5ljq7ASneWk/Hc5nBR5LOj/k3a+yEx/RoclWtkxJfs89Y5k+KJTFFQ6cLoA==",
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.2.2.tgz",
"integrity": "sha512-3jKECZC5+YD2rljMZm1e/K3AYyoxUmLDZCyofTPbRYPBSI0wJh5ZCkX+XIGzNM0o/Wokl3Voa1JB8xsLC0MPxA==",
"dev": true,
"dependencies": {
"tslib": "^2.1.0"
@@ -10784,9 +10784,9 @@
"dev": true
},
"@capacitor/core": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.2.1.tgz",
"integrity": "sha512-v7nzTQZj9l99Sp0v8C7Zq8QX6Cg5ljq7ASneWk/Hc5nBR5LOj/k3a+yEx/RoclWtkxJfs89Y5k+KJTFFQ6cLoA==",
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-5.2.2.tgz",
"integrity": "sha512-3jKECZC5+YD2rljMZm1e/K3AYyoxUmLDZCyofTPbRYPBSI0wJh5ZCkX+XIGzNM0o/Wokl3Voa1JB8xsLC0MPxA==",
"dev": true,
"requires": {
"tslib": "^2.1.0"

View File

@@ -37,7 +37,7 @@
},
"devDependencies": {
"@axe-core/playwright": "^4.7.3",
"@capacitor/core": "^5.2.1",
"@capacitor/core": "^5.2.2",
"@capacitor/haptics": "^5.0.6",
"@capacitor/keyboard": "^5.0.6",
"@capacitor/status-bar": "^5.0.6",

View File

@@ -29,6 +29,9 @@ ion-item-sliding .item {
will-change: transform;
}
.item-sliding-closing ion-item-options {
pointer-events: none;
}
.item-sliding-active-swipe-end .item-options-end .item-option-expandable {
@include multi-dir() {

View File

@@ -407,6 +407,9 @@ export class ItemSliding implements ComponentInterface {
if (!this.item) {
return;
}
const { el } = this;
const style = this.item.style;
this.openAmount = openAmount;
@@ -425,6 +428,12 @@ export class ItemSliding implements ComponentInterface {
? SlidingState.Start | SlidingState.SwipeStart
: SlidingState.Start;
} else {
/**
* The sliding options should not be
* clickable while the item is closing.
*/
el.classList.add('item-sliding-closing');
/**
* Item sliding cannot be interrupted
* while closing the item. If it did,
@@ -441,6 +450,7 @@ export class ItemSliding implements ComponentInterface {
if (this.gesture) {
this.gesture.enable(!this.disabled);
}
el.classList.remove('item-sliding-closing');
}, 600);
openSlidingItem = undefined;

View File

@@ -51,9 +51,9 @@ export const iosLeaveAnimation = (baseEl: HTMLElement, opts: ModalAnimationOptio
presentingEl.style.setProperty('overflow', '');
const numModals = Array.from(bodyEl.querySelectorAll('ion-modal')).filter(
(m) => m.presentingElement !== undefined
).length;
const numModals = (
Array.from(bodyEl.querySelectorAll('ion-modal:not(.overlay-hidden)')) as HTMLIonModalElement[]
).filter((m) => m.presentingElement !== undefined).length;
if (numModals <= 1) {
bodyEl.style.setProperty('background-color', '');
}

View File

@@ -1060,9 +1060,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -7342,9 +7342,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",

View File

@@ -1227,9 +1227,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -8104,9 +8104,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",

View File

@@ -205,9 +205,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -401,11 +401,11 @@
}
},
"node_modules/@ionic/react": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.1.4.tgz",
"integrity": "sha512-sy8a4TXMzS3cfGEAr7gb73PYn+0VsmfUkpAJdH2rd4C9qdcvNqQfL3Yy+Ut9HfsvY6lk3LJsm1+eeqPbKgG94w==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.2.0.tgz",
"integrity": "sha512-90evXKqkpptvSVYbxyyY/D9hE20ZbRV1dyZhxL5PzeLt4eIuvz6G11gTfH8YCyEAhBFZpCsg+mpcIcoP45ITvA==",
"dependencies": {
"@ionic/core": "7.1.4",
"@ionic/core": "7.2.0",
"ionicons": "^7.0.0",
"tslib": "*"
},
@@ -3663,9 +3663,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -3786,11 +3786,11 @@
"requires": {}
},
"@ionic/react": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.1.4.tgz",
"integrity": "sha512-sy8a4TXMzS3cfGEAr7gb73PYn+0VsmfUkpAJdH2rd4C9qdcvNqQfL3Yy+Ut9HfsvY6lk3LJsm1+eeqPbKgG94w==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.2.0.tgz",
"integrity": "sha512-90evXKqkpptvSVYbxyyY/D9hE20ZbRV1dyZhxL5PzeLt4eIuvz6G11gTfH8YCyEAhBFZpCsg+mpcIcoP45ITvA==",
"requires": {
"@ionic/core": "7.1.4",
"@ionic/core": "7.2.0",
"ionicons": "^7.0.0",
"tslib": "*"
}

View File

@@ -44,6 +44,7 @@ class IonRouterInner extends React.PureComponent<IonRouteProps, IonRouteState> {
createViewItem: this.viewStack.createViewItem,
findViewItemByRouteInfo: this.viewStack.findViewItemByRouteInfo,
findLeavingViewItemByRouteInfo: this.viewStack.findLeavingViewItemByRouteInfo,
findRouteMatchByRouteInfo: this.viewStack.findRouteMatchByRouteInfo,
addViewItem: this.viewStack.add,
unMountViewItem: this.viewStack.remove,
};

View File

@@ -11,6 +11,7 @@ export class ReactRouterViewStack extends ViewStacks {
this.findLeavingViewItemByRouteInfo = this.findLeavingViewItemByRouteInfo.bind(this);
this.getChildrenToRender = this.getChildrenToRender.bind(this);
this.findViewItemByPathname = this.findViewItemByPathname.bind(this);
this.findRouteMatchByRouteInfo = this.findRouteMatchByRouteInfo.bind(this);
}
createViewItem(outletId: string, reactElement: React.ReactElement, routeInfo: RouteInfo, page?: HTMLElement) {
@@ -96,12 +97,8 @@ export class ReactRouterViewStack extends ViewStacks {
return children;
}
findViewItemByRouteInfo(routeInfo: RouteInfo, outletId?: string, updateMatch?: boolean) {
const { viewItem, match } = this.findViewItemByPath(routeInfo.pathname, outletId);
const shouldUpdateMatch = updateMatch === undefined || updateMatch === true;
if (shouldUpdateMatch && viewItem && match) {
viewItem.routeData.match = match;
}
findViewItemByRouteInfo(routeInfo: RouteInfo, outletId?: string) {
const { viewItem } = this.findViewItemByPath(routeInfo.pathname, outletId);
return viewItem;
}
@@ -115,6 +112,11 @@ export class ReactRouterViewStack extends ViewStacks {
return viewItem;
}
findRouteMatchByRouteInfo(routeInfo: RouteInfo, outletId?: string) {
const { match } = this.findViewItemByPath(routeInfo.pathname, outletId);
return match;
}
private findViewItemByPath(pathname: string, outletId?: string, forceExact?: boolean, mustBeIonRoute?: boolean) {
let viewItem: ViewItem | undefined;
let match: ReturnType<typeof matchPath> | undefined;

View File

@@ -93,6 +93,22 @@ export class StackManager extends React.PureComponent<StackManagerProps, StackMa
let enteringViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id);
let leavingViewItem = this.context.findLeavingViewItemByRouteInfo(routeInfo, this.id);
let recreateEnteringView = false;
if (routeInfo.prevRouteLastPathname) {
let prevRouteViewItem = this.context.findViewItemByPathname(routeInfo.prevRouteLastPathname, this.id);
if (prevRouteViewItem) {
if (prevRouteViewItem === enteringViewItem && prevRouteViewItem.routeData.match.url !== routeInfo.pathname) {
recreateEnteringView = true;
}
}
}
const match = this.context.findRouteMatchByRouteInfo(routeInfo, this.id);
if (enteringViewItem && match) {
enteringViewItem.routeData.match = match;
}
if (!leavingViewItem && routeInfo.prevRouteLastPathname) {
leavingViewItem = this.context.findViewItemByPathname(routeInfo.prevRouteLastPathname, this.id);
}
@@ -113,6 +129,23 @@ export class StackManager extends React.PureComponent<StackManagerProps, StackMa
const enteringRoute = matchRoute(this.ionRouterOutlet?.props.children, routeInfo) as React.ReactElement;
if (enteringViewItem) {
const match = this.context.findRouteMatchByRouteInfo(routeInfo, this.id);
if (match) {
enteringViewItem.routeData.match = match;
}
/**
* If we are re-entering a view item, then we need to validate that the
* view item is valid for the current route. For example, if the user navigates
* to a parametrized route: /foo/:id, then navigates to /example, then navigates
* back to /foo/:id, we only want to re-use the view item if the id param is the same.
* Otherwise we need to construct a new view item.
*/
if (recreateEnteringView) {
enteringViewItem = this.context.createViewItem(this.id, enteringRoute, routeInfo);
this.context.addViewItem(enteringViewItem);
}
enteringViewItem.reactElement = enteringRoute;
} else if (enteringRoute) {
enteringViewItem = this.context.createViewItem(this.id, enteringRoute, routeInfo);
@@ -223,7 +256,7 @@ export class StackManager extends React.PureComponent<StackManagerProps, StackMa
this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute
? this.prevProps.routeInfo
: ({ pathname: routeInfo.pushedByRoute || '' } as any);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id);
return (
!!enteringViewItem &&
@@ -253,8 +286,8 @@ export class StackManager extends React.PureComponent<StackManagerProps, StackMa
this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute
? this.prevProps.routeInfo
: ({ pathname: routeInfo.pushedByRoute || '' } as any);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);
const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id, false);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id);
const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id);
/**
* When the gesture starts, kick off
@@ -284,8 +317,8 @@ export class StackManager extends React.PureComponent<StackManagerProps, StackMa
this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute
? this.prevProps.routeInfo
: ({ pathname: routeInfo.pushedByRoute || '' } as any);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);
const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id, false);
const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id);
const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id);
/**
* Ionic React has a design defect where it

View File

@@ -697,9 +697,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -11778,9 +11778,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",

View File

@@ -16,7 +16,8 @@ export interface RouteManagerContextState {
) => ViewItem;
findViewItemByPathname(pathname: string, outletId?: string): ViewItem | undefined;
findLeavingViewItemByRouteInfo: (routeInfo: RouteInfo, outletId?: string) => ViewItem | undefined;
findViewItemByRouteInfo: (routeInfo: RouteInfo, outletId?: string, updateMatch?: boolean) => ViewItem | undefined;
findViewItemByRouteInfo: (routeInfo: RouteInfo, outletId?: string) => ViewItem | undefined;
findRouteMatchByRouteInfo: (routeInfo: RouteInfo, outletId?: string) => any | undefined;
getChildrenToRender: (
outletId: string,
ionRouterOutlet: React.ReactElement,
@@ -36,6 +37,7 @@ export const RouteManagerContext = /*@__PURE__*/ React.createContext<RouteManage
findViewItemByPathname: () => undefined,
findLeavingViewItemByRouteInfo: () => undefined,
findViewItemByRouteInfo: () => undefined,
findRouteMatchByRouteInfo: () => undefined,
getChildrenToRender: () => undefined as any,
goBack: () => undefined,
unMountViewItem: () => undefined,

View File

@@ -660,9 +660,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -871,11 +871,11 @@
}
},
"node_modules/@ionic/vue": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.1.4.tgz",
"integrity": "sha512-r7UDUteuzCHVNJWlwiiucYVKhRoS6b2SQ8AqBm1rZy/dGghDyGLbIn3jjowUQNIE4qnV1M6+Im6JtzbwctevqQ==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.2.0.tgz",
"integrity": "sha512-KcfQ00pwevAhaRh5izlKnOEt9y38896WB6Qp8q8wpLux/+Ax4o+XPWNkSt5NxtEPHesdop5qv/oFTENn2diKnw==",
"dependencies": {
"@ionic/core": "7.1.4",
"@ionic/core": "7.2.0",
"ionicons": "^7.0.0"
}
},
@@ -7697,9 +7697,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -7829,11 +7829,11 @@
"requires": {}
},
"@ionic/vue": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.1.4.tgz",
"integrity": "sha512-r7UDUteuzCHVNJWlwiiucYVKhRoS6b2SQ8AqBm1rZy/dGghDyGLbIn3jjowUQNIE4qnV1M6+Im6JtzbwctevqQ==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.2.0.tgz",
"integrity": "sha512-KcfQ00pwevAhaRh5izlKnOEt9y38896WB6Qp8q8wpLux/+Ax4o+XPWNkSt5NxtEPHesdop5qv/oFTENn2diKnw==",
"requires": {
"@ionic/core": "7.1.4",
"@ionic/core": "7.2.0",
"ionicons": "^7.0.0"
}
},

View File

@@ -207,9 +207,9 @@
"dev": true
},
"node_modules/@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"dependencies": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",
@@ -3746,9 +3746,9 @@
"dev": true
},
"@ionic/core": {
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.1.4.tgz",
"integrity": "sha512-/h32Sc7Jd8csdMZ6BhddoTGC/X7cO0tIOeDuyC/ypMarXajScHc0pgVEBneAA7PVBEVxsoeMDP7yuqJt6Duaiw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.2.0.tgz",
"integrity": "sha512-FV2EAppqKc8jSedEOLZe25eJeW+Pqds2fFjyrHzlKododA1rxoFmiszBQC+e5cvrL1AEFSl/y0VxU/LNpImSZA==",
"requires": {
"@stencil/core": "^3.4.0",
"ionicons": "7.1.0",