1
1
import { useEffect } from "react" ;
2
- import { Storage } from "@plasmohq/storage" ;
3
2
import useStore from "~store/useStore" ;
4
3
import HomeScreen from "~screens/Home" ;
5
4
import History from "~screens/History" ;
6
5
import Settings from "~screens/Settings" ;
7
6
import Search from "~screens/Search" ;
8
- import type { Screen } from "~types/types" ;
9
7
import ConnectOptimizely from "~screens/ConnectOptimizely" ;
8
+ import LatestRelease from "~screens/LatestRelease" ;
9
+ import { MantineProvider } from "@mantine/core" ;
10
+ import { Notifications } from "@mantine/notifications" ;
11
+ import getInitialLocalStorageData from "~utils/getInitialLocalStorageData" ;
12
+ import versionUpdateChecker from "~utils/versionUpdateChecker" ;
10
13
11
- const storage = new Storage ( ) ;
12
14
const broadcastChannel = new BroadcastChannel ( "broadcastChannel" ) ;
13
15
14
16
function IndexPopup ( ) {
@@ -24,36 +26,46 @@ function IndexPopup() {
24
26
25
27
useEffect ( ( ) => {
26
28
const setInitialData = async ( ) => {
27
- const key = await storage . get ( "localStorageKey" ) ;
28
- const value = await storage . get ( "localStorageValue" ) ;
29
- const defaultScreen = await storage . get < Screen | null > ( "defaultScreen" ) ;
30
- const optimizelyAccessToken = await storage . get ( "optimizelyAccessToken" ) ;
31
- const optimizelyProjectId = await storage . get ( "optimizelyProjectId" ) ;
32
- const history = await storage . get ( "history" ) ;
29
+ const {
30
+ key,
31
+ history,
32
+ optimizelyProjectId,
33
+ optimizelyAccessToken,
34
+ value,
35
+ defaultScreen,
36
+ } = await getInitialLocalStorageData ( ) ;
37
+
33
38
setLocalStorageKey ( key ?? "optimizelyNonLoggedInUser" ) ;
34
39
setLocalStorageValue ( value ?? "" ) ;
35
40
setOptimizelyAccessToken ( optimizelyAccessToken ?? "" ) ;
36
41
setOptimizelyProjectId ( optimizelyProjectId ?? null ) ;
37
42
setScreen ( defaultScreen ?? "home" ) ;
43
+ // setScreen("latest-release");
38
44
setHistoryItems ( history ? JSON . parse ( history ) : [ ] ) ;
39
45
46
+ await versionUpdateChecker ( setScreen ) ;
47
+
40
48
// Broadcast history and localStorageKey to service worker
41
49
broadcastChannel . postMessage ( {
42
50
history : history ? JSON . parse ( history ) : null ,
43
- localStorageKey : key ?? "optimizelyNonLoggedInUser" ,
51
+ localStorageKey : key ?? "optimizelyNonLoggedInUser"
44
52
} ) ;
45
53
} ;
46
54
setInitialData ( ) ;
47
55
} , [ ] ) ;
48
56
49
57
return (
50
- < div style = { { width : 350 } } >
51
- { screen === "home" && < HomeScreen /> }
52
- { screen === "history" && < History /> }
53
- { screen === "settings" && < Settings /> }
54
- { screen === "search" && < Search /> }
55
- { screen === "connect-optimizely" && < ConnectOptimizely /> }
56
- </ div >
58
+ < MantineProvider withNormalizeCSS withGlobalStyles >
59
+ < Notifications position = "top-center" />
60
+ < div style = { { width : 350 } } >
61
+ { screen === "home" && < HomeScreen /> }
62
+ { screen === "history" && < History /> }
63
+ { screen === "settings" && < Settings /> }
64
+ { screen === "search" && < Search /> }
65
+ { screen === "connect-optimizely" && < ConnectOptimizely /> }
66
+ { screen === "latest-release" && < LatestRelease /> }
67
+ </ div >
68
+ </ MantineProvider >
57
69
) ;
58
70
}
59
71
0 commit comments