fix: don't run migration for new users

This commit is contained in:
ammarahm-ed
2022-03-03 22:31:23 +05:00
parent 35f9cef9f8
commit 371520c9c9
6 changed files with 30 additions and 16 deletions

View File

@@ -80,7 +80,8 @@ export const Login = ({ changeMode }) => {
}); });
eSendEvent(eCloseLoginDialog); eSendEvent(eCloseLoginDialog);
await SettingsService.set({ await SettingsService.set({
sessionExpired: false sessionExpired: false,
userEmailConfirmed: user.isEmailConfirmed
}); });
eSendEvent('userLoggedIn', true); eSendEvent('userLoggedIn', true);
await sleep(500); await sleep(500);

View File

@@ -115,7 +115,8 @@ export const SessionExpired = () => {
}); });
setVisible(false); setVisible(false);
await SettingsService.set({ await SettingsService.set({
sessionExpired: false sessionExpired: false,
userEmailConfirmed: user.isEmailConfirmed
}); });
eSendEvent('userLoggedIn', true); eSendEvent('userLoggedIn', true);
await sleep(500); await sleep(500);

View File

@@ -170,7 +170,7 @@ const Launcher = () => {
const checkForRateAppRequest = async () => { const checkForRateAppRequest = async () => {
let rateApp = SettingsService.get().rateApp; let rateApp = SettingsService.get().rateApp;
if (rateApp && rateApp < Date.now() && useMessageStore.getState().message.visible) { if (rateApp && rateApp < Date.now() && !useMessageStore.getState().message.visible) {
setRateAppMessage(); setRateAppMessage();
return true; return true;
} }

View File

@@ -13,6 +13,19 @@ import { DDS } from './device-detection';
async function migrate(settings: SettingStore['settings']) { async function migrate(settings: SettingStore['settings']) {
if (settings.migrated) return true; if (settings.migrated) return true;
let introCompleted = await MMKV.getItem('introCompleted');
if (!introCompleted) {
console.log('no need to migrate');
settings.migrated = true;
set(settings);
return;
}
settings.introCompleted = true;
MMKV.removeItem('introCompleted');
console.log('migrated introCompleted', introCompleted);
let askForRating = await MMKV.getItem('askForRating'); let askForRating = await MMKV.getItem('askForRating');
if (askForRating) { if (askForRating) {
if (askForRating === 'completed' || askForRating === 'never') { if (askForRating === 'completed' || askForRating === 'never') {
@@ -35,13 +48,6 @@ async function migrate(settings: SettingStore['settings']) {
console.log('migrated askForBackup', askForBackup); console.log('migrated askForBackup', askForBackup);
} }
let introCompleted = await MMKV.getItem('introCompleted');
if (introCompleted) {
settings.introCompleted = true;
MMKV.removeItem('introCompleted');
console.log('migrated introCompleted', introCompleted);
}
let lastBackupDate = await MMKV.getItem('backupDate'); let lastBackupDate = await MMKV.getItem('backupDate');
if (lastBackupDate) settings.lastBackupDate = parseInt(lastBackupDate); if (lastBackupDate) settings.lastBackupDate = parseInt(lastBackupDate);
MMKV.removeItem('backupDate'); MMKV.removeItem('backupDate');
@@ -137,12 +143,14 @@ async function setPrivacyScreen(settings: SettingStore['settings']) {
async function set(next: Partial<SettingStore['settings']>) { async function set(next: Partial<SettingStore['settings']>) {
let settings = get(); let settings = get();
settings = { settings = {
...settings, ...settings,
...next ...next
}; };
useSettingStore.getState().setSettings(settings); useSettingStore.getState().setSettings(settings);
await MMKV.setItem('appSettings', JSON.stringify(settings)); setTimeout(async () => await MMKV.setItem('appSettings', JSON.stringify(settings)), 1);
} }
async function toggle(id: keyof SettingStore['settings']) { async function toggle(id: keyof SettingStore['settings']) {

View File

@@ -83,11 +83,14 @@ export function getColorScheme() {
} }
export const toggleDarkMode = async () => { export const toggleDarkMode = async () => {
let settings = SettingsService.get();
await SettingsService.set({ await SettingsService.set({
theme: { theme: {
...SettingsService.get().theme, ...settings.theme,
dark: !SettingsService.get().dark dark: !settings.theme?.dark
} }
}); });
getColorScheme(); setTimeout(() => {
getColorScheme();
}, 1);
}; };

View File

@@ -136,8 +136,9 @@ export const useAppEvents = () => {
}; };
useEffect(() => { useEffect(() => {
let sub;
if (!loading) { if (!loading) {
AppState.addEventListener('change', onAppStateChanged); sub = AppState.addEventListener('change', onAppStateChanged);
(async () => { (async () => {
try { try {
let url = await Linking.getInitialURL(); let url = await Linking.getInitialURL();
@@ -153,7 +154,7 @@ export const useAppEvents = () => {
return () => { return () => {
refValues.current?.removeInternetStateListener && refValues.current?.removeInternetStateListener &&
refValues.current?.removeInternetStateListener(); refValues.current?.removeInternetStateListener();
AppState.removeEventListener('change', onAppStateChanged); sub?.remove();
unsubIAP(); unsubIAP();
}; };
}, [loading]); }, [loading]);