mirror of
https://github.com/LemmyNet/lemmy-ui.git
synced 2024-11-29 07:41:13 +00:00
Fixing initial loading of admin page. Fixes #635
This commit is contained in:
parent
2c97b3d050
commit
3ddd78e3c9
2 changed files with 14 additions and 19 deletions
|
@ -35,7 +35,7 @@ import { SiteForm } from "./site-form";
|
|||
interface AdminSettingsState {
|
||||
siteRes: GetSiteResponse;
|
||||
siteConfigRes: GetSiteConfigResponse;
|
||||
siteConfigForm: SaveSiteConfig;
|
||||
siteConfigHjson: string;
|
||||
loading: boolean;
|
||||
banned: PersonViewSafe[];
|
||||
siteConfigLoading: boolean;
|
||||
|
@ -48,10 +48,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
private subscription: Subscription;
|
||||
private emptyState: AdminSettingsState = {
|
||||
siteRes: this.isoData.site_res,
|
||||
siteConfigForm: {
|
||||
config_hjson: null,
|
||||
auth: null,
|
||||
},
|
||||
siteConfigHjson: null,
|
||||
siteConfigRes: {
|
||||
config_hjson: null,
|
||||
},
|
||||
|
@ -72,13 +69,11 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
// Only fetch the data if coming from another route
|
||||
if (this.isoData.path == this.context.router.route.match.url) {
|
||||
this.state.siteConfigRes = this.isoData.routeData[0];
|
||||
this.state.siteConfigForm.config_hjson =
|
||||
this.state.siteConfigRes.config_hjson;
|
||||
this.state.siteConfigHjson = this.state.siteConfigRes.config_hjson;
|
||||
this.state.banned = this.isoData.routeData[1].banned;
|
||||
this.state.siteConfigLoading = false;
|
||||
this.state.loading = false;
|
||||
} else {
|
||||
this.state.siteConfigForm.auth = authField();
|
||||
WebSocketService.Instance.send(
|
||||
wsClient.getSiteConfig({
|
||||
auth: authField(),
|
||||
|
@ -211,7 +206,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
<div class="col-12">
|
||||
<textarea
|
||||
id={this.siteConfigTextAreaId}
|
||||
value={this.state.siteConfigForm.config_hjson}
|
||||
value={this.state.siteConfigHjson}
|
||||
onInput={linkEvent(this, this.handleSiteConfigHjsonChange)}
|
||||
class="form-control text-monospace"
|
||||
rows={3}
|
||||
|
@ -237,14 +232,16 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
handleSiteConfigSubmit(i: AdminSettings, event: any) {
|
||||
event.preventDefault();
|
||||
i.state.siteConfigLoading = true;
|
||||
WebSocketService.Instance.send(
|
||||
wsClient.saveSiteConfig(i.state.siteConfigForm)
|
||||
);
|
||||
let form: SaveSiteConfig = {
|
||||
config_hjson: this.state.siteConfigHjson,
|
||||
auth: authField(),
|
||||
};
|
||||
WebSocketService.Instance.send(wsClient.saveSiteConfig(form));
|
||||
i.setState(i.state);
|
||||
}
|
||||
|
||||
handleSiteConfigHjsonChange(i: AdminSettings, event: any) {
|
||||
i.state.siteConfigForm.config_hjson = event.target.value;
|
||||
i.state.siteConfigHjson = event.target.value;
|
||||
i.setState(i.state);
|
||||
}
|
||||
|
||||
|
@ -276,8 +273,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
let data = wsJsonToRes<GetSiteConfigResponse>(msg).data;
|
||||
this.state.siteConfigRes = data;
|
||||
this.state.loading = false;
|
||||
this.state.siteConfigForm.config_hjson =
|
||||
this.state.siteConfigRes.config_hjson;
|
||||
this.state.siteConfigHjson = this.state.siteConfigRes.config_hjson;
|
||||
this.setState(this.state);
|
||||
var textarea: any = document.getElementById(this.siteConfigTextAreaId);
|
||||
autosize(textarea);
|
||||
|
@ -292,8 +288,7 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
|
|||
} else if (op == UserOperation.SaveSiteConfig) {
|
||||
let data = wsJsonToRes<GetSiteConfigResponse>(msg).data;
|
||||
this.state.siteConfigRes = data;
|
||||
this.state.siteConfigForm.config_hjson =
|
||||
this.state.siteConfigRes.config_hjson;
|
||||
this.state.siteConfigHjson = this.state.siteConfigRes.config_hjson;
|
||||
this.state.siteConfigLoading = false;
|
||||
toast(i18n.t("site_saved"));
|
||||
this.setState(this.state);
|
||||
|
|
|
@ -38,7 +38,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
application_question: null,
|
||||
private_instance: null,
|
||||
default_theme: null,
|
||||
auth: authField(),
|
||||
auth: authField(false),
|
||||
},
|
||||
loading: false,
|
||||
themeList: [],
|
||||
|
@ -75,7 +75,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
|
|||
application_question: site.application_question,
|
||||
private_instance: site.private_instance,
|
||||
default_theme: site.default_theme,
|
||||
auth: authField(),
|
||||
auth: authField(false),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue