make some checkboxes for long-running state changes 3-state

This commit is contained in:
or-else
2021-08-30 16:44:44 -07:00
parent d706cc4f6b
commit 25bd8d2ada
10 changed files with 39 additions and 15 deletions
+7 -1
View File
@@ -158,7 +158,7 @@ class TinodeWeb extends React.Component {
// "On" is the default, so saving the "off" state.
messageSounds: !settings.messageSoundsOff,
incognitoMode: false,
desktopAlerts: persist && settings.desktopAlerts,
desktopAlerts: persist && !!settings.desktopAlerts,
desktopAlertsEnabled: (isSecureConnection() || isLocalHost()) &&
(typeof firebase != 'undefined') && (typeof navigator != 'undefined') &&
(typeof FIREBASE_INIT != 'undefined'),
@@ -1012,9 +1012,14 @@ class TinodeWeb extends React.Component {
}
handleToggleIncognitoMode(on) {
// Make state undefined.
this.setState({incognitoMode: null});
const me = this.tinode.getMeTopic();
const am = me.getAccessMode().updateWant(on ? '-P' : '+P').getWant();
me.setMeta({sub: {mode: am}}).catch((err) => {
// Request failed, keep existing state.
this.setState({incognitoMode: !on});
this.handleError(err.message, 'err');
});
}
@@ -1075,6 +1080,7 @@ class TinodeWeb extends React.Component {
togglePushToken(enabled) {
if (enabled) {
this.setState({desktopAlerts: null});
if (!this.state.firebaseToken) {
const fcm = this.fbPush ?
Promise.resolve() :
+4 -2
View File
@@ -15,9 +15,11 @@ export default class CheckBox extends React.PureComponent {
render() {
return (
this.props.onChange ? (
this.props.checked ?
this.props.checked === true ?
<i className="material-icons blue clickable" onClick={this.handleChange}>check_box</i> :
<i className="material-icons blue clickable" onClick={this.handleChange}>check_box_outline_blank</i>
this.props.checked === false ?
<i className="material-icons blue clickable" onClick={this.handleChange}>check_box_outline_blank</i> :
<i className="material-icons lt-blue">indeterminate_check_box</i>
) : (
this.props.checked ?
<i className="material-icons">check_box</i> :