2017-07-18 21:21:04 +03:00
// Package imports
2017-06-29 08:00:54 +03:00
import PropTypes from 'prop-types' ;
2023-05-28 17:38:10 +03:00
import { PureComponent } from 'react' ;
2017-07-20 05:54:02 +03:00
import { defineMessages , FormattedMessage , injectIntl } from 'react-intl' ;
2017-07-12 11:02:51 +03:00
2023-05-28 17:38:10 +03:00
import ImmutablePropTypes from 'react-immutable-proptypes' ;
2017-07-18 21:21:04 +03:00
// Our imports
2023-01-26 20:36:44 +02:00
import { expandSpoilers } from 'flavours/glitch/initial_state' ;
2022-10-11 11:41:15 +03:00
import { preferenceLink } from 'flavours/glitch/utils/backend_links' ;
2023-05-28 17:38:10 +03:00
2022-05-15 18:30:40 +03:00
import DeprecatedLocalSettingsPageItem from './deprecated_item' ;
2023-05-28 17:38:10 +03:00
import LocalSettingsPageItem from './item' ;
2017-06-29 08:00:54 +03:00
2017-07-20 05:54:02 +03:00
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2017-07-04 05:51:00 +03:00
const messages = defineMessages ( {
layout _auto : { id : 'layout.auto' , defaultMessage : 'Auto' } ,
2019-06-12 21:40:20 +03:00
layout _auto _hint : { id : 'layout.hint.auto' , defaultMessage : 'Automatically chose layout based on “Enable advanced web interface” setting and screen size.' } ,
2017-07-04 05:51:00 +03:00
layout _desktop : { id : 'layout.desktop' , defaultMessage : 'Desktop' } ,
2019-06-12 21:40:20 +03:00
layout _desktop _hint : { id : 'layout.hint.desktop' , defaultMessage : 'Use multiple-column layout regardless of the “Enable advanced web interface” setting or screen size.' } ,
2017-07-04 05:51:00 +03:00
layout _mobile : { id : 'layout.single' , defaultMessage : 'Mobile' } ,
2019-06-12 21:40:20 +03:00
layout _mobile _hint : { id : 'layout.hint.single' , defaultMessage : 'Use single-column layout regardless of the “Enable advanced web interface” setting or screen size.' } ,
2017-09-24 00:11:02 +03:00
side _arm _none : { id : 'settings.side_arm.none' , defaultMessage : 'None' } ,
2022-10-05 15:10:15 +03:00
side _arm _keep : { id : 'settings.side_arm_reply_mode.keep' , defaultMessage : 'Keep its set privacy' } ,
2018-07-11 23:49:07 +03:00
side _arm _copy : { id : 'settings.side_arm_reply_mode.copy' , defaultMessage : 'Copy privacy setting of the toot being replied to' } ,
2018-07-12 13:06:42 +03:00
side _arm _restrict : { id : 'settings.side_arm_reply_mode.restrict' , defaultMessage : 'Restrict privacy setting to that of the toot being replied to' } ,
2018-08-28 18:16:30 +03:00
regexp : { id : 'settings.content_warnings.regexp' , defaultMessage : 'Regular expression' } ,
2019-08-28 23:13:41 +03:00
rewrite _mentions _no : { id : 'settings.rewrite_mentions_no' , defaultMessage : 'Do not rewrite mentions' } ,
rewrite _mentions _acct : { id : 'settings.rewrite_mentions_acct' , defaultMessage : 'Rewrite with username and domain (when the account is remote)' } ,
rewrite _mentions _username : { id : 'settings.rewrite_mentions_username' , defaultMessage : 'Rewrite with username' } ,
2020-10-26 21:45:25 +02:00
pop _in _left : { id : 'settings.pop_in_left' , defaultMessage : 'Left' } ,
pop _in _right : { id : 'settings.pop_in_right' , defaultMessage : 'Right' } ,
2023-05-08 16:16:55 +03:00
public : { id : 'privacy.public.short' , defaultMessage : 'Public' } ,
unlisted : { id : 'privacy.unlisted.short' , defaultMessage : 'Unlisted' } ,
private : { id : 'privacy.private.short' , defaultMessage : 'Followers-only' } ,
direct : { id : 'privacy.direct.short' , defaultMessage : 'Mentioned people only' } ,
2017-07-04 05:51:00 +03:00
} ) ;
2023-05-28 15:18:23 +03:00
class LocalSettingsPage extends PureComponent {
2017-06-29 08:00:54 +03:00
static propTypes = {
2017-07-20 05:54:02 +03:00
index : PropTypes . number ,
intl : PropTypes . object . isRequired ,
onChange : PropTypes . func . isRequired ,
settings : ImmutablePropTypes . map . isRequired ,
2017-06-29 08:00:54 +03:00
} ;
2017-07-20 05:54:02 +03:00
pages = [
( { intl , onChange , settings } ) => (
< div className = 'glitch local-settings__page general' >
2017-06-29 08:00:54 +03:00
< h1 > < FormattedMessage id = 'settings.general' defaultMessage = 'General' / > < / h1 >
2018-08-22 14:17:21 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'show_reply_count' ] }
id = 'mastodon-settings--reply-count'
onChange = { onChange }
>
< FormattedMessage id = 'settings.show_reply_counter' defaultMessage = 'Display an estimate of the reply count' / >
< / LocalSettingsPageItem >
2019-04-27 18:41:49 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'hicolor_privacy_icons' ] }
id = 'mastodon-settings--hicolor_privacy_icons'
onChange = { onChange }
>
< FormattedMessage id = 'settings.hicolor_privacy_icons' defaultMessage = 'High color privacy icons' / >
2023-02-03 21:52:07 +02:00
< span className = 'hint' > < FormattedMessage id = 'settings.hicolor_privacy_icons.hint' defaultMessage = 'Display privacy icons in bright and easily distinguishable colors' / > < / span >
2019-04-27 18:41:49 +03:00
< / LocalSettingsPageItem >
2019-06-07 19:38:07 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'confirm_boost_missing_media_description' ] }
id = 'mastodon-settings--confirm_boost_missing_media_description'
onChange = { onChange }
>
< FormattedMessage id = 'settings.confirm_boost_missing_media_description' defaultMessage = 'Show confirmation dialog before boosting toots lacking media descriptions' / >
< / LocalSettingsPageItem >
2019-08-01 16:01:09 +03:00
< LocalSettingsPageItem
settings = { settings }
2019-08-01 19:48:16 +03:00
item = { [ 'tag_misleading_links' ] }
id = 'mastodon-settings--tag_misleading_links'
2019-08-01 16:01:09 +03:00
onChange = { onChange }
>
2019-08-01 19:48:16 +03:00
< FormattedMessage id = 'settings.tag_misleading_links' defaultMessage = 'Tag misleading links' / >
2023-02-03 21:52:07 +02:00
< span className = 'hint' > < FormattedMessage id = 'settings.tag_misleading_links.hint' defaultMessage = 'Add a visual indication with the link target host to every link not mentioning it explicitly' / > < / span >
2019-08-01 16:01:09 +03:00
< / LocalSettingsPageItem >
2019-08-28 23:13:41 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'rewrite_mentions' ] }
id = 'mastodon-settings--rewrite_mentions'
options = { [
{ value : 'no' , message : intl . formatMessage ( messages . rewrite _mentions _no ) } ,
{ value : 'acct' , message : intl . formatMessage ( messages . rewrite _mentions _acct ) } ,
{ value : 'username' , message : intl . formatMessage ( messages . rewrite _mentions _username ) } ,
] }
onChange = { onChange }
>
< FormattedMessage id = 'settings.rewrite_mentions' defaultMessage = 'Rewrite mentions in displayed statuses' / >
< / LocalSettingsPageItem >
2018-09-06 21:55:11 +03:00
< section >
< h2 > < FormattedMessage id = 'settings.notifications_opts' defaultMessage = 'Notifications options' / > < / h2 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'notifications' , 'tab_badge' ] }
id = 'mastodon-settings--notifications-tab_badge'
onChange = { onChange }
>
2023-02-03 21:52:07 +02:00
< FormattedMessage id = 'settings.notifications.tab_badge' defaultMessage = 'Unread notifications badge' / >
2018-10-01 23:12:46 +03:00
< span className = 'hint' > < FormattedMessage id = 'settings.notifications.tab_badge.hint' defaultMessage = "Display a badge for unread notifications in the column icons when the notifications column isn't open" / > < / span >
2018-09-06 21:55:11 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'notifications' , 'favicon_badge' ] }
id = 'mastodon-settings--notifications-favicon_badge'
onChange = { onChange }
>
2018-10-01 23:12:46 +03:00
< FormattedMessage id = 'settings.notifications.favicon_badge' defaultMessage = 'Unread notifications favicon badge' / >
2023-02-03 21:52:07 +02:00
< span className = 'hint' > < FormattedMessage id = 'settings.notifications.favicon_badge.hint' defaultMessage = 'Add a badge for unread notifications to the favicon' / > < / span >
2018-09-06 21:55:11 +03:00
< / LocalSettingsPageItem >
< / section >
2022-05-27 17:34:29 +03:00
< section >
< h2 > < FormattedMessage id = 'settings.status_icons' defaultMessage = 'Toot icons' / > < / h2 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'status_icons' , 'language' ] }
id = 'mastodon-settings--status-icons-language'
onChange = { onChange }
>
< FormattedMessage id = 'settings.status_icons_language' defaultMessage = 'Language indicator' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'status_icons' , 'reply' ] }
id = 'mastodon-settings--status-icons-reply'
onChange = { onChange }
>
< FormattedMessage id = 'settings.status_icons_reply' defaultMessage = 'Reply indicator' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'status_icons' , 'local_only' ] }
id = 'mastodon-settings--status-icons-local_only'
onChange = { onChange }
>
< FormattedMessage id = 'settings.status_icons_local_only' defaultMessage = 'Local-only indicator' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'status_icons' , 'media' ] }
id = 'mastodon-settings--status-icons-media'
onChange = { onChange }
>
< FormattedMessage id = 'settings.status_icons_media' defaultMessage = 'Media and poll indicators' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'status_icons' , 'visibility' ] }
id = 'mastodon-settings--status-icons-visibility'
onChange = { onChange }
>
< FormattedMessage id = 'settings.status_icons_visibility' defaultMessage = 'Toot privacy indicator' / >
< / LocalSettingsPageItem >
< / section >
2018-08-22 14:01:12 +03:00
< section >
< h2 > < FormattedMessage id = 'settings.layout_opts' defaultMessage = 'Layout options' / > < / h2 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'layout' ] }
id = 'mastodon-settings--layout'
options = { [
2019-06-12 21:40:20 +03:00
{ value : 'auto' , message : intl . formatMessage ( messages . layout _auto ) , hint : intl . formatMessage ( messages . layout _auto _hint ) } ,
{ value : 'multiple' , message : intl . formatMessage ( messages . layout _desktop ) , hint : intl . formatMessage ( messages . layout _desktop _hint ) } ,
{ value : 'single' , message : intl . formatMessage ( messages . layout _mobile ) , hint : intl . formatMessage ( messages . layout _mobile _hint ) } ,
2018-08-22 14:01:12 +03:00
] }
onChange = { onChange }
>
< FormattedMessage id = 'settings.layout' defaultMessage = 'Layout:' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'stretch' ] }
id = 'mastodon-settings--stretch'
onChange = { onChange }
>
< FormattedMessage id = 'settings.wide_view' defaultMessage = 'Wide view (Desktop mode only)' / >
2018-10-01 23:12:46 +03:00
< span className = 'hint' > < FormattedMessage id = 'settings.wide_view_hint' defaultMessage = 'Stretches columns to better fill the available space.' / > < / span >
2018-08-22 14:01:12 +03:00
< / LocalSettingsPageItem >
< / section >
2018-09-06 21:46:42 +03:00
< / div >
) ,
( { intl , onChange , settings } ) => (
2018-09-28 19:18:57 +03:00
< div className = 'glitch local-settings__page compose_box_opts' >
2019-02-03 01:34:52 +02:00
< h1 > < FormattedMessage id = 'settings.compose_box_opts' defaultMessage = 'Compose box' / > < / h1 >
2018-09-06 21:46:42 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'always_show_spoilers_field' ] }
id = 'mastodon-settings--always_show_spoilers_field'
onChange = { onChange }
>
< FormattedMessage id = 'settings.always_show_spoilers_field' defaultMessage = 'Always enable the Content Warning field' / >
< / LocalSettingsPageItem >
2020-01-07 19:11:50 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'prepend_cw_re' ] }
id = 'mastodon-settings--prepend_cw_re'
onChange = { onChange }
>
< FormattedMessage id = 'settings.prepend_cw_re' defaultMessage = 'Prepend “re: ” to content warnings when replying' / >
< / LocalSettingsPageItem >
2018-09-28 21:58:03 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'preselect_on_reply' ] }
id = 'mastodon-settings--preselect_on_reply'
onChange = { onChange }
>
2018-10-01 23:12:46 +03:00
< FormattedMessage id = 'settings.preselect_on_reply' defaultMessage = 'Pre-select usernames on reply' / >
< span className = 'hint' > < FormattedMessage id = 'settings.preselect_on_reply_hint' defaultMessage = 'When replying to a conversation with multiple participants, pre-select usernames past the first' / > < / span >
2018-09-28 21:58:03 +03:00
< / LocalSettingsPageItem >
2018-09-06 21:46:42 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'confirm_missing_media_description' ] }
id = 'mastodon-settings--confirm_missing_media_description'
onChange = { onChange }
>
< FormattedMessage id = 'settings.confirm_missing_media_description' defaultMessage = 'Show confirmation dialog before sending toots lacking media descriptions' / >
< / LocalSettingsPageItem >
2018-11-27 19:25:51 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'confirm_before_clearing_draft' ] }
id = 'mastodon-settings--confirm_before_clearing_draft'
onChange = { onChange }
>
2018-11-27 19:54:47 +02:00
< FormattedMessage id = 'settings.confirm_before_clearing_draft' defaultMessage = 'Show confirmation dialog before overwriting the message being composed' / >
2018-11-27 19:25:51 +02:00
< / LocalSettingsPageItem >
2019-05-12 22:55:44 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'show_content_type_choice' ] }
id = 'mastodon-settings--show_content_type_choice'
onChange = { onChange }
>
< FormattedMessage id = 'settings.show_content_type_choice' defaultMessage = 'Show content-type choice when authoring toots' / >
< / LocalSettingsPageItem >
2018-09-06 21:46:42 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'side_arm' ] }
id = 'mastodon-settings--side_arm'
options = { [
{ value : 'none' , message : intl . formatMessage ( messages . side _arm _none ) } ,
2023-05-08 16:16:55 +03:00
{ value : 'direct' , message : intl . formatMessage ( messages . direct ) } ,
{ value : 'private' , message : intl . formatMessage ( messages . private ) } ,
{ value : 'unlisted' , message : intl . formatMessage ( messages . unlisted ) } ,
{ value : 'public' , message : intl . formatMessage ( messages . public ) } ,
2018-09-06 21:46:42 +03:00
] }
onChange = { onChange }
>
< FormattedMessage id = 'settings.side_arm' defaultMessage = 'Secondary toot button:' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'side_arm_reply_mode' ] }
id = 'mastodon-settings--side_arm_reply_mode'
options = { [
{ value : 'keep' , message : intl . formatMessage ( messages . side _arm _keep ) } ,
{ value : 'copy' , message : intl . formatMessage ( messages . side _arm _copy ) } ,
{ value : 'restrict' , message : intl . formatMessage ( messages . side _arm _restrict ) } ,
] }
onChange = { onChange }
>
2022-10-05 15:10:15 +03:00
< FormattedMessage id = 'settings.side_arm_reply_mode' defaultMessage = 'When replying to a toot, the secondary toot button should:' / >
2018-09-06 21:46:42 +03:00
< / LocalSettingsPageItem >
2017-06-29 08:00:54 +03:00
< / div >
2017-07-20 05:54:02 +03:00
) ,
2018-08-28 18:16:30 +03:00
( { intl , onChange , settings } ) => (
2018-08-28 15:10:26 +03:00
< div className = 'glitch local-settings__page content_warnings' >
< h1 > < FormattedMessage id = 'settings.content_warnings' defaultMessage = 'Content warnings' / > < / h1 >
2022-07-24 21:01:30 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'content_warnings' , 'shared_state' ] }
id = 'mastodon-settings--content_warnings-shared_state'
onChange = { onChange }
>
< FormattedMessage id = 'settings.content_warnings_shared_state' defaultMessage = 'Show/hide content of all copies at once' / >
< span className = 'hint' > < FormattedMessage id = 'settings.content_warnings_shared_state_hint' defaultMessage = 'Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW' / > < / span >
< / LocalSettingsPageItem >
2022-07-24 12:10:49 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'content_warnings' , 'media_outside' ] }
id = 'mastodon-settings--content_warnings-media_outside'
onChange = { onChange }
>
< FormattedMessage id = 'settings.content_warnings_media_outside' defaultMessage = 'Display media attachments outside content warnings' / >
< span className = 'hint' > < FormattedMessage id = 'settings.content_warnings_media_outside_hint' defaultMessage = 'Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments' / > < / span >
< / LocalSettingsPageItem >
2022-07-24 18:28:47 +03:00
< section >
< h2 > < FormattedMessage id = 'settings.content_warnings_unfold_opts' defaultMessage = 'Auto-unfolding options' / > < / h2 >
< DeprecatedLocalSettingsPageItem
id = 'mastodon-settings--content_warnings-auto_unfold'
value = { expandSpoilers }
>
< FormattedMessage id = 'settings.enable_content_warnings_auto_unfold' defaultMessage = 'Automatically unfold content-warnings' / >
< span className = 'hint' >
< FormattedMessage
id = 'settings.deprecated_setting'
defaultMessage = "This setting is now controlled from Mastodon's {settings_page_link}"
values = { {
settings _page _link : (
< a href = { preferenceLink ( 'user_setting_expand_spoilers' ) } >
< FormattedMessage
id = 'settings.shared_settings_link'
defaultMessage = 'user preferences'
/ >
< / a >
2023-02-03 21:52:07 +02:00
) ,
2022-07-24 18:28:47 +03:00
} }
/ >
< / span >
< / DeprecatedLocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'content_warnings' , 'filter' ] }
id = 'mastodon-settings--content_warnings-auto_unfold'
onChange = { onChange }
placeholder = { intl . formatMessage ( messages . regexp ) }
disabled = { ! expandSpoilers }
>
< FormattedMessage id = 'settings.content_warnings_filter' defaultMessage = 'Content warnings to not automatically unfold:' / >
< / LocalSettingsPageItem >
< / section >
2018-08-28 15:10:26 +03:00
< / div >
) ,
2017-07-20 05:54:02 +03:00
( { onChange , settings } ) => (
< div className = 'glitch local-settings__page collapsed' >
2017-06-29 08:00:54 +03:00
< h1 > < FormattedMessage id = 'settings.collapsed_statuses' defaultMessage = 'Collapsed toots' / > < / h1 >
2017-07-20 05:54:02 +03:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'enabled' ] }
id = 'mastodon-settings--collapsed-enabled'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
>
< FormattedMessage id = 'settings.enable_collapsed' defaultMessage = 'Enable collapsed toots' / >
2022-07-24 12:11:38 +03:00
< span className = 'hint' > < FormattedMessage id = 'settings.enable_collapsed_hint' defaultMessage = 'Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature' / > < / span >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
2018-10-01 20:21:36 +03:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'collapsed' , 'show_action_bar' ] }
id = 'mastodon-settings--collapsed-show-action-bar'
onChange = { onChange }
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.show_action_bar' defaultMessage = 'Show action buttons in collapsed toots' / >
< / LocalSettingsPageItem >
2017-06-29 08:00:54 +03:00
< section >
< h2 > < FormattedMessage id = 'settings.auto_collapse' defaultMessage = 'Automatic collapsing' / > < / h2 >
2017-07-20 05:54:02 +03:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'auto' , 'all' ] }
id = 'mastodon-settings--collapsed-auto-all'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_all' defaultMessage = 'Everything' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'auto' , 'notifications' ] }
id = 'mastodon-settings--collapsed-auto-notifications'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_notifications' defaultMessage = 'Notifications' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'auto' , 'lengthy' ] }
id = 'mastodon-settings--collapsed-auto-lengthy'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_lengthy' defaultMessage = 'Lengthy toots' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
2017-11-06 01:05:12 +02:00
settings = { settings }
item = { [ 'collapsed' , 'auto' , 'reblogs' ] }
id = 'mastodon-settings--collapsed-auto-reblogs'
onChange = { onChange }
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_reblogs' defaultMessage = 'Boosts' / >
< / LocalSettingsPageItem >
< LocalSettingsPageItem
2017-07-20 05:54:02 +03:00
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'auto' , 'replies' ] }
id = 'mastodon-settings--collapsed-auto-replies'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_replies' defaultMessage = 'Replies' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'auto' , 'media' ] }
id = 'mastodon-settings--collapsed-auto-media'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_media' defaultMessage = 'Toots with media' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
2023-01-26 20:36:44 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'collapsed' , 'auto' , 'height' ] }
id = 'mastodon-settings--collapsed-auto-height'
placeholder = '400'
onChange = { onChange }
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
2023-02-03 21:52:07 +02:00
inputProps = { { type : 'number' , min : '200' , max : '999' } }
2023-01-26 20:36:44 +02:00
>
< FormattedMessage id = 'settings.auto_collapse_height' defaultMessage = 'Height (in pixels) for a toot to be considered lengthy' / >
< / LocalSettingsPageItem >
2017-06-29 08:00:54 +03:00
< / section >
< section >
< h2 > < FormattedMessage id = 'settings.image_backgrounds' defaultMessage = 'Image backgrounds' / > < / h2 >
2017-07-20 05:54:02 +03:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'backgrounds' , 'user_backgrounds' ] }
id = 'mastodon-settings--collapsed-user-backgrouns'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.image_backgrounds_users' defaultMessage = 'Give collapsed toots an image background' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 08:00:54 +03:00
item = { [ 'collapsed' , 'backgrounds' , 'preview_images' ] }
id = 'mastodon-settings--collapsed-preview-images'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-29 08:00:54 +03:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.image_backgrounds_media' defaultMessage = 'Preview collapsed toot media' / >
2022-07-24 12:11:38 +03:00
< span className = 'hint' > < FormattedMessage id = 'settings.image_backgrounds_media_hint' defaultMessage = 'If the post has any media attachment, use the first one as a background' / > < / span >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
2017-06-29 08:00:54 +03:00
< / section >
< / div >
2017-07-20 05:54:02 +03:00
) ,
2020-10-26 21:45:25 +02:00
( { intl , onChange , settings } ) => (
2017-07-20 05:54:02 +03:00
< div className = 'glitch local-settings__page media' >
2017-06-30 12:15:18 +03:00
< h1 > < FormattedMessage id = 'settings.media' defaultMessage = 'Media' / > < / h1 >
2017-07-20 05:54:02 +03:00
< LocalSettingsPageItem
settings = { settings }
2017-06-30 12:15:18 +03:00
item = { [ 'media' , 'letterbox' ] }
id = 'mastodon-settings--media-letterbox'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-06-30 12:15:18 +03:00
>
< FormattedMessage id = 'settings.media_letterbox' defaultMessage = 'Letterbox media' / >
2018-10-01 23:12:46 +03:00
< span className = 'hint' > < FormattedMessage id = 'settings.media_letterbox_hint' defaultMessage = 'Scale down and letterbox media to fill the image containers instead of stretching and cropping them' / > < / span >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
< LocalSettingsPageItem
settings = { settings }
2017-07-08 12:01:56 +03:00
item = { [ 'media' , 'fullwidth' ] }
id = 'mastodon-settings--media-fullwidth'
2017-07-20 05:54:02 +03:00
onChange = { onChange }
2017-07-08 12:01:56 +03:00
>
< FormattedMessage id = 'settings.media_fullwidth' defaultMessage = 'Full-width media previews' / >
2017-07-20 05:54:02 +03:00
< / LocalSettingsPageItem >
2018-10-30 15:46:48 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'inline_preview_cards' ] }
id = 'mastodon-settings--inline-preview-cards'
onChange = { onChange }
>
< FormattedMessage id = 'settings.inline_preview_cards' defaultMessage = 'Inline preview cards for external links' / >
< / LocalSettingsPageItem >
2019-03-10 21:34:51 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'media' , 'reveal_behind_cw' ] }
id = 'mastodon-settings--reveal-behind-cw'
onChange = { onChange }
>
< FormattedMessage id = 'settings.media_reveal_behind_cw' defaultMessage = 'Reveal sensitive media behind a CW by default' / >
< / LocalSettingsPageItem >
2020-10-26 21:11:35 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'media' , 'pop_in_player' ] }
id = 'mastodon-settings--pop-in-player'
onChange = { onChange }
>
< FormattedMessage id = 'settings.pop_in_player' defaultMessage = 'Enable pop-in player' / >
< / LocalSettingsPageItem >
2020-10-26 21:45:25 +02:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'media' , 'pop_in_position' ] }
id = 'mastodon-settings--pop-in-position'
options = { [
{ value : 'left' , message : intl . formatMessage ( messages . pop _in _left ) } ,
{ value : 'right' , message : intl . formatMessage ( messages . pop _in _right ) } ,
] }
onChange = { onChange }
dependsOn = { [ [ 'media' , 'pop_in_player' ] ] }
>
< FormattedMessage id = 'settings.pop_in_position' defaultMessage = 'Pop-in player position:' / >
< / LocalSettingsPageItem >
2017-06-30 12:15:18 +03:00
< / div >
2017-07-20 05:54:02 +03:00
) ,
] ;
2017-06-29 08:00:54 +03:00
render ( ) {
2017-07-20 05:54:02 +03:00
const { pages } = this ;
const { index , intl , onChange , settings } = this . props ;
const CurrentPage = pages [ index ] || pages [ 0 ] ;
2017-06-29 08:00:54 +03:00
2017-07-20 05:54:02 +03:00
return < CurrentPage intl = { intl } onChange = { onChange } settings = { settings } / > ;
2017-06-29 08:00:54 +03:00
}
}
2023-03-25 00:15:25 +02:00
export default injectIntl ( LocalSettingsPage ) ;