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