Jasonette / Jasonette/JASONETTE-iOS
(high priority) two push transitions corrupts tab bar (and presumably 2+)
- Dominant language
- JavaScript
- Stars
- 5.2k
- Forks
- 347
- PR merge metrics
- No merged PRs in 30d
Description
After returning from a push transition, the footer tab bar operation is corrupted, switch to first tab no longer works. I verified that the tab bar urls are correct in the markup.
reproducible sequence:
- open https://kadist-ios.herokuapp.com/kmap_main
- click the 4th tab "Artists"
- click any item in the list to push transition to a new view
- click/swipe back
- click the first (left most) tab. You'll notice that the tab doesn't do anything, the return from a push transition causes Jasonette to get the tabs mixed up.
@gliechtenstein - one of my users showed me their iPhone X that did not exhibit this behavior. I wasn't able to tell if she had the latest code base but thought that this might help determine the cause (recent change in the code, or timing related)
It seems to assume that the push always happens from the first (left most) tab and restores the current view (on push view's close) to the left most tab, but that's not the tab that initiated the push. The same behaviour can be reproduced in other tabs/parts of the application too. I marked this high priority because it affects users and can't be fixed by simply pulling to refresh (because that refreshes the wrong view)
(@gliechtenstein as a temporary workaround while this is pending - switching from push to modal prevents the issue - possibly that's also useful info)
Contributor guide
Research direction
Reproduce the sequence at kadist-ios.herokuapp.com/kmap_main: open Artists, push into an item, return, and select the first tab. Start by tracing the tab-bar state across push and return transitions, then compare the modal workaround. Done means the initiating tab remains associated with the returned view and the first tab works after two or more push transitions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, javascript
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100