2025-04-24 14:21:40 +02:00

47 lines
1.6 KiB
TypeScript

import type { GlobalState } from '../types';
import { ACCOUNT_SLOT, getAccountsInfo } from '../../util/multiaccount';
import { selectSharedSettings } from './sharedState';
export function selectNotifySettings<T extends GlobalState>(global: T) {
return global.settings.byKey;
}
export function selectNotifyDefaults<T extends GlobalState>(global: T) {
return global.settings.notifyDefaults;
}
export function selectNotifyException<T extends GlobalState>(global: T, chatId: string) {
return global.chats.notifyExceptionById?.[chatId];
}
export function selectLanguageCode<T extends GlobalState>(global: T) {
return selectSharedSettings(global).language.replace('-raw', '');
}
export function selectCanSetPasscode<T extends GlobalState>(global: T) {
// TODO[passcode]: remove this when multiacc passcode is implemented
const accounts = getAccountsInfo();
return global.authRememberMe && !ACCOUNT_SLOT && Object.keys(accounts).length === 1;
}
export function selectTranslationLanguage<T extends GlobalState>(global: T) {
return global.settings.byKey.translationLanguage || selectLanguageCode(global);
}
export function selectNewNoncontactPeersRequirePremium<T extends GlobalState>(global: T) {
return global.settings.byKey.shouldNewNonContactPeersRequirePremium;
}
export function selectNonContactPeersPaidStars<T extends GlobalState>(global: T) {
return global.settings.byKey.nonContactPeersPaidStars;
}
export function selectShouldHideReadMarks<T extends GlobalState>(global: T) {
return global.settings.byKey.shouldHideReadMarks;
}
export function selectSettingsKeys<T extends GlobalState>(global: T) {
return global.settings.byKey;
}