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);
await SettingsService.set({
sessionExpired: false
sessionExpired: false,
userEmailConfirmed: user.isEmailConfirmed
});
eSendEvent('userLoggedIn', true);
await sleep(500);

View File

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

View File

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

View File

@@ -13,6 +13,19 @@ import { DDS } from './device-detection';
async function migrate(settings: SettingStore['settings']) {
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');
if (askForRating) {
if (askForRating === 'completed' || askForRating === 'never') {
@@ -35,13 +48,6 @@ async function migrate(settings: SettingStore['settings']) {
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');
if (lastBackupDate) settings.lastBackupDate = parseInt(lastBackupDate);
MMKV.removeItem('backupDate');
@@ -137,12 +143,14 @@ async function setPrivacyScreen(settings: SettingStore['settings']) {
async function set(next: Partial<SettingStore['settings']>) {
let settings = get();
settings = {
...settings,
...next
};
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']) {

View File

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

View File

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