mattermost-mobile/app/screens/settings/notification_push/push_status.tsx
Daniel Espino García a27c82da90
Refactor and cleanup of option item (#9067)
* Refactor and cleanup of option item

* Fix tests and minor cleanup

* Fix bug and address feedback
2025-08-19 14:01:56 +02:00

58 lines
2.2 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {defineMessage, useIntl} from 'react-intl';
import SettingBlock from '@components/settings/block';
import SettingOption from '@components/settings/option';
import SettingSeparator from '@components/settings/separator';
const headerText = defineMessage({
id: 'notification_settings.mobile.trigger_push',
defaultMessage: 'Trigger push notifications when...',
});
type MobilePushStatusProps = {
pushStatus: UserNotifyPropsPushStatus;
setMobilePushStatus: (status: UserNotifyPropsPushStatus) => void;
}
const MobilePushStatus = ({pushStatus, setMobilePushStatus}: MobilePushStatusProps) => {
const intl = useIntl();
return (
<SettingBlock
headerText={headerText}
>
<SettingOption
action={setMobilePushStatus}
label={intl.formatMessage({id: 'notification_settings.mobile.online', defaultMessage: 'Online, away or offline'})}
selected={pushStatus === 'online'}
testID='push_notification_settings.mobile_online.option'
type='select'
value='online'
/>
<SettingSeparator/>
<SettingOption
action={setMobilePushStatus}
label={intl.formatMessage({id: 'notification_settings.mobile.away', defaultMessage: 'Away or offline'})}
selected={pushStatus === 'away'}
testID='push_notification_settings.mobile_away.option'
type='select'
value='away'
/>
<SettingSeparator/>
<SettingOption
action={setMobilePushStatus}
label={intl.formatMessage({id: 'notification_settings.mobile.offline', defaultMessage: 'Offline'})}
selected={pushStatus === 'offline'}
testID='push_notification_settings.mobile_offline.option'
type='select'
value='offline'
/>
<SettingSeparator/>
</SettingBlock>
);
};
export default MobilePushStatus;