Autoarchive: Fix displaying option in settings (#2692)

This commit is contained in:
Alexander Zinchuk 2023-02-28 18:43:39 +01:00
parent 515394d35e
commit 9cd1e8bbcc
3 changed files with 20 additions and 11 deletions

View File

@ -36,6 +36,7 @@ export interface GramJsAppConfig extends LimitsConfig {
premium_promo_order: string[];
default_emoji_statuses_stickerset_id: string;
hidden_members_group_size_min: number;
autoarchive_setting_available: boolean;
// Forums
topics_pinned_limit: number;
}
@ -86,6 +87,7 @@ export function buildAppConfig(json: GramJs.TypeJSONValue): ApiAppConfig {
maxUserReactionsDefault: appConfig.reactions_user_max_default,
maxUserReactionsPremium: appConfig.reactions_user_max_premium,
hiddenMembersMinCount: appConfig.hidden_members_group_size_min,
canDisplayAutoarchiveSetting: appConfig.autoarchive_setting_available,
limits: {
uploadMaxFileparts: getLimit(appConfig, 'upload_max_fileparts', 'uploadMaxFileparts'),
stickersFaved: getLimit(appConfig, 'stickers_faved_limit', 'stickersFaved'),

View File

@ -186,6 +186,7 @@ export interface ApiAppConfig {
maxUserReactionsPremium: number;
hiddenMembersMinCount: number;
limits: Record<ApiLimitType, readonly [number, number]>;
canDisplayAutoarchiveSetting: boolean;
}
export interface ApiConfig {

View File

@ -27,6 +27,7 @@ type StateProps = {
webAuthCount: number;
isSensitiveEnabled?: boolean;
canChangeSensitive?: boolean;
canDisplayAutoarchiveSetting: boolean;
shouldArchiveAndMuteNewNonContact?: boolean;
privacyPhoneNumber?: ApiPrivacySettings;
privacyLastSeen?: ApiPrivacySettings;
@ -47,6 +48,7 @@ const SettingsPrivacy: FC<OwnProps & StateProps> = ({
webAuthCount,
isSensitiveEnabled,
canChangeSensitive,
canDisplayAutoarchiveSetting,
shouldArchiveAndMuteNewNonContact,
privacyPhoneNumber,
privacyLastSeen,
@ -300,17 +302,19 @@ const SettingsPrivacy: FC<OwnProps & StateProps> = ({
</ListItem>
</div>
<div className="settings-item">
<h4 className="settings-item-header" dir={lang.isRtl ? 'rtl' : undefined}>
{lang('NewChatsFromNonContacts')}
</h4>
<Checkbox
label={lang('ArchiveAndMute')}
subLabel={lang('ArchiveAndMuteInfo')}
checked={Boolean(shouldArchiveAndMuteNewNonContact)}
onCheck={handleArchiveAndMuteChange}
/>
</div>
{canDisplayAutoarchiveSetting && (
<div className="settings-item">
<h4 className="settings-item-header" dir={lang.isRtl ? 'rtl' : undefined}>
{lang('NewChatsFromNonContacts')}
</h4>
<Checkbox
label={lang('ArchiveAndMute')}
subLabel={lang('ArchiveAndMuteInfo')}
checked={Boolean(shouldArchiveAndMuteNewNonContact)}
onCheck={handleArchiveAndMuteChange}
/>
</div>
)}
{canChangeSensitive && (
<div className="settings-item">
@ -343,6 +347,7 @@ export default memo(withGlobal<OwnProps>(
passcode: {
hasPasscode,
},
appConfig,
} = global;
return {
@ -352,6 +357,7 @@ export default memo(withGlobal<OwnProps>(
blockedCount: blocked.totalCount,
webAuthCount: global.activeWebSessions.orderedHashes.length,
isSensitiveEnabled,
canDisplayAutoarchiveSetting: Boolean(appConfig?.canDisplayAutoarchiveSetting),
shouldArchiveAndMuteNewNonContact,
canChangeSensitive,
privacyPhoneNumber: privacy.phoneNumber,