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)
---
web/source/settings/lib/navigation/components.jsx | 201 ----------------------
1 file changed, 201 deletions(-)
delete mode 100644 web/source/settings/lib/navigation/components.jsx
(limited to 'web/source/settings/lib/navigation/components.jsx')
diff --git a/web/source/settings/lib/navigation/components.jsx b/web/source/settings/lib/navigation/components.jsx
deleted file mode 100644
index 64ed160b6..000000000
--- a/web/source/settings/lib/navigation/components.jsx
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- 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 .
-*/
-
-const React = require("react");
-const { Link, Route, Redirect, Switch, useLocation, useRouter } = require("wouter");
-const syncpipe = require("syncpipe");
-
-const {
- RoleContext,
- useHasPermission,
- checkPermission,
- BaseUrlContext
-} = require("./util");
-
-const ActiveRouteCtx = React.createContext();
-function useActiveRoute() {
- return React.useContext(ActiveRouteCtx);
-}
-
-function Sidebar(menuTree, routing) {
- const components = menuTree.map((m) => m.MenuEntry);
-
- return function SidebarComponent() {
- const router = useRouter();
- const [location] = useLocation();
-
- let activeRoute = routing.find((l) => {
- let [match] = router.matcher(l.routingUrl, location);
- return match;
- })?.routingUrl;
-
- return (
-
- );
- };
-}
-
-function ViewRouter(routing, defaultRoute) {
- return function ViewRouterComponent() {
- const permissions = React.useContext(RoleContext);
-
- const filteredRoutes = React.useMemo(() => {
- return syncpipe(routing, [
- (_) => _.filter((route) => checkPermission(route.permissions, permissions)),
- (_) => _.map((route) => {
- return (
-
-
- {/* FIXME: implement reset */}
-
- {route.view}
-
-
-
- );
- })
- ]);
- }, [permissions]);
-
- return (
-
- {filteredRoutes}
-
-
- );
- };
-}
-
-function MenuComponent({ type, name, url, icon, permissions, links, level, children }) {
- const activeRoute = useActiveRoute();
-
- if (!useHasPermission(permissions)) {
- return null;
- }
-
- const classes = [type];
-
- if (level == 0) {
- classes.push("top-level");
- } else if (level == 1) {
- classes.push("expanding");
- } else {
- classes.push("nested");
- }
-
- const isActive = links.includes(activeRoute);
- if (isActive) {
- classes.push("active");
- }
-
- const className = classes.join(" ");
-
- return (
-
-
-
- {icon && }
- {name}
-
-
- {(type == "category" && (level == 0 || isActive) && children?.length > 0) &&
-
- }
-
- );
-}
-
-class ErrorBoundary extends React.Component {
-
- constructor() {
- super();
- this.state = {};
-
- this.resetErrorBoundary = () => {
- this.setState({});
- };
- }
-
- static getDerivedStateFromError(error) {
- return { hadError: true, error };
- }
-
- componentDidCatch(_e, info) {
- this.setState({
- ...this.state,
- componentStack: info.componentStack
- });
- }
-
- render() {
- if (this.state.hadError) {
- return (
-
- );
- } else {
- return this.props.children;
- }
- }
-}
-
-function ErrorFallback({ error, componentStack, resetErrorBoundary }) {
- return (
-
-
- {"An error occured, please report this on the "}
- GoToSocial issue tracker
- {" or "}
- Matrix support room.
-
Include the details below:
-
-
-
- {error.name}: {error.message}
-
- {componentStack && [
- "\n\nComponent trace:",
- componentStack
- ]}
- {["\n\nError trace: ", error.stack]}
-
-
-
- or refresh the page
-
-
- );
-}
-
-module.exports = {
- Sidebar,
- ViewRouter,
- MenuComponent
-};
\ No newline at end of file
--
cgit v1.2.3