Skip to content

Commit fe6cf0e

Browse files
Copilot0xrinegade
andcommitted
Fix wallet theme consistency and resolve fs module error
Co-authored-by: 0xrinegade <[email protected]>
1 parent 9a5b61f commit fe6cf0e

File tree

4 files changed

+108
-14
lines changed

4 files changed

+108
-14
lines changed

src/index.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ import './styles/theme.css';
2020
// Import logging utility
2121
import { devLog, logInfo, logError } from './utils/logger';
2222

23+
// Import theme manager for proper initialization
24+
import { themeManager } from './themes/UnifiedThemeManager';
25+
2326
// Secure Buffer initialization without global modification
2427
import { Buffer } from 'buffer';
2528

@@ -72,6 +75,10 @@ devLog('Buffer polyfills and React initialized successfully');
7275
// Wrap the entire app initialization in error handling
7376
function initializeApp() {
7477
try {
78+
// Initialize theme manager first to apply theme variables
79+
themeManager.initialize();
80+
devLog('Theme manager initialized successfully');
81+
7582
const container = document.getElementById('root');
7683
if (!container) {
7784
throw new Error('Root container not found');

src/pages/Wallet/styles.tsx

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ export const StyledDialogContent = styled(DialogContent)<{ width?: string; heigh
55
&&& {
66
width: ${(props) => props.width || '50rem'};
77
height: ${(props) => props.height || '40rem'};
8-
background: #222429;
9-
border: 0.1rem solid #3a475c;
10-
box-shadow: 0px 0px 16px rgba(125, 125, 131, 0.1);
11-
border-radius: 2rem;
8+
background: var(--bg-secondary);
9+
border: 0.1rem solid var(--border-primary);
10+
box-shadow: var(--shadow-glass);
11+
border-radius: var(--radius-xl);
1212
display: flex;
1313
justify-content: ${(props) => props.justify || 'center'};
1414
flex-direction: column;
@@ -20,10 +20,10 @@ export const StyledDialog = styled(Dialog)<{ width?: string; height?: string; ju
2020
&&& {
2121
width: ${(props) => props.width || '50rem'};
2222
height: ${(props) => props.height || '40rem'};
23-
background: #222429;
24-
border: 0.1rem solid #3a475c;
25-
box-shadow: 0px 0px 16px rgba(125, 125, 131, 0.1);
26-
border-radius: 2rem;
23+
background: var(--bg-secondary);
24+
border: 0.1rem solid var(--border-primary);
25+
box-shadow: var(--shadow-glass);
26+
border-radius: var(--radius-xl);
2727
display: flex;
2828
justify-content: ${(props) => props.justify || 'center'};
2929
flex-direction: column;
@@ -49,23 +49,27 @@ export const StyledTab = styled(Tab)`
4949
color: var(--interactive-primary);
5050
border-color: var(--interactive-primary);
5151
text-transform: capitalize;
52-
font-size: 1.4rem;
53-
font-family: Avenir Next Demi;
52+
font-size: var(--font-size-sm);
53+
font-family: var(--font-primary);
54+
font-weight: var(--font-weight-semibold);
5455
white-space: nowrap;
5556
}
5657
`
5758

5859
export const StyledStepLabel = styled(StepLabel)`
5960
& span {
60-
font-size: 1.4rem;
61+
font-size: var(--font-size-sm);
62+
font-family: var(--font-primary);
63+
color: var(--text-primary);
6164
}
6265
6366
& svg {
6467
width: 2rem;
6568
height: 2rem;
6669
6770
text {
68-
font-size: 1.4rem;
71+
font-size: var(--font-size-sm);
72+
fill: var(--text-primary);
6973
}
7074
}
7175
`

src/polyfills/fs-browser.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/**
2+
* Browser polyfill for Node.js fs module
3+
* Provides minimal fs compatibility for browser environments
4+
*/
5+
6+
// Minimal fs polyfill for browser compatibility
7+
const fs = {
8+
// File system operations not available in browser
9+
readFile: () => {
10+
throw new Error('fs.readFile is not available in browser environment');
11+
},
12+
13+
writeFile: () => {
14+
throw new Error('fs.writeFile is not available in browser environment');
15+
},
16+
17+
readFileSync: () => {
18+
throw new Error('fs.readFileSync is not available in browser environment');
19+
},
20+
21+
writeFileSync: () => {
22+
throw new Error('fs.writeFileSync is not available in browser environment');
23+
},
24+
25+
existsSync: () => {
26+
return false; // Files don't exist in browser context
27+
},
28+
29+
exists: (path, callback) => {
30+
if (typeof callback === 'function') {
31+
callback(false);
32+
}
33+
},
34+
35+
stat: () => {
36+
throw new Error('fs.stat is not available in browser environment');
37+
},
38+
39+
statSync: () => {
40+
throw new Error('fs.statSync is not available in browser environment');
41+
},
42+
43+
mkdir: () => {
44+
throw new Error('fs.mkdir is not available in browser environment');
45+
},
46+
47+
mkdirSync: () => {
48+
throw new Error('fs.mkdirSync is not available in browser environment');
49+
},
50+
51+
// Constants that some libraries might expect
52+
constants: {
53+
F_OK: 0,
54+
R_OK: 4,
55+
W_OK: 2,
56+
X_OK: 1,
57+
},
58+
59+
// Promises API
60+
promises: {
61+
readFile: () => Promise.reject(new Error('fs.promises.readFile is not available in browser environment')),
62+
writeFile: () => Promise.reject(new Error('fs.promises.writeFile is not available in browser environment')),
63+
stat: () => Promise.reject(new Error('fs.promises.stat is not available in browser environment')),
64+
mkdir: () => Promise.reject(new Error('fs.promises.mkdir is not available in browser environment')),
65+
access: () => Promise.reject(new Error('fs.promises.access is not available in browser environment')),
66+
}
67+
};
68+
69+
export default fs;
70+
export const {
71+
readFile,
72+
writeFile,
73+
readFileSync,
74+
writeFileSync,
75+
existsSync,
76+
exists,
77+
stat,
78+
statSync,
79+
mkdir,
80+
mkdirSync,
81+
constants,
82+
promises
83+
} = fs;

vite.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default defineConfig({
1818
}),
1919
// Add Node.js polyfills for browser compatibility
2020
nodePolyfills({
21-
include: ['crypto', 'stream', 'buffer', 'process', 'util', 'assert', 'url', 'os', 'path', 'vm'],
21+
include: ['crypto', 'stream', 'buffer', 'process', 'util', 'assert', 'url', 'os', 'path', 'vm', 'fs'],
2222
globals: {
2323
Buffer: true,
2424
global: true,
@@ -39,7 +39,6 @@ export default defineConfig({
3939
outDir: 'build',
4040
sourcemap: true,
4141
rollupOptions: {
42-
external: ['fs'],
4342
output: {
4443
manualChunks: {
4544
// Vendor chunk for common dependencies
@@ -95,6 +94,7 @@ export default defineConfig({
9594
os: path.resolve(__dirname, './src/polyfills/os-browser.js'),
9695
path: 'path-browserify',
9796
vm: 'vm-browserify',
97+
fs: path.resolve(__dirname, './src/polyfills/fs-browser.js'),
9898
},
9999
},
100100

0 commit comments

Comments
 (0)