@@ -41,6 +41,8 @@ import { QuestsPage } from './screens/Quests'
41
41
import { NavigateListener } from './NavigateListener'
42
42
import G7Webview from './screens/G7Webview'
43
43
import CardPrivacyPolicy from './screens/Onboarding/analytics/CardPrivacyPolicy'
44
+ // Import the TourProvider
45
+ import { TourProvider } from './components/TourGuide/TourContext'
44
46
45
47
function App ( ) {
46
48
const { sidebarCollapsed, isSettingsModalOpen, connectivity } =
@@ -50,106 +52,112 @@ function App() {
50
52
51
53
return (
52
54
< div className = { classNames ( 'App' , { collapsed : sidebarCollapsed } ) } >
53
- < HashRouter >
54
- < OfflineMessage />
55
- < TopNavBar />
56
- < Sidebar />
57
- < main className = "content" >
58
- < CardPrivacyPolicy />
59
- < QaAuthHandler />
60
- < NavigateListener />
61
- < ExtensionHandler />
62
- < ExtensionManager />
63
- < DialogHandler />
64
- < ExternalLinkDialog />
65
- < AuthModal />
66
- < EmailSubscriptionModal />
67
- < StoreNavHandler />
68
- { isSettingsModalOpen . gameInfo && (
69
- < SettingsModal
70
- gameInfo = { isSettingsModalOpen . gameInfo }
71
- type = { isSettingsModalOpen . type }
72
- />
73
- ) }
74
- < Routes >
75
- < Route
76
- path = "/"
77
- element = { < Navigate replace to = { firstDestination } /> }
78
- />
79
- < Route path = "/library" element = { < Library /> } />
80
- < Route
81
- path = "/achievements"
82
- element = {
83
- < AchievementsLayout >
84
- < Outlet />
85
- </ AchievementsLayout >
86
- }
87
- >
88
- < Route index element = { < Achievements /> } />
55
+ { /* Wrap the entire app with the TourProvider */ }
56
+ < TourProvider >
57
+ < HashRouter >
58
+ < OfflineMessage />
59
+ < TopNavBar />
60
+ < Sidebar />
61
+ < main className = "content" >
62
+ < CardPrivacyPolicy />
63
+ < QaAuthHandler />
64
+ < NavigateListener />
65
+ < ExtensionHandler />
66
+ < ExtensionManager />
67
+ < DialogHandler />
68
+ < ExternalLinkDialog />
69
+ < AuthModal />
70
+ < EmailSubscriptionModal />
71
+ < StoreNavHandler />
72
+ { isSettingsModalOpen . gameInfo && (
73
+ < SettingsModal
74
+ gameInfo = { isSettingsModalOpen . gameInfo }
75
+ type = { isSettingsModalOpen . type }
76
+ />
77
+ ) }
78
+ < Routes >
89
79
< Route
90
- path = "/achievements/:id "
91
- element = { < GameAchievementDetails /> }
80
+ path = "/"
81
+ element = { < Navigate replace to = { firstDestination } /> }
92
82
/>
93
- </ Route >
94
- < Route path = "login" element = { < Login /> } />
95
- < Route
96
- path = "hyperplaystore"
97
- element = { < WebView key = "hyperplaystore" /> }
98
- />
99
- < Route path = "epicstore" element = { < WebView key = "epicstore" /> } />
100
- < Route path = "gogstore" element = { < WebView key = "gogstore" /> } />
101
- < Route path = "docs" element = { < WebView key = "docs" /> } />
102
- < Route path = "metamaskHome" element = { < MetaMaskHome /> } />
103
- < Route
104
- path = "metamaskSnaps"
105
- element = { < WebView key = "metamaskSnaps" /> }
106
- />
107
- < Route path = "game7Portal" element = { < G7Webview /> } />
108
- < Route path = "metamaskPortfolio" element = { < MetaMaskPortfolio /> } >
109
- < Route path = ":page" element = { < MetaMaskPortfolio /> } />
110
- </ Route >
111
- < Route path = "/gamepage" >
112
- < Route path = ":runner" >
113
- < Route path = ":appName" element = { < GamePage /> } />
83
+ < Route path = "/library" element = { < Library /> } />
84
+ < Route
85
+ path = "/achievements"
86
+ element = {
87
+ < AchievementsLayout >
88
+ < Outlet />
89
+ </ AchievementsLayout >
90
+ }
91
+ >
92
+ < Route index element = { < Achievements /> } />
93
+ < Route
94
+ path = "/achievements/:id"
95
+ element = { < GameAchievementDetails /> }
96
+ />
97
+ </ Route >
98
+ < Route path = "login" element = { < Login /> } />
99
+ < Route
100
+ path = "hyperplaystore"
101
+ element = { < WebView key = "hyperplaystore" /> }
102
+ />
103
+ < Route path = "epicstore" element = { < WebView key = "epicstore" /> } />
104
+ < Route path = "gogstore" element = { < WebView key = "gogstore" /> } />
105
+ < Route path = "docs" element = { < WebView key = "docs" /> } />
106
+ < Route path = "metamaskHome" element = { < MetaMaskHome /> } />
107
+ < Route
108
+ path = "metamaskSnaps"
109
+ element = { < WebView key = "metamaskSnaps" /> }
110
+ />
111
+ < Route path = "game7Portal" element = { < G7Webview /> } />
112
+ < Route path = "metamaskPortfolio" element = { < MetaMaskPortfolio /> } >
113
+ < Route path = ":page" element = { < MetaMaskPortfolio /> } />
114
+ </ Route >
115
+ < Route path = "/gamepage" >
116
+ < Route path = ":runner" >
117
+ < Route path = ":appName" element = { < GamePage /> } />
118
+ </ Route >
119
+ </ Route >
120
+ < Route
121
+ path = "/store-page"
122
+ element = { < WebView key = "store-page" /> }
123
+ />
124
+ < Route path = "loginweb" >
125
+ < Route path = ":runner" element = { < WebView key = "loginweb" /> } />
114
126
</ Route >
115
- </ Route >
116
- < Route path = "/store-page" element = { < WebView key = "store-page" /> } />
117
- < Route path = "loginweb" >
118
- < Route path = ":runner" element = { < WebView key = "loginweb" /> } />
119
- </ Route >
120
- < Route path = "settings" >
121
- < Route path = ":runner" >
122
- < Route path = ":appName" >
123
- < Route path = ":type" element = { < Settings /> } />
127
+ < Route path = "settings" >
128
+ < Route path = ":runner" >
129
+ < Route path = ":appName" >
130
+ < Route path = ":type" element = { < Settings /> } />
131
+ </ Route >
124
132
</ Route >
125
133
</ Route >
126
- </ Route >
127
- < Route path = "/download-manager " element = { < DownloadManager /> } / >
128
- < Route path = "/quests " element = { < QuestsPage /> } >
129
- < Route path = ":questId" element = { < QuestsPage /> } / >
130
- </ Route >
131
- </ Routes >
132
- </ main >
133
- < div className = "controller" >
134
- < ControllerHints / >
135
- < div className = "simple-keyboard" > < /div >
136
- </ div >
137
- < OnboardingStoreController />
138
- { onboardingStore . isOnboardingOpen && (
139
- < Onboarding
140
- disableOnboarding = { ( disableReason : WalletOnboardCloseReason ) => {
141
- if ( disableReason === 'skipped' ) {
142
- window . api . trackEvent ( { event : 'Onboarding Skipped' } )
143
- }
144
- onboardingStore . closeOnboarding ( )
145
- } }
146
- />
147
- ) }
148
- </ HashRouter >
149
- < TransactionNotification />
150
- < DownloadToastManager />
151
- < DeviceStateController />
152
- < UpdateModalController / >
134
+ < Route path = "/download-manager" element = { < DownloadManager /> } / >
135
+ < Route path = "/quests " element = { < QuestsPage /> } >
136
+ < Route path = ":questId " element = { < QuestsPage /> } / >
137
+ </ Route >
138
+ </ Routes >
139
+ </ main >
140
+ < div className = "controller" >
141
+ < ControllerHints / >
142
+ < div className = "simple-keyboard" > </ div >
143
+ </ div >
144
+ < OnboardingStoreController / >
145
+ { onboardingStore . isOnboardingOpen && (
146
+ < Onboarding
147
+ disableOnboarding = { ( disableReason : WalletOnboardCloseReason ) => {
148
+ if ( disableReason === 'skipped' ) {
149
+ window . api . trackEvent ( { event : 'Onboarding Skipped' } )
150
+ }
151
+ onboardingStore . closeOnboarding ( )
152
+ } }
153
+ />
154
+ ) }
155
+ </ HashRouter >
156
+ < TransactionNotification / >
157
+ < DownloadToastManager />
158
+ < DeviceStateController />
159
+ < UpdateModalController />
160
+ </ TourProvider >
153
161
</ div >
154
162
)
155
163
}
0 commit comments