feat: add admin shortcuts for convenience

This commit is contained in:
Paul Makles 2023-08-01 23:09:50 +01:00
parent 9bbc22b091
commit 8c183b530b
No known key found for this signature in database
GPG key ID: 5059F398521BB0F6
2 changed files with 38 additions and 6 deletions

View file

@ -52,6 +52,7 @@ interface ContextMenuData {
type Action =
| { action: "copy_id"; id: string }
| { action: "admin"; id: string; type: "channel" | "message" | "user" }
| { action: "copy_message_link"; message: Message }
| { action: "copy_selection" }
| { action: "copy_text"; content: string }
@ -133,6 +134,12 @@ export default function ContextMenus() {
case "copy_id":
modalController.writeText(data.id);
break;
case "admin":
window.open(
`https://admin.revolt.chat/panel/inspect/${data.type}/${data.id}`,
"_blank",
);
break;
case "copy_message_link":
{
let pathname = `/channel/${data.message.channel_id}/${data.message._id}`;
@ -496,11 +503,15 @@ export default function ContextMenus() {
elements.push(
<MenuItem data={action} disabled={disabled}>
<span style={{ color }}>
<Text
id={`app.context_menu.${
locale ?? action.action
}`}
/>
{locale === "admin" ? (
"Open in Admin Panel"
) : (
<Text
id={`app.context_menu.${
locale ?? action.action
}`}
/>
)}
</span>
{tip && <div className="tip">{tip}</div>}
</MenuItem>,
@ -1107,6 +1118,21 @@ export default function ContextMenus() {
}
if (!hideIDButton) {
if (state.experiments.isEnabled("admin_beta")) {
generateAction(
{
action: "admin",
id,
type: cid
? "channel"
: message
? "message"
: "user",
},
"admin",
);
}
generateAction(
{ action: "copy_id", id },
cid

View file

@ -10,7 +10,7 @@ import Store from "../interfaces/Store";
/**
* Union type of available experiments.
*/
export type Experiment = "dummy" | "offline_users" | "plugins";
export type Experiment = "dummy" | "offline_users" | "plugins" | "admin_beta";
/**
* Currently active experiments.
@ -19,6 +19,7 @@ export const AVAILABLE_EXPERIMENTS: Experiment[] = [
"dummy",
"offline_users",
"plugins",
"admin_beta",
];
/**
@ -41,6 +42,11 @@ export const EXPERIMENTS: {
description:
"This will enable the experimental plugin API. Only touch this if you know what you're doing.",
},
admin_beta: {
title: "Admin Panel Shortcuts",
description:
"Adds context menu entries to quickly jump to Revolt Admin Panel. This is intended for use by the team.",
},
};
export interface Data {