:setting_boost_modal,
:setting_delete_modal,
:setting_auto_play_gif,
+ :setting_system_font_ui,
notification_emails: %i(follow follow_request reblog favourite mention digest),
interactions: %i(must_be_follower must_be_following)
)
import React from 'react';
+import classNames from 'classnames';
import Switch from 'react-router-dom/Switch';
import Route from 'react-router-dom/Route';
import Redirect from 'react-router-dom/Redirect';
}
-@connect()
+const mapStateToProps = state => ({
+ systemFontUi: state.getIn(['meta', 'system_font_ui']),
+});
+
+@connect(mapStateToProps)
export default class UI extends React.PureComponent {
static propTypes = {
dispatch: PropTypes.func.isRequired,
children: PropTypes.node,
+ systemFontUi: PropTypes.bool,
};
state = {
const { width, draggingOver } = this.state;
const { children } = this.props;
+ const className = classNames('ui', {
+ 'system-font': this.props.systemFontUi,
+ });
+
return (
- <div className='ui' ref={this.setRef}>
+ <div className={className} ref={this.setRef}>
<TabsBar />
<ColumnsAreaContainer singleColumn={isMobile(width)}>
<WrappedSwitch>
align-items: center;
justify-content: center;
}
+
+.system-font {
+ // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)
+ // -apple-system => Safari <11 specific
+ // BlinkMacSystemFont => Chrome <56 on macOS specific
+ // Segoe UI => Windows 7/8/10
+ // Oxygen => KDE
+ // Ubuntu => Unity/Ubuntu
+ // Cantarell => GNOME
+ // Fira Sans => Firefox OS
+ // Droid Sans => Older Androids (<4.0)
+ // Helvetica Neue => Older macOS <10.11
+ // mastodon-font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)
+ font-family: system-ui, -apple-system,BlinkMacSystemFont, "Segoe UI","Oxygen", "Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",mastodon-font-sans-serif, sans-serif;
+}
user.settings['boost_modal'] = boost_modal_preference
user.settings['delete_modal'] = delete_modal_preference
user.settings['auto_play_gif'] = auto_play_gif_preference
+ user.settings['system_font_ui'] = system_font_ui_preference
end
def merged_notification_emails
boolean_cast_setting 'setting_delete_modal'
end
+ def system_font_ui_preference
+ boolean_cast_setting 'setting_system_font_ui'
+ end
+
def auto_play_gif_preference
boolean_cast_setting 'setting_auto_play_gif'
end
settings.auto_play_gif
end
+ def setting_system_font_ui
+ settings.system_font_ui
+ end
+
def activate_session(request)
session_activations.activate(session_id: SecureRandom.hex,
user_agent: request.user_agent,
boost_modal: current_account.user.setting_boost_modal,
delete_modal: current_account.user.setting_delete_modal,
auto_play_gif: current_account.user.setting_auto_play_gif,
+ system_font_ui: current_account.user.setting_system_font_ui,
}
end
.fields-group
= f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label
+ = f.input :setting_system_font_ui, as: :boolean, wrapper: :with_label
.actions
= f.button :button, t('generic.save_changes'), type: :submit
setting_boost_modal: Show confirmation dialog before boosting
setting_default_privacy: Post privacy
setting_delete_modal: Show confirmation dialog before deleting a toot
+ setting_system_font_ui: Use system's default font
severity: Severity
type: Import type
username: Username
password: Mot de passe
setting_boost_modal: Afficher un dialogue de confirmation avant de partager
setting_default_privacy: Confidentialité des statuts
+ setting_system_font_ui: Utiliser la police par défaut du système
severity: Séverité
type: Type d'import
username: Identifiant
boost_modal: false
auto_play_gif: true
delete_modal: true
+ system_font_ui: false
notification_emails:
follow: false
reblog: false
settings.update(values)
expect(user.settings['auto_play_gif']).to eq false
end
+
+ it 'updates the user settings value for system font in UI' do
+ values = { 'setting_system_font_ui' => '0' }
+
+ settings.update(values)
+ expect(user.settings['system_font_ui']).to eq false
+ end
end
end
expect(user.setting_auto_play_gif).to eq false
end
end
+
+ describe '#setting_system_font_ui' do
+ it 'returns system font ui setting' do
+ user = Fabricate(:user)
+ user.settings[:system_font_ui] = false
+ expect(user.setting_system_font_ui).to eq false
+ end
+ end
describe '#setting_boost_modal' do
it 'returns boost modal setting' do