Commit Graph

516 Commits

Author SHA1 Message Date
Liam DeBeasi
ac251c75fb Merge remote-tracking branch 'origin/main' into workspace-test 2024-01-29 14:06:08 -05:00
Liam DeBeasi
b1c4c72474 refactor(react, react-router): build works on windows (#28904)
Issue number: Internal
---------

<!-- 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. -->

React and React Router packages do not build correctly on Windows
because certain dependencies were not marked as external.
## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- 3rd party packages are correctly marked as external


## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/.github/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2024-01-29 18:15:50 +00:00
Liam DeBeasi
e35fe27803 chore: update e2e app lockfiles 2024-01-25 13:28:34 -05:00
Liam DeBeasi
14c8e826c2 chore: fix package.json merge conflict 2024-01-25 13:16:22 -05:00
Liam DeBeasi
594925ea78 chore: sync 2024-01-25 13:15:39 -05:00
ionitron
67bee73513 chore(): update package lock files 2024-01-24 14:15:49 +00:00
ionitron
0c4e1fcdb4 v7.6.6 2024-01-24 14:15:07 +00:00
Liam DeBeasi
0fb88315df chore: update package lock 2024-01-17 09:41:15 -05:00
Liam DeBeasi
71e485d770 chore: clean up changelog 2024-01-17 09:31:16 -05:00
ionitron
e2708ff651 v7.6.5 2024-01-17 14:23:09 +00:00
Liam DeBeasi
076c9fed29 merge release-7.6.4 2024-01-10 11:28:13 -05:00
Liam DeBeasi
b2e40cdcb8 chore: update package lock files 2024-01-03 09:57:18 -05:00
ionitron
ebb9ae9c11 v7.6.3 2024-01-03 14:52:37 +00:00
Sean Perkins
55f9cba9fc fix: react-router test app package resolution 2023-12-28 16:22:25 -05:00
Liam DeBeasi
3a7f8b65fe add type package 2023-12-19 12:29:24 -05:00
Liam DeBeasi
29f5ba0535 test(react-router): add history types 2023-12-19 12:08:49 -05:00
Liam DeBeasi
9e901309f2 history is a dependency 2023-12-19 11:50:05 -05:00
Liam DeBeasi
40122929bc chore: update 2023-12-19 11:34:34 -05:00
Liam DeBeasi
c44bfa07dd test(react-router): use file protocol for test app 2023-12-19 11:26:17 -05:00
ionitron
bfd497f825 chore(): update package lock files 2023-12-19 14:45:31 +00:00
ionitron
8d841b4225 v7.6.2 2023-12-19 14:45:17 +00:00
Liam DeBeasi
d9e5b4aafb remove sync commands 2023-12-18 22:49:06 -05:00
Liam DeBeasi
622fcc0093 add history dep to react router 2023-12-18 22:41:03 -05:00
Liam DeBeasi
e4e6d4525a react router test apps use pnpm 2023-12-18 22:29:11 -05:00
Liam DeBeasi
cd7563119b use pnpm commands 2023-12-18 22:09:10 -05:00
Liam DeBeasi
4e94176b34 chore: sync 2023-12-18 17:05:43 -05:00
Liam DeBeasi
f6531fa2be chore: bump package-lock 2023-12-13 09:31:00 -05:00
ionitron
150ea1a8ad v7.6.1 2023-12-13 14:27:51 +00:00
Alexander Harding
a17b963182 fix(react): replacing route uses new route direction and animation (#28671)
Issue number: resolves #24260

---------

<!-- 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?

When replacing a route (`router.push(newRoute, 'none', 'replace')`) the
`RouterDirection` from the route being replaced is being used (if it
exists) instead of the new one the user specifies.

## What is the new behavior?

User-specified `RouteDirection` is used, if it exists. If it doesn't it
falls back to the `RouteDirection` of the route being replaced.

## 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

Please see the following comment for why I think the current behavior is
incorrect, and why this change is needed:
https://github.com/ionic-team/ionic-framework/issues/24260#issuecomment-1078960780

---------

Co-authored-by: Liam DeBeasi <liamdebeasi@users.noreply.github.com>
2023-12-11 21:09:41 +00:00
Liam DeBeasi
fc88613fef fix(react): use custom animation when going back after a replace (#28674)
Issue number: resolves #28673

---------

<!-- 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. -->

When reviewing https://github.com/ionic-team/ionic-framework/pull/28671
I noticed a bug where the custom animation was not used when going back
after a replace.

`handleNavigate` will override whatever is in `incomingRouteParams`.
Since we were passing `routeAnimation` (which is `undefined`), it was
overriding the animation we set in `handleNavigateBack`.

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

- `routeAnimation` is no longer overridden

## 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.6.1-dev.11702048520.13c82dad`
2023-12-11 17:31:27 +00:00
ionitron
f3799f332b chore(): update package lock files 2023-12-06 15:33:57 +00:00
ionitron
90ce7f00fa v7.6.0 2023-12-06 15:33:45 +00:00
ionitron
5573fde6a2 chore(): update package lock files 2023-12-06 15:04:35 +00:00
ionitron
507d5ee1da v7.5.8 2023-12-06 15:04:23 +00:00
Sean Perkins
1705d064cc fix(react): router creates new view instances of parameterized routes (#28616)
Issue number: Resolves #26524 

---------

<!-- 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. -->

## Definitions

**Parameterized routes**: A route that includes one or more variables in
the path segments, such as `/form/:index`.

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

When an application routes from a parameterized route, to an
intermediary route, to the same parameterized route, but with a
different value/url, Ionic's routing logic is incorrectly reusing the
view item from the first instance of the parameterized route instead of
calculating that the matched path is different. This results in the
wrong view item being recycled and rendered.

Another way of representing it:
- User navigates to `/form/0` which resolves `FormPage`
- User enters `0` into the form and submits the form
- User navigates to `/link`, which resolves `LinkPage`
- User navigates to `/form/1`, which resolves `FormPage`
- However, instead of creating a new instance of `FormPage` it is
reusing the instance of `FormPage` from `/form/0` which includes the
form having `0` in the input.
  - The user now sees a "new view", but with cached data in the form.

This is not expected or desired. 


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

- Ionic's routing logic will validate if the entering view item matches
the match route data before reusing it. This results in new instances of
the view item being constructed when using parameterized routes.


https://github.com/ionic-team/ionic-framework/assets/13732623/e7e3d03f-2848-4429-9f60-9074d0761e45


## 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.5.8-dev.11701383555.17254408`
2023-12-01 22:11:41 +00:00
ionitron
2e1261a52c chore(): update package lock files 2023-11-29 15:05:23 +00:00
ionitron
3a35fdd2f5 v7.5.7 2023-11-29 15:05:12 +00:00
ionitron
93ed25693c chore(): update package lock files 2023-11-21 14:31:53 +00:00
ionitron
f6a740dce5 v7.5.6 2023-11-21 14:31:40 +00:00
ionitron
9bb45b3772 chore(): update package lock files 2023-11-15 15:27:39 +00:00
ionitron
78ce39f8c6 v7.5.5 2023-11-15 15:27:28 +00:00
Liam DeBeasi
aeeb84b77d refactor: introduce watch command (#28453)
Issue number: N/A

---------

<!-- 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. -->

This is part of my work for hack day, but I wanted to tackle the
following problems:

1. There is no easy way to have angular, angular-server, vue,
vue-router, react, and react-router automatically recompile when you
make a change. Right now you have to manually run `npm run build` every
time you make a change.

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

- Adds `npm run build.watch` to let developers easily watch for changes
in each project.
## 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-11-09 16:50:19 +00:00
ionitron
95b52ac8ba chore(): update package lock files 2023-11-08 14:49:04 +00:00
ionitron
5bd4af2c51 v7.5.4 2023-11-08 14:48:46 +00:00
Liam DeBeasi
dfaa006a7a refactor: update to rollup 4 (#28459)
Issue number: N/A

---------

<!-- 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. -->

The vue, vue-router, react, and react-router packages are bundled with a
version of rollup that are 2 major versions out of date.

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

- Update deps to rollup 4 and made any necessary changes as a result of
breaking changes
- Removed the react projects old treeshaking script. The rollup dep used
was incompatible with Rollup 4, and the script didn't work to begin
with.
- Removed the source maps and resolve plugins. These did not make any
difference in the final result, and source maps are still included in
the final build.
- Removed a PURE annotation from an import. Rollup 4 warns about this,
and this PURE annotation does not seem to be needed since every import
in this file uses "createReactComponent" to begin with.

## 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-11-07 15:21:46 +00:00
Liam DeBeasi
dfafb27435 chore: packages do not explicitly run tsc (#28450)
Issue number: N/A

---------

<!-- 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. -->

Rollup has a plugin to handle TypeScript compilation that we are not
using. As a result, we are maintaining unnecessary infrastructure such
as compiling to `dist-transpiled`(TS to JS) and then compiling the
results to `dist` (JS files to bundled code).

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

- Vue, Vue Router, React, and React Router now make use of the Rollup
Typescript plugin to handle TypeScript compilation for us. This lets us
remove the `dist-transpiled` directory altogether and the manual `tsc`
invocation.

## 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. -->

Developers should not see any changes in how they consume Ionic. This
just hands the TypeScript compilation step off to the Rollup plugin.

Dev build: `7.5.3-dev.11698859252.15ac163e`
2023-11-06 19:23:48 +00:00
Liam DeBeasi
d852ee5b72 chore: pass flags correctly 2023-11-03 11:53:44 -04:00
Liam DeBeasi
647320dd4b chore: update scripts to use pnpm 2023-11-03 11:45:21 -04:00
Liam DeBeasi
f9ca2f2f77 chore(react, react-router): remove sync script 2023-11-03 10:44:04 -04:00
Liam DeBeasi
4492d985f5 clean up commands 2023-11-02 17:21:23 -04:00