diff --git a/src/shared/components/home/admin-settings.tsx b/src/shared/components/home/admin-settings.tsx index 18ab0507..1dd7d665 100644 --- a/src/shared/components/home/admin-settings.tsx +++ b/src/shared/components/home/admin-settings.tsx @@ -163,14 +163,24 @@ export class AdminSettings extends Component { { key: "rate_limiting", label: "Rate Limiting", - getNode: () => , + getNode: () => ( + + ), }, { key: "taglines", label: i18n.t("taglines"), getNode: () => (
- +
), }, @@ -254,6 +264,11 @@ export class AdminSettings extends Component { const editRes = await apiWrapper(HttpService.client.editSite(form)); if (editRes.state === "success") { + this.setState(s => { + s.siteRes.site_view = editRes.data.site_view; + s.siteRes.taglines = editRes.data.taglines; + return s; + }); toast(i18n.t("site_saved")); } diff --git a/src/shared/components/home/rate-limit-form.tsx b/src/shared/components/home/rate-limit-form.tsx index 87020020..74ed18e3 100644 --- a/src/shared/components/home/rate-limit-form.tsx +++ b/src/shared/components/home/rate-limit-form.tsx @@ -1,8 +1,7 @@ import { Component, FormEventHandler, linkEvent } from "inferno"; -import { EditSite, GetSiteResponse, SiteResponse } from "lemmy-js-client"; +import { EditSite, LocalSiteRateLimit } from "lemmy-js-client"; import { i18n } from "../../i18next"; -import { RequestState } from "../../services/HttpService"; -import { capitalizeFirstLetter, myAuthRequired, setIsoData } from "../../utils"; +import { capitalizeFirstLetter, myAuthRequired } from "../../utils"; import { Spinner } from "../common/icon"; import Tabs from "../common/tabs"; @@ -23,11 +22,11 @@ interface RateLimitsProps { } interface RateLimitFormProps { - onSaveSite(form: EditSite): Promise>; + rateLimits: LocalSiteRateLimit; + onSaveSite(form: EditSite): void; } interface RateLimitFormState { - siteRes: GetSiteResponse; form: { message?: number; message_per_second?: number; @@ -105,7 +104,7 @@ function handlePerSecondChange( })); } -async function submitRateLimitForm(i: RateLimitsForm, event: any) { +function submitRateLimitForm(i: RateLimitsForm, event: any) { event.preventDefault(); const auth = myAuthRequired(); const form: EditSite = Object.entries(i.state.form).reduce( @@ -115,67 +114,23 @@ async function submitRateLimitForm(i: RateLimitsForm, event: any) { }, { auth, - application_question: - i.state.siteRes.site_view.local_site.application_question, } ); i.setState({ loading: true }); - - const res = await i.props.onSaveSite(form); - - if (res.state === "success") { - i.setState(s => ((s.siteRes.site_view = res.data.site_view), s)); - } - - i.setState({ loading: false }); + i.props.onSaveSite(form); } export default class RateLimitsForm extends Component< RateLimitFormProps, RateLimitFormState > { - private isoData = setIsoData(this.context); state: RateLimitFormState = { - siteRes: this.isoData.site_res, loading: false, - form: {}, + form: this.props.rateLimits, }; - constructor(props: RateLimitFormProps, context) { + constructor(props: RateLimitFormProps, context: any) { super(props, context); - - const { - comment, - comment_per_second, - image, - image_per_second, - message, - message_per_second, - post, - post_per_second, - register, - register_per_second, - search, - search_per_second, - } = this.state.siteRes.site_view.local_site_rate_limit; - - this.state = { - ...this.state, - form: { - comment, - comment_per_second, - image, - image_per_second, - message, - message_per_second, - post, - post_per_second, - register, - register_per_second, - search, - search_per_second, - }, - }; } render() { diff --git a/src/shared/components/home/tagline-form.tsx b/src/shared/components/home/tagline-form.tsx index 368b8c6d..b1bfb189 100644 --- a/src/shared/components/home/tagline-form.tsx +++ b/src/shared/components/home/tagline-form.tsx @@ -1,33 +1,27 @@ import { Component, InfernoMouseEvent, linkEvent } from "inferno"; -import { EditSite, GetSiteResponse, SiteResponse } from "lemmy-js-client"; +import { EditSite, Tagline } from "lemmy-js-client"; import { i18n } from "../../i18next"; -import { RequestState } from "../../services/HttpService"; -import { capitalizeFirstLetter, myAuthRequired, setIsoData } from "../../utils"; +import { capitalizeFirstLetter, myAuthRequired } from "../../utils"; import { HtmlTags } from "../common/html-tags"; import { Icon, Spinner } from "../common/icon"; import { MarkdownTextArea } from "../common/markdown-textarea"; interface TaglineFormProps { - onSaveSite(form: EditSite): Promise>; + taglines: Array; + onSaveSite(form: EditSite): void; } interface TaglineFormState { - siteRes: GetSiteResponse; - siteForm: EditSite; + taglines: Array; loading: boolean; editingRow?: number; } export class TaglineForm extends Component { - private isoData = setIsoData(this.context); state: TaglineFormState = { loading: false, - siteRes: this.isoData.site_res, editingRow: undefined, - siteForm: { - taglines: this.state.siteRes.taglines?.map(x => x.content), - auth: "TODO", - }, + taglines: this.props.taglines.map(x => x.content), }; constructor(props: any, context: any) { super(props, context); @@ -55,7 +49,7 @@ export class TaglineForm extends Component { - {this.state.siteForm.taglines?.map((cv, index) => ( + {this.state.taglines.map((cv, index) => ( {this.state.editingRow == index && ( @@ -65,8 +59,8 @@ export class TaglineForm extends Component { this.handleTaglineChange(this, index, s) } hideNavigationWarnings - allLanguages={this.state.siteRes.all_languages} - siteLanguages={this.state.siteRes.discussion_languages} + allLanguages={[]} + siteLanguages={[]} /> )} {this.state.editingRow != index &&
{cv}
} @@ -75,7 +69,7 @@ export class TaglineForm extends Component {