-
Notifications
You must be signed in to change notification settings - Fork 37
[UX] Implement IntroJS and Welcome Tour #1275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…client into feat/introjs_2
@biliesilva updated the styling to be the same we have on hp-ui with the needed modifications to work with introJS now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is pretty complicated 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, I will investigate it a bit more tomorrow and test the other idea you gave.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when I click the x button, the tour starts over again from the beginning. Is that the expected behavior?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, probably a regression from the last changes. Good catch.
This PR implements IntroJS functionality and framework so we can easily add guided tours, tutorials or hints in the future.
For now I am just implementing a first welcome tour but will add more tours in future PRs.
This first tour runs once when the user lands on the Store Webview on the client.
If completed or skipped it will not appear anymore.
Screencast.From.2025-04-30.19-23-28.mp4
How to test
QASE TEST: https://app.qase.io/project/HC?case=584&suite=49
AI Summary
This pull request introduces a guided tour feature to the application, leveraging the
intro.js
library and a customTourProvider
context to manage tour states. It also includes styling, localization, and integration into the app's main structure. Below are the key changes grouped by theme:Feature Implementation: Guided Tour
TourProvider
insrc/frontend/components/TourGuide/TourContext.tsx
to manage tour states, including activation, deactivation, and completion tracking of tours. State is persisted usinglocalStorage
.TourGuide
insrc/frontend/components/TourGuide/TourGuide.tsx
to render guided tours usingintro.js-react
. It dynamically loads steps based on the current tour and handles user interactions like exiting or completing tours.src/frontend/components/TourGuide/TourGuide.scss
to align with the app's design system.Integration into the Application
TourProvider
insrc/frontend/App.tsx
to enable tour state management across components. [1] [2] [3]Localization
public/locales/en/tour.json
. These include step descriptions for various app sections like the library, sidebar, and game pages.Dependencies
intro.js
(version^7.2.0
) andintro.js-react
(version^1.0.0
) topackage.json
and updatedpnpm-lock.yaml
accordingly. [1] [2] [3] [4]Use the following Checklist if you have changed something on the Backend or Frontend: