From 75d52f1e4e32d14e7ca7482e21213cc6d589f211 Mon Sep 17 00:00:00 2001
From: Dessalines <dessalines@users.noreply.github.com>
Date: Thu, 23 Jun 2022 10:05:56 -0400
Subject: [PATCH] Removing save and read config hjson. Fixes #695 (#696)

---
 package.json                                  |   2 +-
 src/shared/components/community/community.tsx |   1 -
 src/shared/components/home/admin-settings.tsx | 110 +-----------------
 src/shared/components/home/home.tsx           |   1 -
 src/shared/components/home/site-form.tsx      |   2 +-
 src/shared/components/post/post.tsx           |   1 -
 yarn.lock                                     |   8 +-
 7 files changed, 11 insertions(+), 114 deletions(-)

diff --git a/package.json b/package.json
index a643322..3fa26db 100644
--- a/package.json
+++ b/package.json
@@ -77,7 +77,7 @@
     "eslint-plugin-prettier": "^4.0.0",
     "husky": "^7.0.4",
     "import-sort-style-module": "^6.0.0",
-    "lemmy-js-client": "0.17.0-rc.31",
+    "lemmy-js-client": "0.17.0-rc.32",
     "lint-staged": "^12.4.1",
     "mini-css-extract-plugin": "^2.6.0",
     "node-fetch": "^2.6.1",
diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx
index 732cba2..ab00af1 100644
--- a/src/shared/components/community/community.tsx
+++ b/src/shared/components/community/community.tsx
@@ -171,7 +171,6 @@ export class Community extends Component<any, State> {
   componentWillUnmount() {
     saveScrollPosition(this.context);
     this.subscription.unsubscribe();
-    window.isoData.path = undefined;
   }
 
   static getDerivedStateFromProps(props: any): CommunityProps {
diff --git a/src/shared/components/home/admin-settings.tsx b/src/shared/components/home/admin-settings.tsx
index 67a000c..e01a09d 100644
--- a/src/shared/components/home/admin-settings.tsx
+++ b/src/shared/components/home/admin-settings.tsx
@@ -1,16 +1,12 @@
-import { None, Option, Some } from "@sniptt/monads";
+import { None, Some } from "@sniptt/monads";
 import autosize from "autosize";
 import { Component, linkEvent } from "inferno";
 import {
   BannedPersonsResponse,
   GetBannedPersons,
-  GetSiteConfig,
-  GetSiteConfigResponse,
   GetSiteResponse,
   PersonViewSafe,
-  SaveSiteConfig,
   SiteResponse,
-  toUndefined,
   UserOperation,
   wsJsonToRes,
   wsUserOp,
@@ -37,29 +33,19 @@ import { SiteForm } from "./site-form";
 
 interface AdminSettingsState {
   siteRes: GetSiteResponse;
-  siteConfigRes: Option<GetSiteConfigResponse>;
-  siteConfigHjson: Option<string>;
   banned: PersonViewSafe[];
   loading: boolean;
-  siteConfigLoading: boolean;
   leaveAdminTeamLoading: boolean;
 }
 
 export class AdminSettings extends Component<any, AdminSettingsState> {
   private siteConfigTextAreaId = `site-config-${randomStr()}`;
-  private isoData = setIsoData(
-    this.context,
-    GetSiteConfigResponse,
-    BannedPersonsResponse
-  );
+  private isoData = setIsoData(this.context, BannedPersonsResponse);
   private subscription: Subscription;
   private emptyState: AdminSettingsState = {
     siteRes: this.isoData.site_res,
-    siteConfigHjson: None,
-    siteConfigRes: None,
     banned: [],
     loading: true,
-    siteConfigLoading: null,
     leaveAdminTeamLoading: null,
   };
 
@@ -73,23 +59,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 = Some(
-        this.isoData.routeData[0] as GetSiteConfigResponse
-      );
-      this.state.siteConfigHjson = this.state.siteConfigRes.map(
-        s => s.config_hjson
-      );
       this.state.banned = (
-        this.isoData.routeData[1] as BannedPersonsResponse
+        this.isoData.routeData[0] as BannedPersonsResponse
       ).banned;
-      this.state.siteConfigLoading = false;
       this.state.loading = false;
     } else {
-      WebSocketService.Instance.send(
-        wsClient.getSiteConfig({
-          auth: auth().unwrap(),
-        })
-      );
       WebSocketService.Instance.send(
         wsClient.getBannedPersons({
           auth: auth().unwrap(),
@@ -101,9 +75,6 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
   static fetchInitialData(req: InitialFetchRequest): Promise<any>[] {
     let promises: Promise<any>[] = [];
 
-    let siteConfigForm = new GetSiteConfig({ auth: req.auth.unwrap() });
-    promises.push(req.client.getSiteConfig(siteConfigForm));
-
     let bannedPersonsForm = new GetBannedPersons({ auth: req.auth.unwrap() });
     promises.push(req.client.getBannedPersons(bannedPersonsForm));
 
@@ -155,10 +126,11 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
                 ),
                 none: <></>,
               })}
+            </div>
+            <div class="col-12 col-md-6">
               {this.admins()}
               {this.bannedUsers()}
             </div>
-            <div class="col-12 col-md-6">{this.adminSettings()}</div>
           </div>
         )}
       </div>
@@ -211,60 +183,6 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
     );
   }
 
-  adminSettings() {
-    return (
-      <div>
-        <h5>{i18n.t("admin_settings")}</h5>
-        <form onSubmit={linkEvent(this, this.handleSiteConfigSubmit)}>
-          <div class="form-group row">
-            <label
-              class="col-12 col-form-label"
-              htmlFor={this.siteConfigTextAreaId}
-            >
-              {i18n.t("site_config")}
-            </label>
-            <div class="col-12">
-              <textarea
-                id={this.siteConfigTextAreaId}
-                value={toUndefined(this.state.siteConfigHjson)}
-                onInput={linkEvent(this, this.handleSiteConfigHjsonChange)}
-                class="form-control text-monospace"
-                rows={3}
-              />
-            </div>
-          </div>
-          <div class="form-group row">
-            <div class="col-12">
-              <button type="submit" class="btn btn-secondary mr-2">
-                {this.state.siteConfigLoading ? (
-                  <Spinner />
-                ) : (
-                  capitalizeFirstLetter(i18n.t("save"))
-                )}
-              </button>
-            </div>
-          </div>
-        </form>
-      </div>
-    );
-  }
-
-  handleSiteConfigSubmit(i: AdminSettings, event: any) {
-    event.preventDefault();
-    i.state.siteConfigLoading = true;
-    let form = new SaveSiteConfig({
-      config_hjson: toUndefined(i.state.siteConfigHjson),
-      auth: auth().unwrap(),
-    });
-    WebSocketService.Instance.send(wsClient.saveSiteConfig(form));
-    i.setState(i.state);
-  }
-
-  handleSiteConfigHjsonChange(i: AdminSettings, event: any) {
-    i.state.siteConfigHjson = event.target.value;
-    i.setState(i.state);
-  }
-
   handleLeaveAdminTeam(i: AdminSettings) {
     i.state.leaveAdminTeamLoading = true;
     WebSocketService.Instance.send(
@@ -290,17 +208,8 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
     } else if (op == UserOperation.GetBannedPersons) {
       let data = wsJsonToRes<BannedPersonsResponse>(msg, BannedPersonsResponse);
       this.state.banned = data.banned;
-      this.setState(this.state);
-    } else if (op == UserOperation.GetSiteConfig) {
-      let data = wsJsonToRes<GetSiteConfigResponse>(msg, GetSiteConfigResponse);
-      this.state.siteConfigRes = Some(data);
       this.state.loading = false;
-      this.state.siteConfigHjson = this.state.siteConfigRes.map(
-        s => s.config_hjson
-      );
       this.setState(this.state);
-      var textarea: any = document.getElementById(this.siteConfigTextAreaId);
-      autosize(textarea);
     } else if (op == UserOperation.LeaveAdmin) {
       let data = wsJsonToRes<GetSiteResponse>(msg, GetSiteResponse);
       this.state.siteRes.site_view = data.site_view;
@@ -309,15 +218,6 @@ export class AdminSettings extends Component<any, AdminSettingsState> {
       toast(i18n.t("left_admin_team"));
       this.setState(this.state);
       this.context.router.history.push("/");
-    } else if (op == UserOperation.SaveSiteConfig) {
-      let data = wsJsonToRes<GetSiteConfigResponse>(msg, GetSiteConfigResponse);
-      this.state.siteConfigRes = Some(data);
-      this.state.siteConfigHjson = this.state.siteConfigRes.map(
-        s => s.config_hjson
-      );
-      this.state.siteConfigLoading = false;
-      toast(i18n.t("site_saved"));
-      this.setState(this.state);
     }
   }
 }
diff --git a/src/shared/components/home/home.tsx b/src/shared/components/home/home.tsx
index 5ae3588..6baea78 100644
--- a/src/shared/components/home/home.tsx
+++ b/src/shared/components/home/home.tsx
@@ -194,7 +194,6 @@ export class Home extends Component<any, HomeState> {
   componentWillUnmount() {
     saveScrollPosition(this.context);
     this.subscription.unsubscribe();
-    window.isoData.path = undefined;
   }
 
   static getDerivedStateFromProps(props: any): HomeProps {
diff --git a/src/shared/components/home/site-form.tsx b/src/shared/components/home/site-form.tsx
index c653371..09a7ca3 100644
--- a/src/shared/components/home/site-form.tsx
+++ b/src/shared/components/home/site-form.tsx
@@ -98,7 +98,7 @@ export class SiteForm extends Component<SiteFormProps, SiteFormState> {
           default_theme: Some(site.default_theme),
           default_post_listing_type: Some(site.default_post_listing_type),
           legal_information: site.legal_information,
-          auth: auth(false).unwrap(),
+          auth: undefined,
         });
       },
       none: void 0,
diff --git a/src/shared/components/post/post.tsx b/src/shared/components/post/post.tsx
index 00d2789..9b42282 100644
--- a/src/shared/components/post/post.tsx
+++ b/src/shared/components/post/post.tsx
@@ -198,7 +198,6 @@ export class Post extends Component<any, PostState> {
     this.subscription.unsubscribe();
     document.removeEventListener("scroll", this.commentScrollDebounced);
 
-    window.isoData.path = undefined;
     saveScrollPosition(this.context);
   }
 
diff --git a/yarn.lock b/yarn.lock
index 571c0a4..a5a342a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4948,10 +4948,10 @@ lcid@^1.0.0:
   dependencies:
     invert-kv "^1.0.0"
 
-lemmy-js-client@0.17.0-rc.31:
-  version "0.17.0-rc.31"
-  resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.0-rc.31.tgz#373ad2dcbb1305bd82e7fb13704fbdb8d2f1c438"
-  integrity sha512-hcjFcOxgplffQullf9HuAGv2ko9wWySrnv+s8FWPPpg4EsixuBjXI+Dh7y0GR/KVs6fRmeXn4YBhR2YdJsBc7A==
+lemmy-js-client@0.17.0-rc.32:
+  version "0.17.0-rc.32"
+  resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.17.0-rc.32.tgz#d67f432f1fffc54c267f915278fe260ec554b018"
+  integrity sha512-qPLybaesu3GVr1DMStsyCYanW4maxHrqX71UHadFMeuh+aUK8taC3zfsLRK9dlIlSDRS283xd8IZkI6ZlcOVEQ==
 
 levn@^0.4.1:
   version "0.4.1"
-- 
2.44.1