Skip to content

Commit 61c1e5e

Browse files
committed
chore(react): fix profile update
1 parent a175ecf commit 61c1e5e

File tree

13 files changed

+332
-171
lines changed

13 files changed

+332
-171
lines changed

packages/javascript/src/api/updateMeProfile.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,11 @@ const updateMeProfile = async ({
147147
}
148148

149149
throw new AsgardeoAPIError(
150-
`Network or parsing error: ${error instanceof Error ? error.message : 'Unknown error'}`,
150+
error?.response?.data?.detail ||
151+
'An error occurred while updating the user profile. Please try again.',
151152
'updateMeProfile-NetworkError-001',
152153
'javascript',
153-
0,
154+
error?.data?.status,
154155
'Network Error',
155156
);
156157
}

packages/javascript/src/errors/AsgardeoError.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,7 @@ export default class AsgardeoError extends Error {
5555

5656
constructor(message: string, code: string, origin: string) {
5757
const _origin: string = AsgardeoError.resolveOrigin(origin);
58-
const prefix: string = `🛡️ Asgardeo - ${_origin}:`;
59-
const regex: RegExp = new RegExp(`🛡️\\s*Asgardeo\\s*-\\s*${_origin}:`, 'i');
60-
const sanitized: string = message.replace(regex, '');
61-
const _message: string = `${prefix} ${sanitized.trim()}\n\n(code="${code}")\n`;
62-
63-
super(_message);
58+
super(message);
6459

6560
this.name = new.target.name;
6661
this.code = code;
@@ -72,6 +67,7 @@ export default class AsgardeoError extends Error {
7267
}
7368

7469
public override toString(): string {
75-
return `[${this.name}]\nMessage: ${this.message}`;
70+
const prefix: string = `🛡️ Asgardeo - ${this.origin}:`;
71+
return `[${this.name}]\n${prefix} ${this.message}\n(code=\"${this.code}\")`;
7672
}
7773
}

packages/javascript/src/theme/createTheme.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,37 +54,46 @@ const lightTheme: ThemeConfig = {
5454
primary: {
5555
main: '#1a73e8',
5656
contrastText: '#ffffff',
57+
dark: '#174ea6',
5758
},
5859
secondary: {
5960
main: '#424242',
6061
contrastText: '#ffffff',
62+
dark: '#212121',
6163
},
6264
background: {
6365
surface: '#ffffff',
6466
disabled: '#f0f0f0',
67+
dark: '#212121',
6568
body: {
6669
main: '#1a1a1a',
70+
dark: '#212121',
6771
},
6872
},
6973
error: {
7074
main: '#d32f2f',
7175
contrastText: '#d52828',
76+
dark: '#b71c1c',
7277
},
7378
info: {
7479
main: '#bbebff',
7580
contrastText: '#43aeda',
81+
dark: '#01579b',
7682
},
7783
success: {
7884
main: '#4caf50',
7985
contrastText: '#00a807',
86+
dark: '#388e3c',
8087
},
8188
warning: {
8289
main: '#ff9800',
8390
contrastText: '#be7100',
91+
dark: '#f57c00',
8492
},
8593
text: {
8694
primary: '#1a1a1a',
8795
secondary: '#666666',
96+
dark: '#212121',
8897
},
8998
border: '#e0e0e0',
9099
},
@@ -148,37 +157,46 @@ const darkTheme: ThemeConfig = {
148157
primary: {
149158
main: '#1a73e8',
150159
contrastText: '#ffffff',
160+
dark: '#174ea6',
151161
},
152162
secondary: {
153163
main: '#424242',
154164
contrastText: '#ffffff',
165+
dark: '#212121',
155166
},
156167
background: {
157168
surface: '#121212',
158169
disabled: '#1f1f1f',
170+
dark: '#212121',
159171
body: {
160172
main: '#ffffff',
173+
dark: '#212121',
161174
},
162175
},
163176
error: {
164177
main: '#d32f2f',
165178
contrastText: '#d52828',
179+
dark: '#b71c1c',
166180
},
167181
info: {
168182
main: '#bbebff',
169183
contrastText: '#43aeda',
184+
dark: '#01579b',
170185
},
171186
success: {
172187
main: '#4caf50',
173188
contrastText: '#00a807',
189+
dark: '#388e3c',
174190
},
175191
warning: {
176192
main: '#ff9800',
177193
contrastText: '#be7100',
194+
dark: '#f57c00',
178195
},
179196
text: {
180197
primary: '#ffffff',
181198
secondary: '#b3b3b3',
199+
dark: '#212121',
182200
},
183201
border: '#404040',
184202
},

packages/javascript/src/theme/types.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,38 +57,47 @@ export interface ThemeColors {
5757
background: {
5858
body: {
5959
main: string;
60+
dark?: string;
6061
};
6162
disabled: string;
6263
surface: string;
64+
dark?: string;
6365
};
6466
border: string;
6567
error: {
6668
contrastText: string;
6769
main: string;
70+
dark?: string;
6871
};
6972
info: {
7073
contrastText: string;
7174
main: string;
75+
dark?: string;
7276
};
7377
primary: {
7478
contrastText: string;
7579
main: string;
80+
dark?: string;
7681
};
7782
secondary: {
7883
contrastText: string;
7984
main: string;
85+
dark?: string;
8086
};
8187
success: {
8288
contrastText: string;
8389
main: string;
90+
dark?: string;
8491
};
8592
text: {
8693
primary: string;
8794
secondary: string;
95+
dark?: string;
8896
};
8997
warning: {
9098
contrastText: string;
9199
main: string;
100+
dark?: string;
92101
};
93102
}
94103

@@ -159,37 +168,46 @@ export interface ThemeVars {
159168
primary: {
160169
main: string;
161170
contrastText: string;
171+
dark?: string;
162172
};
163173
secondary: {
164174
main: string;
165175
contrastText: string;
176+
dark?: string;
166177
};
167178
background: {
168179
surface: string;
169180
disabled: string;
181+
dark?: string;
170182
body: {
171183
main: string;
184+
dark?: string;
172185
};
173186
};
174187
error: {
175188
main: string;
176189
contrastText: string;
190+
dark?: string;
177191
};
178192
info: {
179193
contrastText: string;
180194
main: string;
195+
dark?: string;
181196
};
182197
success: {
183198
main: string;
184199
contrastText: string;
200+
dark?: string;
185201
};
186202
warning: {
187203
main: string;
188204
contrastText: string;
205+
dark?: string;
189206
};
190207
text: {
191208
primary: string;
192209
secondary: string;
210+
dark?: string;
193211
};
194212
border: string;
195213
};

packages/javascript/src/utils/transformBrandingPreferenceToTheme.ts

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@ import createTheme from '../theme/createTheme';
2323
/**
2424
* Safely extracts a color value from the branding preference structure
2525
*/
26-
const extractColorValue = (colorVariant?: {main?: string; contrastText?: string}) => {
26+
type ColorVariant = { main?: string; dark?: string; contrastText?: string };
27+
type TextColors = { primary?: string; secondary?: string; dark?: string };
28+
29+
const extractColorValue = (colorVariant?: ColorVariant, preferDark = false): string | undefined => {
30+
if (preferDark && colorVariant?.dark && colorVariant.dark.trim()) {
31+
return colorVariant.dark;
32+
}
2733
return colorVariant?.main;
2834
};
2935

@@ -59,40 +65,49 @@ const transformThemeVariant = (themeVariant: ThemeVariant, isDark = false): Part
5965
activatedOpacity: 0.12,
6066
},
6167
primary: {
62-
main: extractColorValue(colors?.primary),
68+
main: extractColorValue(colors?.primary as ColorVariant, isDark),
6369
contrastText: extractContrastText(colors?.primary),
70+
dark: colors?.primary?.dark || (colors?.primary as ColorVariant)?.main,
6471
},
6572
secondary: {
66-
main: extractColorValue(colors?.secondary),
73+
main: extractColorValue(colors?.secondary as ColorVariant, isDark),
6774
contrastText: extractContrastText(colors?.secondary),
75+
dark: colors?.secondary?.dark || (colors?.secondary as ColorVariant)?.main,
6876
},
6977
background: {
70-
surface: extractColorValue(colors?.background?.surface),
71-
disabled: extractColorValue(colors?.background?.surface),
78+
surface: extractColorValue(colors?.background?.surface as ColorVariant, isDark),
79+
disabled: extractColorValue(colors?.background?.surface as ColorVariant, isDark),
80+
dark: (colors?.background?.surface as ColorVariant)?.dark || (colors?.background?.surface as ColorVariant)?.main,
7281
body: {
73-
main: extractColorValue(colors?.background?.body),
82+
main: extractColorValue(colors?.background?.body as ColorVariant, isDark),
83+
dark: (colors?.background?.body as ColorVariant)?.dark || (colors?.background?.body as ColorVariant)?.main,
7484
},
7585
},
7686
text: {
77-
primary: colors?.text?.primary,
78-
secondary: colors?.text?.secondary,
87+
primary: (colors?.text as TextColors)?.primary,
88+
secondary: (colors?.text as TextColors)?.secondary,
89+
dark: (colors?.text as TextColors)?.dark || (colors?.text as TextColors)?.primary,
7990
},
8091
border: colors?.outlined?.default,
8192
error: {
82-
main: extractColorValue(colors?.alerts?.error),
93+
main: extractColorValue(colors?.alerts?.error as ColorVariant, isDark),
8394
contrastText: extractContrastText(colors?.alerts?.error),
95+
dark: (colors?.alerts?.error as ColorVariant)?.dark || (colors?.alerts?.error as ColorVariant)?.main,
8496
},
8597
info: {
86-
main: extractColorValue(colors?.alerts?.info),
98+
main: extractColorValue(colors?.alerts?.info as ColorVariant, isDark),
8799
contrastText: extractContrastText(colors?.alerts?.info),
100+
dark: (colors?.alerts?.info as ColorVariant)?.dark || (colors?.alerts?.info as ColorVariant)?.main,
88101
},
89102
success: {
90-
main: extractColorValue(colors?.alerts?.neutral),
103+
main: extractColorValue(colors?.alerts?.neutral as ColorVariant, isDark),
91104
contrastText: extractContrastText(colors?.alerts?.neutral),
105+
dark: (colors?.alerts?.neutral as ColorVariant)?.dark || (colors?.alerts?.neutral as ColorVariant)?.main,
92106
},
93107
warning: {
94-
main: extractColorValue(colors?.alerts?.warning),
108+
main: extractColorValue(colors?.alerts?.warning as ColorVariant, isDark),
95109
contrastText: extractContrastText(colors?.alerts?.warning),
110+
dark: (colors?.alerts?.warning as ColorVariant)?.dark || (colors?.alerts?.warning as ColorVariant)?.main,
96111
},
97112
},
98113
// Extract border radius from buttons or inputs

0 commit comments

Comments
 (0)