From 7a1e6394831fb07e303c5ed0900dfe1ea4820de5 Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Wed, 24 Apr 2024 12:12:47 +0200
Subject: [chore] Refactor settings panel routing (and other fixes) (#2864)
---
.../settings/views/moderation/reports/detail.tsx | 243 +++++++++++++++++++++
.../settings/views/moderation/reports/overview.tsx | 99 +++++++++
.../settings/views/moderation/reports/username.tsx | 54 +++++
3 files changed, 396 insertions(+)
create mode 100644 web/source/settings/views/moderation/reports/detail.tsx
create mode 100644 web/source/settings/views/moderation/reports/overview.tsx
create mode 100644 web/source/settings/views/moderation/reports/username.tsx
(limited to 'web/source/settings/views/moderation/reports')
diff --git a/web/source/settings/views/moderation/reports/detail.tsx b/web/source/settings/views/moderation/reports/detail.tsx
new file mode 100644
index 000000000..9bb2de6b2
--- /dev/null
+++ b/web/source/settings/views/moderation/reports/detail.tsx
@@ -0,0 +1,243 @@
+/*
+ GoToSocial
+ Copyright (C) GoToSocial Authors admin@gotosocial.org
+ SPDX-License-Identifier: AGPL-3.0-or-later
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+import React, { useState } from "react";
+import { useParams } from "wouter";
+import FormWithData from "../../../lib/form/form-with-data";
+import BackButton from "../../../components/back-button";
+import { useValue, useTextInput } from "../../../lib/form";
+import useFormSubmit from "../../../lib/form/submit";
+import { TextArea } from "../../../components/form/inputs";
+import MutationButton from "../../../components/form/mutation-button";
+import Username from "./username";
+import { useGetReportQuery, useResolveReportMutation } from "../../../lib/query/admin/reports";
+import { useBaseUrl } from "../../../lib/navigation/util";
+
+export default function ReportDetail({ }) {
+ const baseUrl = useBaseUrl();
+ const params = useParams();
+
+ return (
+
+ );
+}
diff --git a/web/source/settings/views/moderation/reports/overview.tsx b/web/source/settings/views/moderation/reports/overview.tsx
new file mode 100644
index 000000000..ca8fc185c
--- /dev/null
+++ b/web/source/settings/views/moderation/reports/overview.tsx
@@ -0,0 +1,99 @@
+/*
+ GoToSocial
+ Copyright (C) GoToSocial Authors admin@gotosocial.org
+ SPDX-License-Identifier: AGPL-3.0-or-later
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+import React from "react";
+import { Link } from "wouter";
+
+import FormWithData from "../../../lib/form/form-with-data";
+
+import Username from "./username";
+import { useListReportsQuery } from "../../../lib/query/admin/reports";
+
+export function ReportOverview({ }) {
+ return (
+
+ );
+}
+
+function ReportsList({ data: reports }) {
+ return (
+
+
+
Reports
+
+ Here you can view and resolve reports made to your
+ instance, originating from local and remote users.
+
+
+ );
+}
diff --git a/web/source/settings/views/moderation/reports/username.tsx b/web/source/settings/views/moderation/reports/username.tsx
new file mode 100644
index 000000000..6fba0b804
--- /dev/null
+++ b/web/source/settings/views/moderation/reports/username.tsx
@@ -0,0 +1,54 @@
+/*
+ GoToSocial
+ Copyright (C) GoToSocial Authors admin@gotosocial.org
+ SPDX-License-Identifier: AGPL-3.0-or-later
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+*/
+
+import React from "react";
+import { Link } from "wouter";
+
+export default function Username({ user, link = true }) {
+ let className = "user";
+ let isLocal = user.domain == null;
+
+ if (user.suspended) {
+ className += " suspended";
+ }
+
+ if (isLocal) {
+ className += " local";
+ }
+
+ let icon = isLocal
+ ? { fa: "fa-home", info: "Local user" }
+ : { fa: "fa-external-link-square", info: "Remote user" };
+
+ let Element: any = "div";
+ let href: any = null;
+
+ if (link) {
+ Element = Link;
+ href = `/settings/admin/accounts/${user.id}`;
+ }
+
+ return (
+
+ @{user.account.acct}
+
+ {icon.info}
+
+ );
+}
--
cgit v1.3