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

View file

@ -10,7 +10,7 @@ import Store from "../interfaces/Store";
/** /**
* Union type of available experiments. * Union type of available experiments.
*/ */
export type Experiment = "dummy" | "offline_users" | "plugins"; export type Experiment = "dummy" | "offline_users" | "plugins" | "admin_beta";
/** /**
* Currently active experiments. * Currently active experiments.
@ -19,6 +19,7 @@ export const AVAILABLE_EXPERIMENTS: Experiment[] = [
"dummy", "dummy",
"offline_users", "offline_users",
"plugins", "plugins",
"admin_beta",
]; ];
/** /**
@ -41,6 +42,11 @@ export const EXPERIMENTS: {
description: description:
"This will enable the experimental plugin API. Only touch this if you know what you're doing.", "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 { export interface Data {