From 34188ebd8435406f370cb3f1c829a7b8127f7e08 Mon Sep 17 00:00:00 2001 From: SleeplessOne1917 Date: Tue, 27 Jun 2023 08:09:55 -0400 Subject: [PATCH] Fix allowed and blocked instances not being fetched for admin settings (#1627) Co-authored-by: Dessalines --- src/shared/components/home/site-form.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/shared/components/home/site-form.tsx b/src/shared/components/home/site-form.tsx index 382f5650..45857a0d 100644 --- a/src/shared/components/home/site-form.tsx +++ b/src/shared/components/home/site-form.tsx @@ -4,6 +4,7 @@ import { Component, InfernoKeyboardEvent, InfernoMouseEvent, + InfernoNode, linkEvent, } from "inferno"; import { @@ -13,6 +14,7 @@ import { Instance, ListingType, } from "lemmy-js-client"; +import deepEqual from "lodash.isequal"; import { I18NextService } from "../../services"; import { Icon, Spinner } from "../common/icon"; import { ImageUploadForm } from "../common/image-upload-form"; @@ -55,6 +57,7 @@ export class SiteForm extends Component { initSiteForm(): EditSite { const site = this.props.siteRes.site_view.site; const ls = this.props.siteRes.site_view.local_site; + return { name: site.name, sidebar: site.sidebar, @@ -619,6 +622,19 @@ export class SiteForm extends Component { ); } + componentDidUpdate( + prevProps: Readonly<{ children?: InfernoNode } & SiteFormProps> + ) { + if ( + !( + deepEqual(prevProps.allowedInstances, this.props.allowedInstances) || + deepEqual(prevProps.blockedInstances, this.props.blockedInstances) + ) + ) { + this.setState({ siteForm: this.initSiteForm() }); + } + } + federatedInstanceSelect(key: InstanceKey) { const id = `create_site_${key}`; const value = this.state.instance_select[key];