Skip to content

Commit d2394b8

Browse files
committed
mess
1 parent 79b305b commit d2394b8

File tree

5 files changed

+73
-75
lines changed

5 files changed

+73
-75
lines changed

wormhole-connect/src/App.tsx

+20-66
Original file line numberDiff line numberDiff line change
@@ -2,84 +2,38 @@ import * as React from 'react';
22
import { Provider } from 'react-redux';
33
import ScopedCssBaseline from '@mui/material/ScopedCssBaseline';
44
import { ThemeProvider, createTheme } from '@mui/material/styles';
5-
// import Box from '@mui/material/Box';
6-
import { PaletteMode } from '@mui/material';
7-
// import IconButton from '@mui/material/IconButton';
8-
// import Brightness4Icon from '@mui/icons-material/Brightness4';
9-
// import Brightness7Icon from '@mui/icons-material/Brightness7';
105
import './App.css';
116
import { store } from './store';
127
import AppRouter from './AppRouter';
13-
import { getDesignTokens } from './theme';
14-
import { THEME_MODE } from './config';
8+
import { getDesignTokens, dark } from './theme';
159
import BackgroundImage from './components/Background/BackgroundImage';
1610
import ErrorBoundary from './components/ErrorBoundary';
11+
import { WormholeConnectConfig } from './config/types';
1712

18-
const ColorModeContext = React.createContext({
19-
toggleColorMode: () => {
20-
/* noop TODO ??? what is this for */
21-
},
22-
});
23-
24-
function App() {
25-
const [mode, setMode] = React.useState<PaletteMode>(THEME_MODE);
26-
const colorMode = React.useMemo(
27-
() => ({
28-
// The dark mode switch would invoke this method
29-
toggleColorMode: () => {
30-
setMode((prevMode: PaletteMode) =>
31-
prevMode === 'light' ? 'dark' : 'light',
32-
);
33-
},
34-
}),
35-
[],
36-
);
37-
// Update the theme only if the mode changes
38-
const theme = React.useMemo(() => createTheme(getDesignTokens(mode)), [mode]);
39-
40-
return (
41-
<Provider store={store}>
42-
<ColorModeContext.Provider value={colorMode}>
43-
<ThemeProvider theme={theme}>
44-
<ScopedCssBaseline enableColorScheme>
45-
<ErrorBoundary>
46-
<BackgroundImage>
47-
<AppRouter />
48-
</BackgroundImage>
49-
</ErrorBoundary>
50-
</ScopedCssBaseline>
51-
</ThemeProvider>
52-
</ColorModeContext.Provider>
53-
</Provider>
54-
);
13+
export interface WormholeConnectProps {
14+
config: WormholeConnectConfig;
5515
}
5616

57-
export default function ToggleColorMode() {
58-
const [mode, setMode] = React.useState<'light' | 'dark'>('light');
59-
const colorMode = React.useMemo(
60-
() => ({
61-
toggleColorMode: () => {
62-
setMode((prevMode) => (prevMode === 'light' ? 'dark' : 'light'));
63-
},
64-
}),
65-
[],
66-
);
67-
68-
const theme = React.useMemo(
17+
export default function WormholeConnect({ config }: WormholeConnectProps) {
18+
const muiTheme = React.useMemo(
6919
() =>
70-
createTheme({
71-
palette: {
72-
mode,
73-
},
74-
}),
75-
[mode],
20+
createTheme(
21+
getDesignTokens(config.mode ?? 'dark', config.customTheme ?? dark),
22+
),
23+
[config],
7624
);
7725

7826
return (
79-
<ColorModeContext.Provider value={colorMode}>
80-
<ThemeProvider theme={theme}>
81-
<App />
27+
<Provider store={store}>
28+
<ThemeProvider theme={muiTheme}>
29+
<ScopedCssBaseline enableColorScheme>
30+
<ErrorBoundary>
31+
<BackgroundImage>
32+
<AppRouter />
33+
</BackgroundImage>
34+
</ErrorBoundary>
35+
</ScopedCssBaseline>
8236
</ThemeProvider>
83-
</ColorModeContext.Provider>
37+
</Provider>
8438
);
8539
}

wormhole-connect/src/config/index.ts

+34-3
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,42 @@ import {
2121
import { Alignment } from 'components/Header';
2222

2323
const el = document.getElementById('wormhole-connect');
24-
if (!el)
25-
throw new Error('must specify an anchor element with id wormhole-connect');
26-
const configJson = el.getAttribute('config');
24+
let configJson = '{}';
25+
if (el)
26+
//throw new Error('must specify an anchor element with id wormhole-connect');
27+
configJson = el.getAttribute('config') || '{}';
2728
export const config: WormholeConnectConfig = JSON.parse(configJson!) || {};
2829

30+
function getDefaultConfig(
31+
env: 'MAINNET' | 'TESTNET' | 'DEVNET',
32+
): Required<WormholeConnectConfig> {
33+
const sdkConfig = WormholeContext.getConfig(env);
34+
const networkData = { MAINNET, DEVNET, TESTNET }[env];
35+
36+
let config: Required<WormholeConnectConfig> = {
37+
env,
38+
showHamburgerMenu: false,
39+
};
40+
41+
config.rpcs = Object.assign({}, sdkConfig.rpcs, networkData.rpcs);
42+
43+
config.wormholeRpcs = {
44+
MAINNET: [
45+
'https://wormhole-v2-mainnet-api.mcf.rocks',
46+
'https://wormhole-v2-mainnet-api.chainlayer.network',
47+
'https://wormhole-v2-mainnet-api.staking.fund',
48+
],
49+
TESTNET: [
50+
'https://guardian.testnet.xlabs.xyz',
51+
'https://guardian-01.testnet.xlabs.xyz',
52+
'https://guardian-02.testnet.xlabs.xyz',
53+
],
54+
DEVNET: ['http://localhost:7071'],
55+
}[env];
56+
57+
return config;
58+
}
59+
2960
const getEnv = () => {
3061
const processEnv = import.meta.env.REACT_APP_CONNECT_ENV?.toLowerCase();
3162
if (config.env === 'mainnet' || processEnv === 'mainnet') return 'MAINNET';

wormhole-connect/src/config/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export interface WormholeConnectConfig {
7474
tokens?: string[];
7575
tokensConfig?: TokensConfig;
7676
mode?: 'dark' | 'light';
77-
customTheme?: ExtendedTheme;
77+
theme?: ExtendedTheme;
7878
cta?: {
7979
text: string;
8080
link: string;

wormhole-connect/src/main.tsx

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom/client';
3-
import App from './App';
43
import ErrorBoundary from './components/ErrorBoundary';
5-
4+
import WormholeConnect from './App';
5+
import { dark } from './theme';
66
export * from './theme';
77

8+
function DemoApp() {
9+
return (
10+
<WormholeConnect
11+
config={{
12+
mode: 'dark',
13+
theme: dark,
14+
}}
15+
/>
16+
);
17+
}
18+
819
const root = ReactDOM.createRoot(
920
document.getElementById('wormhole-connect') as HTMLElement,
1021
);
22+
1123
root.render(
1224
<React.StrictMode>
1325
<ErrorBoundary>
14-
<App />
26+
<DemoApp />
1527
</ErrorBoundary>
28+
<DemoApp />
1629
</React.StrictMode>,
1730
);

wormhole-connect/src/theme.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ export const dark: ExtendedTheme = {
286286
},
287287
};
288288

289-
export const getDesignTokens = (mode: PaletteMode) =>
289+
export const getDesignTokens = (mode: PaletteMode, theme: ExtendedTheme) =>
290290
createTheme({
291291
components: {
292292
MuiPaper: {
@@ -315,6 +315,6 @@ export const getDesignTokens = (mode: PaletteMode) =>
315315
},
316316
palette: {
317317
mode,
318-
...THEME,
318+
...theme,
319319
},
320320
});

0 commit comments

Comments
 (0)