diff --git a/app/soapbox/components/sidebar_menu.js b/app/soapbox/components/sidebar_menu.js index 187f73135..a62c32957 100644 --- a/app/soapbox/components/sidebar_menu.js +++ b/app/soapbox/components/sidebar_menu.js @@ -15,6 +15,7 @@ import { shortNumberFormat } from '../utils/numbers'; import { isStaff } from '../utils/accounts'; import { makeGetAccount } from '../selectors'; import { logOut } from 'soapbox/actions/auth'; +import ThemeToggle from '../features/ui/components/theme_toggle'; const messages = defineMessages({ followers: { id: 'account.followers', defaultMessage: 'Followers' }, @@ -119,6 +120,12 @@ class SidebarMenu extends ImmutablePureComponent {
+
+ +
+
+ +
{intl.formatMessage(messages.profile)} diff --git a/app/soapbox/features/notifications/components/setting_toggle.js b/app/soapbox/features/notifications/components/setting_toggle.js index b9adbedd5..145e2b03a 100644 --- a/app/soapbox/features/notifications/components/setting_toggle.js +++ b/app/soapbox/features/notifications/components/setting_toggle.js @@ -9,8 +9,14 @@ export default class SettingToggle extends React.PureComponent { prefix: PropTypes.string, settings: ImmutablePropTypes.map.isRequired, settingPath: PropTypes.array.isRequired, - label: PropTypes.node.isRequired, + label: PropTypes.node, onChange: PropTypes.func.isRequired, + icons: PropTypes.oneOfType([ + PropTypes.bool, + PropTypes.object, + ]), + condition: PropTypes.string, + ariaLabel: PropTypes.string, } onChange = ({ target }) => { @@ -18,13 +24,13 @@ export default class SettingToggle extends React.PureComponent { } render() { - const { prefix, settings, settingPath, label } = this.props; + const { prefix, settings, settingPath, label, icons, condition, ariaLabel } = this.props; const id = ['setting-toggle', prefix, ...settingPath].filter(Boolean).join('-'); return ( -
- - +
+ + {label && ()}
); } diff --git a/app/soapbox/features/ui/components/tabs_bar.js b/app/soapbox/features/ui/components/tabs_bar.js index 0801bb7bd..de1864a7d 100644 --- a/app/soapbox/features/ui/components/tabs_bar.js +++ b/app/soapbox/features/ui/components/tabs_bar.js @@ -12,12 +12,10 @@ import ActionBar from 'soapbox/features/compose/components/action_bar'; import { openModal } from '../../../actions/modal'; import { openSidebar } from '../../../actions/sidebar'; import Icon from '../../../components/icon'; -import { changeSetting, getSettings } from 'soapbox/actions/settings'; +import ThemeToggle from '../../ui/components/theme_toggle'; const messages = defineMessages({ post: { id: 'tabs_bar.post', defaultMessage: 'Post' }, - switchToLight: { id: 'tabs_bar.theme_toggle_light', defaultMessage: 'Switch to light theme' }, - switchToDark: { id: 'tabs_bar.theme_toggle_dark', defaultMessage: 'Switch to dark theme' }, }); @withRouter @@ -28,10 +26,8 @@ class TabsBar extends React.PureComponent { history: PropTypes.object.isRequired, onOpenCompose: PropTypes.func, onOpenSidebar: PropTypes.func.isRequired, - toggleTheme: PropTypes.func, logo: PropTypes.string, account: ImmutablePropTypes.map, - themeMode: PropTypes.string, } state = { @@ -83,18 +79,8 @@ class TabsBar extends React.PureComponent { })); } - getNewThemeValue() { - if (this.props.themeMode === 'light') return 'dark'; - - return 'light'; - } - - handleToggleTheme = () => { - this.props.toggleTheme(this.getNewThemeValue()); - } - render() { - const { account, onOpenCompose, onOpenSidebar, intl, themeMode } = this.props; + const { account, onOpenCompose, onOpenSidebar, intl } = this.props; const { collapsed } = this.state; const classes = classNames('tabs-bar', { @@ -113,9 +99,7 @@ class TabsBar extends React.PureComponent {
{ account &&
- +