mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-21 22:19:41 +01:00
refactor
This commit is contained in:
@@ -156,7 +156,7 @@ const Intro = () => {
|
||||
maxWidth: 500
|
||||
}}
|
||||
onPress={async () => {
|
||||
await SettingsService.set('telemetry', !isTelemetryEnabled);
|
||||
await SettingsService.set({ telemetry: !isTelemetryEnabled });
|
||||
}}
|
||||
>
|
||||
<Icon
|
||||
|
||||
@@ -128,10 +128,11 @@ export const SectionHeader = ({ item, index, type, color, screen }) => {
|
||||
color={colors.icon}
|
||||
name={listMode == 'compact' ? 'view-list' : 'view-list-outline'}
|
||||
onPress={() => {
|
||||
SettingsService.set(
|
||||
type !== 'notebooks' ? 'notesListMode' : 'notebooksListMode',
|
||||
listMode === 'normal' ? 'compact' : 'normal'
|
||||
);
|
||||
let settings = {};
|
||||
settings[type !== 'notebooks' ? 'notesListMode' : 'notebooksListMode'] =
|
||||
listMode === 'normal' ? 'compact' : 'normal';
|
||||
|
||||
SettingsService.set(settings);
|
||||
}}
|
||||
size={SIZE.lg - 2}
|
||||
/>
|
||||
|
||||
@@ -6,14 +6,12 @@ import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import ToggleSwitch from 'toggle-switch-react-native';
|
||||
import { PressableButton } from '../../components/ui/pressable';
|
||||
import Paragraph from '../../components/ui/typography/paragraph';
|
||||
import { useThemeStore } from '../../stores/theme';
|
||||
import { Actions } from '../../stores/Actions';
|
||||
import { useSettingStore } from '../../stores/stores';
|
||||
import { DDS } from '../../services/device-detection';
|
||||
import { ToastEvent } from '../../services/event-manager';
|
||||
import PremiumService from '../../services/premium';
|
||||
import SettingsService from '../../services/settings';
|
||||
import { MenuItemsList } from '../../utils/constants';
|
||||
import { useSettingStore } from '../../stores/stores';
|
||||
import { useThemeStore } from '../../stores/theme';
|
||||
import {
|
||||
ACCENT,
|
||||
COLOR_SCHEME,
|
||||
@@ -23,6 +21,7 @@ import {
|
||||
setColorScheme
|
||||
} from '../../utils/color-scheme';
|
||||
import { hexToRGBA, RGB_Linear_Shade } from '../../utils/color-scheme/utils';
|
||||
import { MenuItemsList } from '../../utils/constants';
|
||||
import { MMKV } from '../../utils/database/mmkv';
|
||||
import { tabBarRef } from '../../utils/global-refs';
|
||||
import { pv, SIZE } from '../../utils/size';
|
||||
@@ -39,21 +38,14 @@ const SettingsAppearanceSection = () => {
|
||||
useThemeStore.getState().setColors({ ...newColors });
|
||||
}
|
||||
|
||||
function changeAccentColor(accentColor) {
|
||||
ACCENT.color = accentColor;
|
||||
ACCENT.shade = accentColor + '12';
|
||||
changeColorScheme();
|
||||
}
|
||||
|
||||
const switchTheme = async () => {
|
||||
if (SettingsService.get().useSystemTheme) {
|
||||
await SettingsService.set('useSystemTheme', false);
|
||||
await SettingsService.set({ useSystemTheme: false });
|
||||
} else {
|
||||
await PremiumService.verify(async () => {
|
||||
await SettingsService.set(
|
||||
'useSystemTheme',
|
||||
SettingsService.get().useSystemTheme ? false : true
|
||||
);
|
||||
await SettingsService.set({
|
||||
useSystemTheme: !SettingsService.get().useSystemTheme
|
||||
});
|
||||
if (SettingsService.get().useSystemTheme) {
|
||||
await MMKV.setStringAsync(
|
||||
'theme',
|
||||
@@ -68,7 +60,7 @@ const SettingsAppearanceSection = () => {
|
||||
};
|
||||
|
||||
const pitchBlack = async () => {
|
||||
await SettingsService.set('pitchBlack', SettingsService.get().pitchBlack ? false : true);
|
||||
await SettingsService.set({ pitchBlack: !SettingsService.get().pitchBlack });
|
||||
let theme = await MMKV.getStringAsync('theme');
|
||||
if (!theme) return;
|
||||
theme = JSON.parse(theme);
|
||||
@@ -80,13 +72,6 @@ const SettingsAppearanceSection = () => {
|
||||
}
|
||||
};
|
||||
|
||||
// const reduceAnimations = async () => {
|
||||
// await SettingsService.set(
|
||||
// 'reduceAnimations',
|
||||
// SettingsService.get().reduceAnimations ? false : true
|
||||
// );
|
||||
// };
|
||||
|
||||
return (
|
||||
<>
|
||||
<SectionHeader collapsed={collapsed} setCollapsed={setCollapsed} title="Appearance" />
|
||||
@@ -238,7 +223,7 @@ const SettingsAppearanceSection = () => {
|
||||
key={item.name}
|
||||
onPress={async () => {
|
||||
menuRef.current?.hide();
|
||||
await SettingsService.set('homepage', item.name);
|
||||
await SettingsService.set({ homepage: item.name });
|
||||
ToastEvent.show({
|
||||
heading: 'Homepage set to ' + item.name,
|
||||
message: 'Restart the app for changes to take effect.',
|
||||
|
||||
@@ -94,7 +94,7 @@ const AppLock = ({ welcome, s = 0 }) => {
|
||||
key={item.title}
|
||||
type={settings.appLockMode === item.value ? 'grayBg' : 'transparent'}
|
||||
onPress={() => {
|
||||
SettingsService.set('appLockMode', item.value);
|
||||
SettingsService.set({ appLockMode: item.value });
|
||||
}}
|
||||
customStyle={{
|
||||
justifyContent: 'flex-start',
|
||||
|
||||
@@ -150,7 +150,7 @@ const SettingsBackupAndRestore = ({ isSheet }) => {
|
||||
});
|
||||
return;
|
||||
}
|
||||
await SettingsService.set('encryptedBackup', !settings.encryptedBackup);
|
||||
await SettingsService.set({ encryptedBackup: !settings.encryptedBackup });
|
||||
};
|
||||
|
||||
const updateAskForBackup = async () => {
|
||||
@@ -232,7 +232,7 @@ const SettingsBackupAndRestore = ({ isSheet }) => {
|
||||
activeOpacity={0.9}
|
||||
onPress={async () => {
|
||||
if (item.value === 'useroff') {
|
||||
await SettingsService.set('reminder', item.value);
|
||||
await SettingsService.set({ reminder: item.value });
|
||||
} else {
|
||||
await PremiumService.verify(async () => {
|
||||
if (Platform.OS === 'android') {
|
||||
@@ -242,7 +242,7 @@ const SettingsBackupAndRestore = ({ isSheet }) => {
|
||||
return;
|
||||
}
|
||||
}
|
||||
await SettingsService.set('reminder', item.value);
|
||||
await SettingsService.set({ reminder: item.value });
|
||||
});
|
||||
}
|
||||
updateAskForBackup();
|
||||
|
||||
@@ -12,7 +12,7 @@ const SettingsDeveloperOptions = ({ isSheet }) => {
|
||||
const [collapsed, setCollapsed] = useState(isSheet ? false : true);
|
||||
|
||||
const toggleDevMode = () => {
|
||||
SettingsService.set('devMode', !settings.devMode);
|
||||
SettingsService.set({ devMode: !settings.devMode });
|
||||
};
|
||||
|
||||
const devModeList = [
|
||||
|
||||
@@ -17,7 +17,7 @@ export const SettingsGeneralOptions = ({ isSheet }) => {
|
||||
} else {
|
||||
Notifications.pinQuickNote();
|
||||
}
|
||||
SettingsService.set('notifNotes', !settings.notifNotes);
|
||||
SettingsService.set({ notifNotes: !settings.notifNotes });
|
||||
};
|
||||
|
||||
const generalList = [
|
||||
|
||||
@@ -73,7 +73,7 @@ const SettingsPrivacyAndSecurity = () => {
|
||||
title="Enable telemetry"
|
||||
tagline="Help improve Notesnook by sending completely anonymized private analytics and bug reports."
|
||||
onPress={() => {
|
||||
SettingsService.set('telemetry', !settings.telemetry);
|
||||
SettingsService.set({ telemetry: !settings.telemetry });
|
||||
}}
|
||||
maxWidth="90%"
|
||||
customComponent={
|
||||
@@ -84,7 +84,7 @@ const SettingsPrivacyAndSecurity = () => {
|
||||
size="small"
|
||||
animationSpeed={150}
|
||||
onToggle={isOn => {
|
||||
SettingsService.set('telemetry', isOn);
|
||||
SettingsService.set({ telemetry: isOn });
|
||||
}}
|
||||
/>
|
||||
}
|
||||
@@ -99,7 +99,7 @@ const SettingsPrivacyAndSecurity = () => {
|
||||
? AndroidModule.setSecureMode(!settings.privacyScreen)
|
||||
: enabled(true);
|
||||
|
||||
SettingsService.set('privacyScreen', !settings.privacyScreen);
|
||||
SettingsService.set({ privacyScreen: !settings.privacyScreen });
|
||||
}}
|
||||
maxWidth="90%"
|
||||
customComponent={
|
||||
@@ -111,7 +111,7 @@ const SettingsPrivacyAndSecurity = () => {
|
||||
animationSpeed={150}
|
||||
onToggle={isOn => {
|
||||
Platform.OS === 'android' ? AndroidModule.setSecureMode(isOn) : enabled(true);
|
||||
SettingsService.set('privacyScreen', isOn);
|
||||
SettingsService.set({ privacyScreen: isOn });
|
||||
}}
|
||||
/>
|
||||
}
|
||||
|
||||
@@ -9,11 +9,11 @@ import {
|
||||
} from '../utils/events';
|
||||
const eventManager = new EventManager();
|
||||
|
||||
export const eSubscribeEvent = (eventName: string, action?: () => void) => {
|
||||
export const eSubscribeEvent = (eventName: string, action?: (data: any) => void) => {
|
||||
eventManager.subscribe(eventName, action);
|
||||
};
|
||||
|
||||
export const eUnSubscribeEvent = (eventName: string, action?: () => void) => {
|
||||
export const eUnSubscribeEvent = (eventName: string, action?: (data: any) => void) => {
|
||||
eventManager.unsubscribe(eventName, action);
|
||||
};
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ function pinQuickNote(launch: boolean) {
|
||||
|
||||
async function unpinQuickNote() {
|
||||
remove('notesnook_note_input', 256266 + '');
|
||||
SettingsService.set('notifNotes', false);
|
||||
SettingsService.set({ notifNotes: false });
|
||||
}
|
||||
|
||||
function present({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Platform, Settings } from 'react-native';
|
||||
import { Platform } from 'react-native';
|
||||
import { enabled } from 'react-native-privacy-snapshot';
|
||||
import { SettingStore } from '../stores/interfaces';
|
||||
import { useSettingStore } from '../stores/stores';
|
||||
@@ -16,20 +16,10 @@ async function init() {
|
||||
if (!settingsJson) {
|
||||
await MMKV.setItem('appSettings', JSON.stringify(settingsJson));
|
||||
} else {
|
||||
settings = JSON.parse(settingsJson);
|
||||
if (!settings.appLockMode) {
|
||||
settings.appLockMode = 'none';
|
||||
}
|
||||
// eslint-disable-next-line no-prototype-builtins
|
||||
if (!settings.hasOwnProperty('telemetry')) {
|
||||
settings.telemetry = true;
|
||||
}
|
||||
if (!settings.notesListMode) {
|
||||
settings.notesListMode = 'normal';
|
||||
}
|
||||
if (!settings.notebooksListMode) {
|
||||
settings.notebooksListMode = 'normal';
|
||||
}
|
||||
settings = {
|
||||
...settings,
|
||||
...JSON.parse(settingsJson)
|
||||
};
|
||||
}
|
||||
if (settings.notifNotes) {
|
||||
Notifications.pinQuickNote(true);
|
||||
@@ -63,9 +53,12 @@ const setTheme = async () => {
|
||||
useThemeStore.getState().setColors({ ...newColors });
|
||||
};
|
||||
|
||||
async function set(name: keyof SettingStore['settings'], value: any) {
|
||||
async function set(next: Partial<SettingStore['settings']>) {
|
||||
let settings = get();
|
||||
settings[name] = value;
|
||||
settings = {
|
||||
...settings,
|
||||
...next
|
||||
};
|
||||
useSettingStore.getState().setSettings(settings);
|
||||
await MMKV.setItem('appSettings', JSON.stringify(settings));
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ export const useAppEvents = () => {
|
||||
user = await db.user.getUser();
|
||||
if (PremiumService.get() && user) {
|
||||
if (SettingsService.get().reminder === 'off') {
|
||||
await SettingsService.set('reminder', 'daily');
|
||||
await SettingsService.set({ reminder: 'daily' });
|
||||
}
|
||||
if (Backup.checkBackupRequired()) {
|
||||
sleep(2000).then(() => Backup.checkAndRun());
|
||||
|
||||
Reference in New Issue
Block a user