diff --git a/src/lib/ContextMenus.tsx b/src/lib/ContextMenus.tsx index fe99a232..69e41584 100644 --- a/src/lib/ContextMenus.tsx +++ b/src/lib/ContextMenus.tsx @@ -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( - + {locale === "admin" ? ( + "Open in Admin Panel" + ) : ( + + )} {tip &&
{tip}
}
, @@ -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 diff --git a/src/mobx/stores/Experiments.ts b/src/mobx/stores/Experiments.ts index b38ae0b5..1db604b8 100644 --- a/src/mobx/stores/Experiments.ts +++ b/src/mobx/stores/Experiments.ts @@ -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 {