2017-07-18 18:21:04 +00:00
// Package imports
2017-06-29 05:00:54 +00:00
import React from 'react' ;
import PropTypes from 'prop-types' ;
import ImmutablePropTypes from 'react-immutable-proptypes' ;
2017-07-20 02:54:02 +00:00
import { defineMessages , FormattedMessage , injectIntl } from 'react-intl' ;
2017-07-12 08:02:51 +00:00
2017-07-18 18:21:04 +00:00
// Our imports
2022-05-15 15:30:40 +00:00
import { expandSpoilers , disableSwiping } from 'flavours/glitch/util/initial_state' ;
import { preferenceLink } from 'flavours/glitch/util/backend_links' ;
2017-07-20 02:54:02 +00:00
import LocalSettingsPageItem from './item' ;
2022-05-15 15:30:40 +00:00
import DeprecatedLocalSettingsPageItem from './deprecated_item' ;
2017-06-29 05:00:54 +00:00
2017-07-20 02:54:02 +00:00
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2017-07-04 02:51:00 +00:00
const messages = defineMessages ( {
layout _auto : { id : 'layout.auto' , defaultMessage : 'Auto' } ,
2019-06-12 18:40:20 +00: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 02:51:00 +00:00
layout _desktop : { id : 'layout.desktop' , defaultMessage : 'Desktop' } ,
2019-06-12 18:40:20 +00: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 02:51:00 +00:00
layout _mobile : { id : 'layout.single' , defaultMessage : 'Mobile' } ,
2019-06-12 18:40:20 +00: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-23 21:11:02 +00:00
side _arm _none : { id : 'settings.side_arm.none' , defaultMessage : 'None' } ,
2018-07-11 20:49:07 +00:00
side _arm _keep : { id : 'settings.side_arm_reply_mode.keep' , defaultMessage : 'Keep secondary toot button to set privacy' } ,
side _arm _copy : { id : 'settings.side_arm_reply_mode.copy' , defaultMessage : 'Copy privacy setting of the toot being replied to' } ,
2018-07-12 10:06:42 +00: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 15:16:30 +00:00
regexp : { id : 'settings.content_warnings.regexp' , defaultMessage : 'Regular expression' } ,
2019-07-12 16:27:43 +00:00
filters _drop : { id : 'settings.filtering_behavior.drop' , defaultMessage : 'Hide filtered toots completely' } ,
filters _upstream : { id : 'settings.filtering_behavior.upstream' , defaultMessage : 'Show "filtered" like vanilla Mastodon' } ,
filters _hide : { id : 'settings.filtering_behavior.hide' , defaultMessage : 'Show "filtered" and add a button to display why' } ,
filters _cw : { id : 'settings.filtering_behavior.cw' , defaultMessage : 'Still display the post, and add filtered words to content warning' } ,
2019-08-28 20:13:41 +00: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 19:45:25 +00:00
pop _in _left : { id : 'settings.pop_in_left' , defaultMessage : 'Left' } ,
pop _in _right : { id : 'settings.pop_in_right' , defaultMessage : 'Right' } ,
2017-07-04 02:51:00 +00:00
} ) ;
2019-09-09 13:16:08 +00:00
export default @ injectIntl
class LocalSettingsPage extends React . PureComponent {
2017-06-29 05:00:54 +00:00
static propTypes = {
2017-07-20 02:54:02 +00:00
index : PropTypes . number ,
intl : PropTypes . object . isRequired ,
onChange : PropTypes . func . isRequired ,
settings : ImmutablePropTypes . map . isRequired ,
2017-06-29 05:00:54 +00:00
} ;
2017-07-20 02:54:02 +00:00
pages = [
( { intl , onChange , settings } ) => (
< div className = 'glitch local-settings__page general' >
2017-06-29 05:00:54 +00:00
< h1 > < FormattedMessage id = 'settings.general' defaultMessage = 'General' / > < / h 1 >
2018-08-22 11:17:21 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2019-04-27 15:41:49 +00: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' / >
< span className = 'hint' > < FormattedMessage id = 'settings.hicolor_privacy_icons.hint' defaultMessage = "Display privacy icons in bright and easily distinguishable colors" / > < / s p a n >
< / L o c a l S e t t i n g s P a g e I t e m >
2019-06-07 16:38:07 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2019-08-01 13:01:09 +00:00
< LocalSettingsPageItem
settings = { settings }
2019-08-01 16:48:16 +00:00
item = { [ 'tag_misleading_links' ] }
id = 'mastodon-settings--tag_misleading_links'
2019-08-01 13:01:09 +00:00
onChange = { onChange }
>
2019-08-01 16:48:16 +00:00
< FormattedMessage id = 'settings.tag_misleading_links' defaultMessage = 'Tag misleading links' / >
< 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" / > < / s p a n >
2019-08-01 13:01:09 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2019-08-28 20:13:41 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2018-09-06 18:55:11 +00:00
< section >
< h2 > < FormattedMessage id = 'settings.notifications_opts' defaultMessage = 'Notifications options' / > < / h 2 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'notifications' , 'tab_badge' ] }
id = 'mastodon-settings--notifications-tab_badge'
onChange = { onChange }
>
2018-10-01 20:12:46 +00:00
< FormattedMessage id = 'settings.notifications.tab_badge' defaultMessage = "Unread notifications badge" / >
< 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" / > < / s p a n >
2018-09-06 18:55:11 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'notifications' , 'favicon_badge' ] }
id = 'mastodon-settings--notifications-favicon_badge'
onChange = { onChange }
>
2018-10-01 20:12:46 +00:00
< FormattedMessage id = 'settings.notifications.favicon_badge' defaultMessage = 'Unread notifications favicon badge' / >
< span className = 'hint' > < FormattedMessage id = 'settings.notifications.favicon_badge.hint' defaultMessage = "Add a badge for unread notifications to the favicon" / > < / s p a n >
2018-09-06 18:55:11 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< / s e c t i o n >
2018-08-22 11:01:12 +00:00
< section >
< h2 > < FormattedMessage id = 'settings.layout_opts' defaultMessage = 'Layout options' / > < / h 2 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'layout' ] }
id = 'mastodon-settings--layout'
options = { [
2019-06-12 18:40:20 +00: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 11:01:12 +00:00
] }
onChange = { onChange }
>
< FormattedMessage id = 'settings.layout' defaultMessage = 'Layout:' / >
< / L o c a l S e t t i n g s P a g e I t e m >
< 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 20:12:46 +00:00
< span className = 'hint' > < FormattedMessage id = 'settings.wide_view_hint' defaultMessage = 'Stretches columns to better fill the available space.' / > < / s p a n >
2018-08-22 11:01:12 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'navbar_under' ] }
id = 'mastodon-settings--navbar_under'
onChange = { onChange }
>
< FormattedMessage id = 'settings.navbar_under' defaultMessage = 'Navbar at the bottom (Mobile only)' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2022-05-15 15:30:40 +00:00
< DeprecatedLocalSettingsPageItem
2019-01-04 17:53:27 +00:00
id = 'mastodon-settings--swipe_to_change_columns'
2022-05-15 15:30:40 +00:00
value = { ! disableSwiping }
2019-01-04 17:53:27 +00:00
>
< FormattedMessage id = 'settings.swipe_to_change_columns' defaultMessage = 'Allow swiping to change columns (Mobile only)' / >
2022-05-15 15:30:40 +00:00
< 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_disable_swiping' ) } >
< FormattedMessage
id = 'settings.shared_settings_link'
defaultMessage = 'user preferences'
/ >
< / a >
)
} }
/ >
< / s p a n >
< / D e p r e c a t e d L o c a l S e t t i n g s P a g e I t e m >
2018-08-22 11:01:12 +00:00
< / s e c t i o n >
2018-09-06 18:46:42 +00:00
< / d i v >
) ,
( { intl , onChange , settings } ) => (
2018-09-28 16:18:57 +00:00
< div className = 'glitch local-settings__page compose_box_opts' >
2019-02-02 23:34:52 +00:00
< h1 > < FormattedMessage id = 'settings.compose_box_opts' defaultMessage = 'Compose box' / > < / h 1 >
2018-09-06 18:46:42 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2020-01-07 17:11:50 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2018-09-28 18:58:03 +00:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'preselect_on_reply' ] }
id = 'mastodon-settings--preselect_on_reply'
onChange = { onChange }
>
2018-10-01 20:12:46 +00: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' / > < / s p a n >
2018-09-28 18:58:03 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2018-09-06 18:46:42 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2018-11-27 17:25:51 +00:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'confirm_before_clearing_draft' ] }
id = 'mastodon-settings--confirm_before_clearing_draft'
onChange = { onChange }
>
2018-11-27 17:54:47 +00:00
< FormattedMessage id = 'settings.confirm_before_clearing_draft' defaultMessage = 'Show confirmation dialog before overwriting the message being composed' / >
2018-11-27 17:25:51 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2019-05-12 19:55:44 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2018-09-06 18:46:42 +00:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'side_arm' ] }
id = 'mastodon-settings--side_arm'
options = { [
{ value : 'none' , message : intl . formatMessage ( messages . side _arm _none ) } ,
{ value : 'direct' , message : intl . formatMessage ( { id : 'privacy.direct.short' } ) } ,
{ value : 'private' , message : intl . formatMessage ( { id : 'privacy.private.short' } ) } ,
{ value : 'unlisted' , message : intl . formatMessage ( { id : 'privacy.unlisted.short' } ) } ,
{ value : 'public' , message : intl . formatMessage ( { id : 'privacy.public.short' } ) } ,
] }
onChange = { onChange }
>
< FormattedMessage id = 'settings.side_arm' defaultMessage = 'Secondary toot button:' / >
< / L o c a l S e t t i n g s P a g e I t e m >
< 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 }
>
< FormattedMessage id = 'settings.side_arm_reply_mode' defaultMessage = 'When replying to a toot:' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2017-06-29 05:00:54 +00:00
< / d i v >
2017-07-20 02:54:02 +00:00
) ,
2018-08-28 15:16:30 +00:00
( { intl , onChange , settings } ) => (
2018-08-28 12:10:26 +00:00
< div className = 'glitch local-settings__page content_warnings' >
< h1 > < FormattedMessage id = 'settings.content_warnings' defaultMessage = 'Content warnings' / > < / h 1 >
2022-05-15 15:30:40 +00:00
< DeprecatedLocalSettingsPageItem
2018-08-28 12:10:26 +00:00
id = 'mastodon-settings--content_warnings-auto_unfold'
2022-05-15 15:30:40 +00:00
value = { expandSpoilers }
2018-08-28 12:10:26 +00:00
>
< FormattedMessage id = 'settings.enable_content_warnings_auto_unfold' defaultMessage = 'Automatically unfold content-warnings' / >
2022-05-15 15:30:40 +00:00
< 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 >
)
} }
/ >
< / s p a n >
< / D e p r e c a t e d L o c a l S e t t i n g s P a g e I t e m >
2018-08-28 15:16:30 +00:00
< LocalSettingsPageItem
settings = { settings }
item = { [ 'content_warnings' , 'filter' ] }
id = 'mastodon-settings--content_warnings-auto_unfold'
onChange = { onChange }
placeholder = { intl . formatMessage ( messages . regexp ) }
2022-05-15 15:30:40 +00:00
disabled = { ! expandSpoilers }
2018-08-28 15:16:30 +00:00
>
< FormattedMessage id = 'settings.content_warnings_filter' defaultMessage = 'Content warnings to not automatically unfold:' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2018-08-28 12:10:26 +00:00
< / d i v >
) ,
2019-07-12 16:27:43 +00:00
( { intl , onChange , settings } ) => (
< div className = 'glitch local-settings__page filters' >
< h1 > < FormattedMessage id = 'settings.filters' defaultMessage = 'Filters' / > < / h 1 >
< LocalSettingsPageItem
settings = { settings }
item = { [ 'filtering_behavior' ] }
id = 'mastodon-settings--filters-behavior'
onChange = { onChange }
options = { [
{ value : 'drop' , message : intl . formatMessage ( messages . filters _drop ) } ,
{ value : 'upstream' , message : intl . formatMessage ( messages . filters _upstream ) } ,
{ value : 'hide' , message : intl . formatMessage ( messages . filters _hide ) } ,
{ value : 'content_warning' , message : intl . formatMessage ( messages . filters _cw ) }
] }
>
< FormattedMessage id = 'settings.filtering_behavior' defaultMessage = 'Filtering behavior' / >
< / L o c a l S e t t i n g s P a g e I t e m >
< / d i v >
) ,
2017-07-20 02:54:02 +00:00
( { onChange , settings } ) => (
< div className = 'glitch local-settings__page collapsed' >
2017-06-29 05:00:54 +00:00
< h1 > < FormattedMessage id = 'settings.collapsed_statuses' defaultMessage = 'Collapsed toots' / > < / h 1 >
2017-07-20 02:54:02 +00:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'enabled' ] }
id = 'mastodon-settings--collapsed-enabled'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
>
< FormattedMessage id = 'settings.enable_collapsed' defaultMessage = 'Enable collapsed toots' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2018-10-01 17:21:36 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2017-06-29 05:00:54 +00:00
< section >
< h2 > < FormattedMessage id = 'settings.auto_collapse' defaultMessage = 'Automatic collapsing' / > < / h 2 >
2017-07-20 02:54:02 +00:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'auto' , 'all' ] }
id = 'mastodon-settings--collapsed-auto-all'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_all' defaultMessage = 'Everything' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'auto' , 'notifications' ] }
id = 'mastodon-settings--collapsed-auto-notifications'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_notifications' defaultMessage = 'Notifications' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'auto' , 'lengthy' ] }
id = 'mastodon-settings--collapsed-auto-lengthy'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_lengthy' defaultMessage = 'Lengthy toots' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
2017-11-05 23:05:12 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
2017-07-20 02:54:02 +00:00
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'auto' , 'replies' ] }
id = 'mastodon-settings--collapsed-auto-replies'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_replies' defaultMessage = 'Replies' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'auto' , 'media' ] }
id = 'mastodon-settings--collapsed-auto-media'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
dependsOnNot = { [ [ 'collapsed' , 'auto' , 'all' ] ] }
>
< FormattedMessage id = 'settings.auto_collapse_media' defaultMessage = 'Toots with media' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2017-06-29 05:00:54 +00:00
< / s e c t i o n >
< section >
< h2 > < FormattedMessage id = 'settings.image_backgrounds' defaultMessage = 'Image backgrounds' / > < / h 2 >
2017-07-20 02:54:02 +00:00
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'backgrounds' , 'user_backgrounds' ] }
id = 'mastodon-settings--collapsed-user-backgrouns'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.image_backgrounds_users' defaultMessage = 'Give collapsed toots an image background' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
2017-06-29 05:00:54 +00:00
item = { [ 'collapsed' , 'backgrounds' , 'preview_images' ] }
id = 'mastodon-settings--collapsed-preview-images'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-29 05:00:54 +00:00
dependsOn = { [ [ 'collapsed' , 'enabled' ] ] }
>
< FormattedMessage id = 'settings.image_backgrounds_media' defaultMessage = 'Preview collapsed toot media' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2017-06-29 05:00:54 +00:00
< / s e c t i o n >
< / d i v >
2017-07-20 02:54:02 +00:00
) ,
2020-10-26 19:45:25 +00:00
( { intl , onChange , settings } ) => (
2017-07-20 02:54:02 +00:00
< div className = 'glitch local-settings__page media' >
2017-06-30 09:15:18 +00:00
< h1 > < FormattedMessage id = 'settings.media' defaultMessage = 'Media' / > < / h 1 >
2017-07-20 02:54:02 +00:00
< LocalSettingsPageItem
settings = { settings }
2017-06-30 09:15:18 +00:00
item = { [ 'media' , 'letterbox' ] }
id = 'mastodon-settings--media-letterbox'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-06-30 09:15:18 +00:00
>
< FormattedMessage id = 'settings.media_letterbox' defaultMessage = 'Letterbox media' / >
2018-10-01 20:12:46 +00: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' / > < / s p a n >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
< LocalSettingsPageItem
settings = { settings }
2017-07-08 09:01:56 +00:00
item = { [ 'media' , 'fullwidth' ] }
id = 'mastodon-settings--media-fullwidth'
2017-07-20 02:54:02 +00:00
onChange = { onChange }
2017-07-08 09:01:56 +00:00
>
< FormattedMessage id = 'settings.media_fullwidth' defaultMessage = 'Full-width media previews' / >
2017-07-20 02:54:02 +00:00
< / L o c a l S e t t i n g s P a g e I t e m >
2018-10-30 13:46:48 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2019-03-10 19:34:51 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2020-10-26 19:11:35 +00: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' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2020-10-26 19:45:25 +00: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:' / >
< / L o c a l S e t t i n g s P a g e I t e m >
2017-06-30 09:15:18 +00:00
< / d i v >
2017-07-20 02:54:02 +00:00
) ,
] ;
2017-06-29 05:00:54 +00:00
render ( ) {
2017-07-20 02:54:02 +00:00
const { pages } = this ;
const { index , intl , onChange , settings } = this . props ;
const CurrentPage = pages [ index ] || pages [ 0 ] ;
2017-06-29 05:00:54 +00:00
2017-07-20 02:54:02 +00:00
return < CurrentPage intl = { intl } onChange = { onChange } settings = { settings } / > ;
2017-06-29 05:00:54 +00:00
}
}