Address design issues and set theme at device level

This commit is contained in:
Jorik Schellekens 2020-06-11 12:27:09 +01:00
parent 0f685eb0e9
commit cf392af52f
5 changed files with 39 additions and 11 deletions

View file

@ -44,8 +44,15 @@ limitations under the License.
padding-right: 5px; padding-right: 5px;
} }
.mx_AppearanceUserSettingsTab {
> .mx_SettingsTab_SubHeading {
margin-bottom: 32px;
}
}
.mx_AppearanceUserSettingsTab_themeSection { .mx_AppearanceUserSettingsTab_themeSection {
$radio-bg-color: $input-darker-bg-color; $radio-bg-color: $input-darker-bg-color;
color: $primary-fg-color;
> .mx_ThemeSelectors { > .mx_ThemeSelectors {
display: flex; display: flex;
@ -53,19 +60,31 @@ limitations under the License.
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 13px; margin-top: 13px;
margin-bottom: 30px;
> .mx_RadioButton { > .mx_RadioButton {
padding: $font-16px; padding: $font-16px;
box-sizing: border-box;
border-radius: 10px; border-radius: 10px;
background: rgba($radio-bg-color, 0.2);
width: 180px; width: 180px;
background: rgba($radio-bg-color, 0.2);
flex-shrink: 1; flex-shrink: 1;
flex-grow: 0; flex-grow: 0;
margin-right: 15px; margin-right: 15px;
margin-top: 10px; margin-top: 10px;
font-weight: 600;
color: $muted-fg-color;
> span {
justify-content: center;
}
} }
> .mx_RadioButton:not([disabled]) { > .mx_RadioButton_enabled {
// These need to be hardcoded because they don't change with the theme // These need to be hardcoded because they don't change with the theme
&.mx_ThemeSelector_light { &.mx_ThemeSelector_light {
background-color: #f3f8fd; background-color: #f3f8fd;
@ -74,6 +93,7 @@ limitations under the License.
&.mx_ThemeSelector_dark { &.mx_ThemeSelector_dark {
background-color: #181b21; background-color: #181b21;
color: #f3f8fd;
> input > div { > input > div {
border-color: $input-darker-bg-color; border-color: $input-darker-bg-color;
@ -85,6 +105,7 @@ limitations under the License.
&.mx_ThemeSelector_black { &.mx_ThemeSelector_black {
background-color: #000000; background-color: #000000;
color: #f3f8fd;
> input > div { > input > div {
border-color: $input-darker-bg-color; border-color: $input-darker-bg-color;

View file

@ -29,9 +29,16 @@ export default class StyledRadioButton extends React.PureComponent<IProps, IStat
} }
public render() { public render() {
const { children, className, ...otherProps } = this.props; const { children, className, disabled, ...otherProps } = this.props;
return <label className={classnames('mx_RadioButton', className)}> const _className = classnames(
<input type='radio' {...otherProps} /> 'mx_RadioButton',
className,
{
"mx_RadioButton_disabled": disabled,
"mx_RadioButton_enabled": !disabled,
});
return <label className={_className}>
<input type='radio' disabled={disabled} {...otherProps} />
{/* Used to render the radio button circle */} {/* Used to render the radio button circle */}
<div><div></div></div> <div><div></div></div>
<span>{children}</span> <span>{children}</span>

View file

@ -110,7 +110,7 @@ export default class AppearanceUserSettingsTab extends React.Component<IProps, I
// doing getValue in the .catch will still return the value we failed to set, // doing getValue in the .catch will still return the value we failed to set,
// so remember what the value was before we tried to set it so we can revert // so remember what the value was before we tried to set it so we can revert
const oldTheme: string = SettingsStore.getValue('theme'); const oldTheme: string = SettingsStore.getValue('theme');
SettingsStore.setValue("theme", null, SettingLevel.ACCOUNT, newTheme).catch(() => { SettingsStore.setValue("theme", null, SettingLevel.DEVICE, newTheme).catch(() => {
dis.dispatch<RecheckThemePayload>({action: Action.RecheckTheme}); dis.dispatch<RecheckThemePayload>({action: Action.RecheckTheme});
this.setState({theme: oldTheme}); this.setState({theme: oldTheme});
}); });
@ -316,7 +316,7 @@ export default class AppearanceUserSettingsTab extends React.Component<IProps, I
render() { render() {
return ( return (
<div className="mx_SettingsTab"> <div className="mx_SettingsTab mx_AppearanceUserSettingsTab">
<div className="mx_SettingsTab_heading">{_t("Customise your appearance")}</div> <div className="mx_SettingsTab_heading">{_t("Customise your appearance")}</div>
<div className="mx_SettingsTab_SubHeading"> <div className="mx_SettingsTab_SubHeading">
{_t("Appearance Settings only affect this Riot session.")} {_t("Appearance Settings only affect this Riot session.")}

View file

@ -298,8 +298,8 @@
"%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s", "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s",
"%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s", "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s",
"%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s", "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s",
"Light theme": "Light theme", "Light": "Light",
"Dark theme": "Dark theme", "Dark": "Dark",
"You signed in to a new session without verifying it:": "You signed in to a new session without verifying it:", "You signed in to a new session without verifying it:": "You signed in to a new session without verifying it:",
"Verify your other session using one of the options below.": "Verify your other session using one of the options below.", "Verify your other session using one of the options below.": "Verify your other session using one of the options below.",
"%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s (%(userId)s) signed in to a new session without verifying it:", "%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s (%(userId)s) signed in to a new session without verifying it:",

View file

@ -24,8 +24,8 @@ import ThemeWatcher from "./settings/watchers/ThemeWatcher";
export function enumerateThemes() { export function enumerateThemes() {
const BUILTIN_THEMES = { const BUILTIN_THEMES = {
"light": _t("Light theme"), "light": _t("Light"),
"dark": _t("Dark theme"), "dark": _t("Dark"),
}; };
const customThemes = SettingsStore.getValue("custom_themes"); const customThemes = SettingsStore.getValue("custom_themes");
const customThemeNames = {}; const customThemeNames = {};