mirror of
https://github.com/hyperspacedev/hyperspace
synced 2025-02-07 04:43:20 +01:00
Disable public visibility in Settings when defederated
This commit is contained in:
parent
f68a37e908
commit
d06b91d8bc
@ -24,7 +24,7 @@ import {
|
||||
} from '@material-ui/core';
|
||||
import OpenInNewIcon from '@material-ui/icons/OpenInNew';
|
||||
import {styles} from './PageLayout.styles';
|
||||
import {setUserDefaultBool, getUserDefaultBool, getUserDefaultTheme, setUserDefaultTheme, getUserDefaultVisibility, setUserDefaultVisibility} from '../utilities/settings';
|
||||
import {setUserDefaultBool, getUserDefaultBool, getUserDefaultTheme, setUserDefaultTheme, getUserDefaultVisibility, setUserDefaultVisibility, getConfig} from '../utilities/settings';
|
||||
import {canSendNotifications, browserSupportsNotificationRequests} from '../utilities/notifications';
|
||||
import {themes, defaultTheme} from '../types/HyperspaceTheme';
|
||||
import ThemePreview from '../components/ThemePreview';
|
||||
@ -43,6 +43,7 @@ interface ISettingsState {
|
||||
resetSettingsDialog: boolean;
|
||||
previewTheme: Theme;
|
||||
defaultVisibility: Visibility;
|
||||
federated: boolean;
|
||||
}
|
||||
|
||||
class SettingsPage extends Component<any, ISettingsState> {
|
||||
@ -61,7 +62,8 @@ class SettingsPage extends Component<any, ISettingsState> {
|
||||
resetHyperspaceDialog: false,
|
||||
resetSettingsDialog: false,
|
||||
previewTheme: setHyperspaceTheme(getUserDefaultTheme()) || setHyperspaceTheme(defaultTheme),
|
||||
defaultVisibility: getUserDefaultVisibility() || "public"
|
||||
defaultVisibility: getUserDefaultVisibility() || "public",
|
||||
federated: true
|
||||
}
|
||||
|
||||
this.toggleDarkMode = this.toggleDarkMode.bind(this);
|
||||
@ -75,6 +77,16 @@ class SettingsPage extends Component<any, ISettingsState> {
|
||||
this.setVisibility = this.setVisibility.bind(this);
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getFederatedStatus();
|
||||
}
|
||||
|
||||
getFederatedStatus() {
|
||||
getConfig().then((config: any) => {
|
||||
this.setState({ federated: config.federated === "true" });
|
||||
})
|
||||
}
|
||||
|
||||
toggleDarkMode() {
|
||||
this.setState({ darkModeEnabled: !this.state.darkModeEnabled });
|
||||
setUserDefaultBool('darkModeEnabled', !this.state.darkModeEnabled);
|
||||
@ -208,7 +220,7 @@ class SettingsPage extends Component<any, ISettingsState> {
|
||||
value={this.state.defaultVisibility}
|
||||
onChange={(e, value) => this.changeVisibility(value as Visibility)}
|
||||
>
|
||||
<FormControlLabel value={"public"} key={"public"} control={<Radio />} label={"Public"} />
|
||||
<FormControlLabel value={"public"} key={"public"} control={<Radio />} label={`Public ${this.state.federated? "": "(disabled by provider)"}`} disabled={!this.state.federated}/>
|
||||
<FormControlLabel value={"unlisted"} key={"unlisted"} control={<Radio />} label={"Unlisted"} />
|
||||
<FormControlLabel value={"private"} key={"private"} control={<Radio />} label={"Private (followers only)"} />
|
||||
<FormControlLabel value={"direct"} key={"direct"} control={<Radio />} label={"Direct"} />
|
||||
|
Loading…
x
Reference in New Issue
Block a user