mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature/frontend] Add debug sections to settings panel (#2950)
* [feature/frontend] Add debug sections to settings panel * max-width * swagger
This commit is contained in:
@@ -21,6 +21,7 @@ import { createContext, useContext } from "react";
|
||||
const RoleContext = createContext<string[]>([]);
|
||||
const BaseUrlContext = createContext<string>("");
|
||||
const MenuLevelContext = createContext<number>(0);
|
||||
const InstanceDebugContext = createContext<boolean>(false);
|
||||
|
||||
function urlSafe(str: string) {
|
||||
return str.toLowerCase().replace(/[\s/]+/g, "-");
|
||||
@@ -67,6 +68,10 @@ function useMenuLevel() {
|
||||
return useContext(MenuLevelContext);
|
||||
}
|
||||
|
||||
function useInstanceDebug() {
|
||||
return useContext(InstanceDebugContext);
|
||||
}
|
||||
|
||||
export {
|
||||
urlSafe,
|
||||
RoleContext,
|
||||
@@ -76,4 +81,6 @@ export {
|
||||
useBaseUrl,
|
||||
MenuLevelContext,
|
||||
useMenuLevel,
|
||||
InstanceDebugContext,
|
||||
useInstanceDebug,
|
||||
};
|
||||
|
59
web/source/settings/lib/query/admin/debug/index.ts
Normal file
59
web/source/settings/lib/query/admin/debug/index.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { ApURLResponse } from "../../../types/debug";
|
||||
import { gtsApi } from "../../gts-api";
|
||||
|
||||
const extended = gtsApi.injectEndpoints({
|
||||
endpoints: (build) => ({
|
||||
ApURL: build.query<ApURLResponse, string>({
|
||||
query: (url) => {
|
||||
// Get the url in a SearchParam
|
||||
// so we can escape it.
|
||||
const urlParam = new URLSearchParams();
|
||||
urlParam.set("url", url);
|
||||
|
||||
return {
|
||||
url: `/api/v1/admin/debug/apurl?${urlParam.toString()}`,
|
||||
};
|
||||
}
|
||||
}),
|
||||
ClearCaches: build.mutation<{}, void>({
|
||||
query: () => ({
|
||||
method: "POST",
|
||||
url: `/api/v1/admin/debug/caches/clear`
|
||||
})
|
||||
}),
|
||||
}),
|
||||
});
|
||||
|
||||
/**
|
||||
* Lazy GET to /api/v1/admin/debug/apurl.
|
||||
*/
|
||||
const useLazyApURLQuery = extended.useLazyApURLQuery;
|
||||
|
||||
/**
|
||||
* POST to /api/v1/admin/debug/caches/clear to empty in-memory caches.
|
||||
*/
|
||||
const useClearCachesMutation = extended.useClearCachesMutation;
|
||||
|
||||
export {
|
||||
useLazyApURLQuery,
|
||||
useClearCachesMutation,
|
||||
};
|
26
web/source/settings/lib/types/debug.ts
Normal file
26
web/source/settings/lib/types/debug.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export interface ApURLResponse {
|
||||
request_url: string;
|
||||
request_headers: string;
|
||||
response_headers: string;
|
||||
response_code: number;
|
||||
response_body: string;
|
||||
}
|
@@ -27,6 +27,7 @@ export interface InstanceV1 {
|
||||
short_description_text?: string;
|
||||
email: string;
|
||||
version: string;
|
||||
debug?: boolean;
|
||||
languages: any[]; // TODO: define this
|
||||
registrations: boolean;
|
||||
approval_required: boolean;
|
||||
|
Reference in New Issue
Block a user