From b5f077b60e9b580a1e8cc05d3a590fde0d710a93 Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Fri, 11 Oct 2019 16:47:42 -0600 Subject: [PATCH 1/7] fix(react): moving tslint and friends to devDependencies (#19624) --- packages/react-router/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 1e66952c8b..d0296e3d70 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -36,10 +36,7 @@ "dist/" ], "dependencies": { - "tslib": "*", - "tslint": "^5.20.0", - "tslint-ionic-rules": "0.0.21", - "tslint-react": "^4.1.0" + "tslib": "*" }, "peerDependencies": { "@ionic/core": "^4.10.0", @@ -70,6 +67,9 @@ "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-sourcemaps": "^0.4.2", "ts-jest": "^24.0.2", + "tslint": "^5.20.0", + "tslint-ionic-rules": "0.0.21", + "tslint-react": "^4.1.0", "typescript": "3.5.3" }, "jest": { From 889f2824506cf3d94b9eb5d385d05b939dcca173 Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Fri, 11 Oct 2019 16:57:57 -0600 Subject: [PATCH 2/7] fix(build): properly update peer dependencies (#19639) --- .scripts/common.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.scripts/common.js b/.scripts/common.js index 577aae94bd..03996cac99 100644 --- a/.scripts/common.js +++ b/.scripts/common.js @@ -278,6 +278,9 @@ function updateDependency(pkg, dependency, version) { if (pkg.devDependencies && pkg.devDependencies[dependency]) { pkg.devDependencies[dependency] = version; } + if (pkg.peerDependencies && pkg.peerDependencies[dependency]) { + pkg.peerDependencies[dependency] = version; + } } function isVersionGreater(oldVersion, newVersion) { From 3ba9e71a1f492b68245746dd216f66608a13f506 Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Sun, 13 Oct 2019 11:59:47 -0600 Subject: [PATCH 3/7] fix(react): add IonPicker as controller component, fixes #19620 (#19643) --- packages/react/src/components/IonPicker.tsx | 5 +++++ packages/react/src/components/index.ts | 1 + packages/react/src/components/proxies.ts | 1 - 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 packages/react/src/components/IonPicker.tsx diff --git a/packages/react/src/components/IonPicker.tsx b/packages/react/src/components/IonPicker.tsx new file mode 100644 index 0000000000..03b6f08ad1 --- /dev/null +++ b/packages/react/src/components/IonPicker.tsx @@ -0,0 +1,5 @@ +import { PickerOptions, pickerController } from '@ionic/core'; + +import { createControllerComponent } from './createControllerComponent'; + +export const IonPicker = /*@__PURE__*/createControllerComponent('IonPicker', pickerController); diff --git a/packages/react/src/components/index.ts b/packages/react/src/components/index.ts index b308399a7d..f2e2952028 100644 --- a/packages/react/src/components/index.ts +++ b/packages/react/src/components/index.ts @@ -9,6 +9,7 @@ export * from './proxies'; export { IonAlert } from './IonAlert'; export { IonLoading } from './IonLoading'; export { IonToast } from './IonToast'; +export { IonPicker } from './IonPicker'; // createOverlayComponent export { IonActionSheet } from './IonActionSheet'; diff --git a/packages/react/src/components/proxies.ts b/packages/react/src/components/proxies.ts index c2d01c6e1a..685b24a485 100644 --- a/packages/react/src/components/proxies.ts +++ b/packages/react/src/components/proxies.ts @@ -50,7 +50,6 @@ export const IonMenu = /*@__PURE__*/createReactComponent('ion-menu-button'); export const IonMenuToggle = /*@__PURE__*/createReactComponent('ion-menu-toggle'); export const IonNote = /*@__PURE__*/createReactComponent('ion-note'); -export const IonPicker = /*@__PURE__*/createReactComponent('ion-picker'); export const IonPickerColumn = /*@__PURE__*/createReactComponent('ion-picker-column'); export const IonNav = /*@__PURE__*/createReactComponent('ion-nav'); export const IonProgressBar = /*@__PURE__*/createReactComponent('ion-progress-bar'); From 8935d4d1b66976af794eb9d42d7ca58782ef2641 Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Sun, 13 Oct 2019 15:20:39 -0600 Subject: [PATCH 4/7] fix(react): handle tab back nav better, fixes #19646 (#19647) --- .../src/components/navigation/IonTabBar.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/react/src/components/navigation/IonTabBar.tsx b/packages/react/src/components/navigation/IonTabBar.tsx index 18f4bfa265..79e8fbf178 100644 --- a/packages/react/src/components/navigation/IonTabBar.tsx +++ b/packages/react/src/components/navigation/IonTabBar.tsx @@ -6,7 +6,6 @@ import { IonTabBarInner } from '../inner-proxies'; import { IonTabButton } from '../proxies'; type Props = LocalJSX.IonTabBar & { - navigate?: (path: string, direction: 'back' | 'none') => void; currentPath?: string; slot?: 'bottom' | 'top'; }; @@ -22,6 +21,7 @@ interface State { } const IonTabBarUnwrapped = /*@__PURE__*/(() => class extends React.Component { + context!: React.ContextType; constructor(props: Props) { super(props); @@ -67,13 +67,15 @@ const IonTabBarUnwrapped = /*@__PURE__*/(() => class extends React.Component) => { - const { navigate } = this.props; - if (navigate) { - if (this.state.activeTab === e.detail.tab) { - navigate(this.state.tabs[e.detail.tab].originalHref, 'back'); + if (this.state.activeTab === e.detail.tab) { + const originalHref = this.state.tabs[e.detail.tab].originalHref; + if (this.context.hasIonicRouter()) { + this.context.goBack(originalHref); } else { - navigate(this.state.tabs[e.detail.tab].currentHref, 'none'); + this.context.navigate(originalHref, 'back'); } + } else { + this.context.navigate(this.state.tabs[e.detail.tab].currentHref, 'none'); } } @@ -96,6 +98,10 @@ const IonTabBarUnwrapped = /*@__PURE__*/(() => class extends React.Component ); } + + static get contextType() { + return NavContext; + } })(); export const IonTabBar: React.FC = props => { @@ -103,9 +109,6 @@ export const IonTabBar: React.FC = props => { return ( { - context.navigate(path, direction); - })} currentPath={props.currentPath || context.currentPath} > {props.children} From 28d21ae55f0404d9da3fa1d2f1aaf82759e124de Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Mon, 14 Oct 2019 08:43:39 -0600 Subject: [PATCH 5/7] chore(react): fixing test and another method to tab nav --- packages/react-router/src/ReactRouter/NavManager.tsx | 7 ++++++- packages/react/src/components/__tests__/IonTabs.spec.tsx | 4 ++-- packages/react/src/components/navigation/IonTabBar.tsx | 2 +- packages/react/src/contexts/NavContext.ts | 2 ++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/react-router/src/ReactRouter/NavManager.tsx b/packages/react-router/src/ReactRouter/NavManager.tsx index f4cd33f6b8..2e3183c2a0 100644 --- a/packages/react-router/src/ReactRouter/NavManager.tsx +++ b/packages/react-router/src/ReactRouter/NavManager.tsx @@ -33,7 +33,8 @@ export class NavManager extends React.Component { return; } // overridden in View for each IonPage + registerIonPage: () => { return; }, // overridden in View for each IonPage + tabNavigate: this.tabNavigate.bind(this) }; this.listenUnregisterCallback = this.props.history.listen((location: HistoryLocation) => { @@ -93,6 +94,10 @@ export class NavManager extends React.Component children; } diff --git a/packages/react/src/components/__tests__/IonTabs.spec.tsx b/packages/react/src/components/__tests__/IonTabs.spec.tsx index 9e98c9e9c1..15392f5eb5 100644 --- a/packages/react/src/components/__tests__/IonTabs.spec.tsx +++ b/packages/react/src/components/__tests__/IonTabs.spec.tsx @@ -10,7 +10,7 @@ describe('IonTabs', () => { const { container } = render( - {}}> + Schedule @@ -44,7 +44,7 @@ describe('IonTabs', () => { const { container } = render( - {}}> + {false && Schedule diff --git a/packages/react/src/components/navigation/IonTabBar.tsx b/packages/react/src/components/navigation/IonTabBar.tsx index 79e8fbf178..9b97707746 100644 --- a/packages/react/src/components/navigation/IonTabBar.tsx +++ b/packages/react/src/components/navigation/IonTabBar.tsx @@ -70,7 +70,7 @@ const IonTabBarUnwrapped = /*@__PURE__*/(() => class extends React.Component void; hasIonicRouter: () => boolean; registerIonPage: (page: HTMLElement) => void; + tabNavigate: (url: string) => void; currentPath: string | undefined; } @@ -26,6 +27,7 @@ export const NavContext = /*@__PURE__*/React.createContext({ } }, navigate: (path: string) => { window.location.pathname = path; }, + tabNavigate: () => undefined, hasIonicRouter: () => false, registerIonPage: () => undefined, currentPath: undefined From 48575f8163d9d136554379a606305fc279fee35a Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Mon, 14 Oct 2019 09:26:44 -0600 Subject: [PATCH 6/7] chore(): bumping timeout --- angular/test/test-app/e2e/protractor.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/angular/test/test-app/e2e/protractor.conf.js b/angular/test/test-app/e2e/protractor.conf.js index a625aa0124..238cc05d29 100644 --- a/angular/test/test-app/e2e/protractor.conf.js +++ b/angular/test/test-app/e2e/protractor.conf.js @@ -1,4 +1,4 @@ -// @ts-check + // @ts-check // Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/master/lib/config.ts From 53010057bb1946614a21156dc04f1dc6e7cc0c9b Mon Sep 17 00:00:00 2001 From: Ely Lucas Date: Mon, 14 Oct 2019 09:54:49 -0600 Subject: [PATCH 7/7] 4.11.1 --- CHANGELOG.md | 12 ++++++++++++ angular/package.json | 4 ++-- core/package.json | 2 +- docs/package.json | 2 +- packages/react-router/package.json | 10 +++++----- packages/react/package.json | 4 ++-- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5944aebd73..1cd92e7f6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## [4.11.1](https://github.com/ionic-team/ionic/compare/v4.11.0...v4.11.1) (2019-10-14) + + +### Bug Fixes + +* **build:** properly update peer dependencies ([#19639](https://github.com/ionic-team/ionic/issues/19639)) ([b552daa](https://github.com/ionic-team/ionic/commit/b552daa)) +* **react:** add IonPicker as controller component, fixes [#19620](https://github.com/ionic-team/ionic/issues/19620) ([#19643](https://github.com/ionic-team/ionic/issues/19643)) ([ed98d9e](https://github.com/ionic-team/ionic/commit/ed98d9e)) +* **react:** handle tab back nav better, fixes [#19646](https://github.com/ionic-team/ionic/issues/19646) ([#19647](https://github.com/ionic-team/ionic/issues/19647)) ([8776556](https://github.com/ionic-team/ionic/commit/8776556)) +* **react:** moving tslint and friends to devDependencies ([#19624](https://github.com/ionic-team/ionic/issues/19624)) ([7f4b77d](https://github.com/ionic-team/ionic/commit/7f4b77d)) + + + # [4.11.0 Sodium](https://github.com/ionic-team/ionic/compare/v4.10.3...v4.11.0) (2019-10-09) Ionic React! Enjoy! 🧂 🌊 🐼 diff --git a/angular/package.json b/angular/package.json index c13847c9ad..5d91ceec4c 100644 --- a/angular/package.json +++ b/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "4.11.0", + "version": "4.11.1", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -49,7 +49,7 @@ "css/" ], "dependencies": { - "@ionic/core": "4.11.0", + "@ionic/core": "4.11.1", "tslib": "^1.9.3" }, "peerDependencies": { diff --git a/core/package.json b/core/package.json index 01a3333283..b394e2f008 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "4.11.0", + "version": "4.11.1", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/docs/package.json b/docs/package.json index 08dded9df2..1c43e35c71 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "4.11.0", + "version": "4.11.1", "description": "Pre-packaged API documentation for the Ionic docs.", "main": "core.json", "types": "core.d.ts", diff --git a/packages/react-router/package.json b/packages/react-router/package.json index d0296e3d70..892a2e4e48 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "4.11.0", + "version": "4.11.1", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -39,16 +39,16 @@ "tslib": "*" }, "peerDependencies": { - "@ionic/core": "^4.10.0", - "@ionic/react": "4.10.0-rc.3", + "@ionic/core": "4.11.1", + "@ionic/react": "4.11.1", "react": "^16.8.6", "react-dom": "^16.8.6", "react-router": "^5.0.1", "react-router-dom": "^5.0.1" }, "devDependencies": { - "@ionic/core": "4.11.0", - "@ionic/react": "4.11.0", + "@ionic/core": "4.11.1", + "@ionic/react": "4.11.1", "@types/jest": "^23.3.9", "@types/node": "12.6.9", "@types/react": "^16.9.2", diff --git a/packages/react/package.json b/packages/react/package.json index 63bd412b51..8322e12224 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "4.11.0", + "version": "4.11.1", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -39,7 +39,7 @@ "css/" ], "dependencies": { - "@ionic/core": "4.11.0", + "@ionic/core": "4.11.1", "tslib": "*" }, "peerDependencies": {