aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/serverProfile/index.tsx
blob: c27f8cd5368fab3f073abab36cfde5fb7e7533c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Vencord, a Discord client mod
 * Copyright (c) 2023 Vendicated and contributors
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

import { addContextMenuPatch, findGroupChildrenByChildId, NavContextMenuPatchCallback, removeContextMenuPatch } from "@api/ContextMenu";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
import { Menu } from "@webpack/common";
import { Guild } from "discord-types/general";

import { openGuildProfileModal } from "./GuildProfileModal";

const Patch: NavContextMenuPatchCallback = (children, { guild }: { guild: Guild; }) => () => {
    const group = findGroupChildrenByChildId("privacy", children);

    group?.push(
        <Menu.MenuItem
            id="vc-server-profile"
            label="Server Profile"
            action={() => openGuildProfileModal(guild)}
        />
    );
};

export default definePlugin({
    name: "ServerProfile",
    description: "Allows you to view info about a server by right clicking it in the server list",
    authors: [Devs.Ven, Devs.Nuckyz],
    tags: ["guild", "info"],

    start() {
        addContextMenuPatch(["guild-context", "guild-header-popout"], Patch);
    },

    stop() {
        removeContextMenuPatch(["guild-context", "guild-header-popout"], Patch);
    }
});