Skip to content

Commit 21c2e60

Browse files
committedAug 25, 2023
migrate sign out
1 parent 521b60d commit 21c2e60

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed
 

‎src/context/UserDataContext/UserDataContext.tsx

+22-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as Sentry from '@sentry/browser';
2-
import { getAuth, onAuthStateChanged, User } from 'firebase/auth';
2+
import { getAuth, onAuthStateChanged, signOut, User } from 'firebase/auth';
33
import {
44
doc,
55
getFirestore,
@@ -68,6 +68,7 @@ type UserDataContextAPI = {
6868
updateUserData: (
6969
computeUpdatesFunc: (prevUserData: UserData) => Partial<UserData>
7070
) => void;
71+
signOut: () => Promise<void>;
7172
};
7273

7374
export const assignDefaultsToUserData = (data: object): UserData => {
@@ -286,10 +287,9 @@ export const UserDataProvider = ({
286287
};
287288
});
288289

289-
// initialize from localstorage
290-
React.useEffect(() => {
291-
runMigration();
292-
290+
const initializeFromLocalStorage = (
291+
{ useURLLang } = { useURLLang: true }
292+
) => {
293293
let localStorageData: Partial<UserData>;
294294
try {
295295
localStorageData = JSON.parse(
@@ -299,9 +299,11 @@ export const UserDataProvider = ({
299299
localStorageData = {};
300300
}
301301

302-
const urlLang = getLangFromUrl();
303-
if (urlLang) {
304-
localStorageData.lang = urlLang;
302+
if (useURLLang) {
303+
const urlLang = getLangFromUrl();
304+
if (urlLang) {
305+
localStorageData.lang = urlLang;
306+
}
305307
}
306308

307309
const actualUserData = assignDefaultsToUserData(localStorageData);
@@ -312,6 +314,12 @@ export const UserDataProvider = ({
312314
localStorage.setItem('guide:userData:v100', JSON.stringify(actualUserData));
313315

314316
setUserData(actualUserData);
317+
};
318+
319+
// initialize from localstorage
320+
React.useEffect(() => {
321+
runMigration();
322+
initializeFromLocalStorage();
315323
}, []);
316324

317325
const userDataAPI: UserDataContextAPI = {
@@ -363,11 +371,12 @@ export const UserDataProvider = ({
363371
[firebaseApp, setUserData, !!firebaseUser]
364372
),
365373

366-
// signOut: (): Promise<void> => {
367-
// return signOut(getAuth(firebaseApp)).then(() => {
368-
// // todo: clear, then re-initialize from local storage
369-
// });
370-
// },
374+
signOut: (): Promise<void> => {
375+
return signOut(getAuth(firebaseApp)).then(() => {
376+
localStorage.removeItem('guide:userData:v100');
377+
initializeFromLocalStorage({ useURLLang: false });
378+
});
379+
},
371380

372381
// getDataExport: (): Record<string, any> => {
373382
// return {};

0 commit comments

Comments
 (0)