Skip to content

feat: upgrade conference app to Ionic 7#114

Merged
sean-perkins merged 20 commits intomasterfrom
FW-3704
Mar 31, 2023
Merged

feat: upgrade conference app to Ionic 7#114
sean-perkins merged 20 commits intomasterfrom
FW-3704

Conversation

@sean-perkins
Copy link
Copy Markdown
Contributor

@sean-perkins sean-perkins commented Mar 21, 2023

This PR updates the React Conference app to the "latest", including Ionic Framework v7, React v18, Vite, Swiper 9 (using Swiper Element) and fixes bugs related to the app.

All changes:

  • Added prettier to format the codebase
  • Migrated from react-scripts@3 to vite
    • Mapped npm run start to npm run dev to reduce churn
  • Migrated from react@17 and react-dom@17 to react@18 and react-dom@18
    • Updated type usage to use PropsWithChildren where appropriate
  • Migrated from swiper@7 to using CSS scroll snapping
  • Updated outdated links to Github repository
  • Updated outdated links to the getting started docs
  • Fixed a bug where checkbox inside of filter would not toggle correctly
  • Migrated form controls to simplified syntax with label and label-placement
  • Migrated "error" slot content into actual error slot of form control
  • Removed "dead code" (commented out code, unused imports, etc.)
  • Updated to Capacitor v4

Resolves: #72, #95, #50

How did I test this

  • Schedule tab loads with a list of events
    • Both "All" and "Favorites" works (if you favorite an event it shows up in the segment)
  • Speakers tab loads with a list of speakers
    • Images of speaker's avatar loads correctly
    • Tapping a speaker card opens the detail view for the speaker
      • Social links open to correct location
    • Map tab loads (in browser requires an API key)
    • About tab loads
      • Location image renders correctly in the header
      • Form controls do not produce warnings
    • Login page loads without warnings
    • Signup page loads without warnings
    • Dark mode (in the menu) updates the appearance of the application
    • Tutorial renders correctly
      • User can swipe to the different slides
      • User can click "skip" to navigate to the main tabs view
      • User can click "continue" on the last slide to navigate to the main tabs view
  • Tested on iPhone 14 Simulator (with Capacitor)
  • Tested on Pixel 5 (API 32) Simulator (with Capacitor)

Other information

This PR includes the work done in #104.

@sean-perkins sean-perkins marked this pull request as ready for review March 23, 2023 21:29
@sean-perkins sean-perkins requested a review from a team March 23, 2023 21:30
Copy link
Copy Markdown
Contributor

@liamdebeasi liamdebeasi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migrated from swiper@7 to swiper@9, includes moving to the Swiper Element web component

The Slides migration guide (https://ionicframework.com/docs/react/slides) recommends sticking with the Swiper React component for now. We might want to hold off on Swiper Element in React until nolimits4web/swiper#6466 is merged.

@sean-perkins
Copy link
Copy Markdown
Contributor Author

Updated to use CSS scrolling snapping. Following the style/implementation that is being implemented for the Angular conference app: ionic-team/ionic-conference-app#1790

Comment thread package.json Outdated
Comment thread src/pages/Tutorial.scss
Comment thread src/pages/SchedulePage.tsx Outdated
Comment thread src/pages/Login.tsx Outdated
Comment thread src/pages/Login.tsx Outdated
Comment thread src/pages/Support.tsx Outdated
Copy link
Copy Markdown
Member

@brandyscarney brandyscarney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Differences from Angular

I noticed that the react conference app behaves differently than the angular version in certain cases. Maybe we can make a tech debt ticket for these if we don't want to update them now?

ionic-conference-app -> shows toast when favoriting
ionic-react-conference-app -> shows alert when favoriting

The alert text when you attempt to remove a favorite or add a favorite that already exists is also different:

Frame 1

It also does not close the open sliding item when switching between all & favorites.

Login Bugs

When logging in (Login page) after I enter name & password and click "Login" it tells me "Password is required" until I press login again. I think this is related to the ionChange Liam mentioned. Support & Signup do the same thing.

The app is continuously freezing when I click on Logout:

Screenshot 2023-03-29 at 3 47 35 PM

I have to kill the tab and open a new one, refresh doesn't work.

@sean-perkins
Copy link
Copy Markdown
Contributor Author

Ok - I addressed all of the requested changes and differences in behavior we've acknowledge so far with the React and Angular conference apps (there is likely more).

Comment thread src/pages/Signup.tsx Outdated
Comment thread src/pages/Signup.tsx Outdated
@brandyscarney
Copy link
Copy Markdown
Member

All the fixes look good! Just found two missed ionChange events on the signup page.

@sean-perkins
Copy link
Copy Markdown
Contributor Author

Thank you for catching that!

@sean-perkins sean-perkins merged commit 0ab9cf0 into master Mar 31, 2023
@sean-perkins sean-perkins deleted the FW-3704 branch March 31, 2023 02:46
@brandyscarney brandyscarney mentioned this pull request Apr 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update to Capacitor 4

3 participants