Skip to content

Commit 9c1f892

Browse files
authored
Merge pull request #2678 from tekdi/release-prod-fix
Release prod fix to learner qa
2 parents 7864129 + 1031297 commit 9c1f892

File tree

7 files changed

+88
-17
lines changed

7 files changed

+88
-17
lines changed

apps/learner-web-app/src/app/enroll-profile-completion/page.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,20 @@ const EnrollProfileCompletionInner = () => {
154154
// const program = JSON.parse(enrolledProgramData || '{}');
155155

156156

157+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
158+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
159+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
160+
if (!refreshToken || refreshToken === '') {
161+
refreshToken = localStorage.getItem('refreshToken');
162+
}
157163
if (window.ReactNativeWebView) {
158164
window.ReactNativeWebView.postMessage(JSON.stringify({
159165
type: 'ENROLL_PROGRAM_EVENT', // Event type identifier
160166
data: {
161167
userId: localStorage.getItem('userId'),
162168
tenantId: localStorage.getItem('tenantId'),
163169
token: localStorage.getItem('token'),
164-
refreshToken: localStorage.getItem('refreshTokenForAndroid'),
170+
refreshToken: refreshToken,
165171

166172
// Add any data you want to send
167173
}

apps/learner-web-app/src/app/login/page.tsx

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,21 @@ const LoginPage = () => {
182182
setLoading(true);
183183

184184
const token = response.access_token;
185-
const refreshToken = response?.refresh_token ?? '';
185+
const refreshToken = response?.refresh_token;
186+
// Only store refreshToken if it has a valid value
187+
if (refreshToken) {
188+
localStorage.setItem('refreshTokenForAndroid', refreshToken);
189+
if (data?.remember) {
190+
localStorage.setItem('refreshToken', refreshToken);
191+
} else {
192+
localStorage.removeItem('refreshToken');
193+
}
194+
} else {
195+
// Clear refreshTokenForAndroid if no refresh token is provided
196+
localStorage.removeItem('refreshTokenForAndroid');
197+
localStorage.removeItem('refreshToken');
198+
}
186199
localStorage.setItem('token', token);
187-
data?.remember
188-
? localStorage.setItem('refreshToken', refreshToken)
189-
: localStorage.removeItem('refreshToken');
190200

191201
const userResponse = await getUserId();
192202

@@ -324,14 +334,20 @@ const LoginPage = () => {
324334
if(localStorage.getItem('isAndroidApp') == 'yes')
325335
{
326336
// Send message to React Native WebView
337+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
338+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
339+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
340+
if (!refreshToken || refreshToken === '') {
341+
refreshToken = localStorage.getItem('refreshToken');
342+
}
327343
if (window.ReactNativeWebView) {
328344
window.ReactNativeWebView.postMessage(JSON.stringify({
329345
type: 'LOGIN_INTO_ONLY_ONE_PROGRAM_EVENT', // Event type identifier
330346
data: {
331347
userId: userResponse?.userId,
332348
tenantId:selectedTenantId,
333349
token: localStorage.getItem('token'),
334-
refreshToken: localStorage.getItem('refreshTokenForAndroid'),
350+
refreshToken: refreshToken,
335351

336352
// Add any data you want to send
337353
}

apps/learner-web-app/src/app/programs/page.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ function ProgramsContent() {
2929
const [userId, setUserId] = useState<string | null>(null);
3030
const [isAndroidApp, setIsAndroidApp] = useState(true);
3131
const [isCheckingEnrollTenantId, setIsCheckingEnrollTenantId] = useState(false);
32-
3332
useEffect(() => {
3433
const processData = async () => {
3534
// Safely access localStorage only on client side
@@ -65,9 +64,16 @@ function ProgramsContent() {
6564
setIsCheckingEnrollTenantId(false);
6665
return;
6766
}
68-
6967
// Handle Android app case
7068
if (localStorage.getItem('isAndroidApp') === 'yes') {
69+
console.log('refreshTokenForAndroid');
70+
71+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
72+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
73+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
74+
if (!refreshToken || refreshToken === '') {
75+
refreshToken = localStorage.getItem('refreshToken');
76+
}
7177
// Send message to React Native WebView
7278
if (window.ReactNativeWebView) {
7379
window.ReactNativeWebView.postMessage(JSON.stringify({
@@ -76,7 +82,7 @@ function ProgramsContent() {
7682
userId: storedUserId,
7783
tenantId: enrollTenantId,
7884
token: token,
79-
refreshToken: localStorage.getItem('refreshTokenForAndroid'),
85+
refreshToken: refreshToken,
8086
}
8187
}));
8288
}

apps/learner-web-app/src/app/registration/RegisterationFlow.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,12 @@ const RegisterationFlow = () => {
699699
if (typeof window !== 'undefined' && window.localStorage) {
700700
const token = response.result.access_token;
701701
const refreshToken = response?.result?.refresh_token;
702-
localStorage.setItem('refreshTokenForAndroid', refreshToken);
702+
// Only store refreshToken if it has a valid value
703+
if (refreshToken) {
704+
localStorage.setItem('refreshTokenForAndroid', refreshToken);
705+
} else {
706+
localStorage.removeItem('refreshTokenForAndroid');
707+
}
703708

704709
localStorage.setItem('token', token);
705710

apps/learner-web-app/src/app/sso/page.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,21 @@ const SSOContent = () => {
182182
if (typeof window !== 'undefined' && window.localStorage) {
183183
const token = response.access_token;
184184
const refreshToken = response?.refresh_token;
185-
localStorage.setItem('refreshTokenForAndroid', refreshToken);
185+
console.log('refreshToken', refreshToken);
186+
// Only store refreshToken if it has a valid value
187+
if (refreshToken) {
188+
localStorage.setItem('refreshTokenForAndroid', refreshToken);
189+
if (data?.remember) {
190+
localStorage.setItem('refreshToken', refreshToken);
191+
} else {
192+
localStorage.removeItem('refreshToken');
193+
}
194+
} else {
195+
// Clear refreshTokenForAndroid if no refresh token is provided
196+
localStorage.removeItem('refreshTokenForAndroid');
197+
localStorage.removeItem('refreshToken');
198+
}
186199
localStorage.setItem('token', token);
187-
data?.remember
188-
? localStorage.setItem('refreshToken', refreshToken)
189-
: localStorage.removeItem('refreshToken');
190200

191201
const userResponse = await getUserId();
192202
console.log('userResponse', userResponse);

apps/learner-web-app/src/components/EnrollProgramCarousel/EnrollProgramCarousel.tsx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,15 +182,23 @@ const EnrollProgramCarousel = ({
182182
}
183183
if(localStorage.getItem('isAndroidApp') == 'yes')
184184
{
185+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
186+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
187+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
188+
if (!refreshToken || refreshToken === '') {
189+
refreshToken = localStorage.getItem('refreshToken');
190+
}
191+
185192
// Send message to React Native WebView
186193
if (window.ReactNativeWebView) {
194+
187195
window.ReactNativeWebView.postMessage(JSON.stringify({
188196
type: 'ACCESS_PROGRAM_EVENT', // Event type identifier
189197
data: {
190198
userId: userId,
191199
tenantId: program.tenantId,
192200
token: localStorage.getItem('token'),
193-
refreshToken: localStorage.getItem('refreshTokenForAndroid'),
201+
refreshToken: refreshToken,
194202

195203
// Add any data you want to send
196204
}
@@ -304,6 +312,13 @@ const EnrollProgramCarousel = ({
304312
}
305313
if(localStorage.getItem('isAndroidApp') == 'yes')
306314
{
315+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
316+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
317+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
318+
if (!refreshToken || refreshToken === '') {
319+
refreshToken = localStorage.getItem('refreshToken');
320+
}
321+
307322
// Send message to React Native WebView
308323
if (window.ReactNativeWebView) {
309324
window.ReactNativeWebView.postMessage(JSON.stringify({
@@ -312,7 +327,7 @@ const EnrollProgramCarousel = ({
312327
userId: userId,
313328
tenantId: program.tenantId,
314329
token: localStorage.getItem('token'),
315-
refreshToken: localStorage.getItem('refreshToken'),
330+
refreshToken: refreshToken,
316331

317332
// Add any data you want to send
318333
}
@@ -461,6 +476,15 @@ const EnrollProgramCarousel = ({
461476
if (enrolledProgram) {
462477
if(localStorage.getItem('isAndroidApp') == 'yes')
463478
{
479+
// Get refreshToken with fallback - check refreshTokenForAndroid first, then refreshToken
480+
let refreshToken = localStorage.getItem('refreshTokenForAndroid');
481+
// Fallback to refreshToken if refreshTokenForAndroid is null or empty
482+
if (!refreshToken || refreshToken === '') {
483+
refreshToken = localStorage.getItem('refreshToken');
484+
}
485+
console.log('onSigin - refreshTokenForAndroid', localStorage.getItem('refreshTokenForAndroid'));
486+
console.log('onSigin - refreshToken (fallback)', localStorage.getItem('refreshToken'));
487+
console.log('onSigin - Using refreshToken:', refreshToken);
464488
// Send message to React Native WebView
465489

466490
// const enrolledProgramData = localStorage.getItem('enrolledProgramData');
@@ -475,7 +499,7 @@ const EnrollProgramCarousel = ({
475499
userId: localStorage.getItem('userId'),
476500
tenantId: enrolledProgram?.tenantId,
477501
token: localStorage.getItem('token'),
478-
refreshToken: localStorage.getItem('refreshToken'),
502+
refreshToken: refreshToken,
479503

480504
// Add any data you want to send
481505
}

apps/learner-web-app/src/utils/API/Interceptor.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ const refreshToken = async () => {
1414
const newRefreshToken = response?.result?.refresh_token;
1515
localStorage.setItem('token', accessToken);
1616
localStorage.setItem('refreshToken', newRefreshToken);
17+
// Also update refreshTokenForAndroid if it exists (for Android app)
18+
if (localStorage.getItem('isAndroidApp') === 'yes' && newRefreshToken) {
19+
localStorage.setItem('refreshTokenForAndroid', newRefreshToken);
20+
}
1721
return accessToken;
1822
}
1923
} catch (error) {

0 commit comments

Comments
 (0)