/* * Vencord, a Discord client mod * Copyright (c) 2025 Vendicated and contributors * SPDX-License-Identifier: GPL-3.0-or-later */ import "./UIElements.css"; import { ChatBarButtonMap } from "@api/ChatButtons"; import { MessagePopoverButtonMap } from "@api/MessagePopover"; import { SettingsPluginUiElements, useSettings } from "@api/Settings"; import { classNameFactory } from "@api/Styles"; import { BaseText } from "@components/BaseText"; import { Card } from "@components/Card"; import { PlaceholderIcon } from "@components/Icons"; import { Paragraph } from "@components/Paragraph"; import { Switch } from "@components/Switch"; import { Margins } from "@utils/margins"; import { classes } from "@utils/misc"; import { ModalContent, ModalProps, ModalRoot, ModalSize, openModal } from "@utils/modal"; import { IconComponent } from "@utils/types"; import { Clickable } from "@webpack/common"; const cl = classNameFactory("vc-plugin-ui-elements-"); export function UIElementsButton() { return ( openModal(modalProps => )}> Manage plugin UI elements Allows you to hide buttons you don't like ); } function Section(props: { title: string; description: string; settings: SettingsPluginUiElements; buttonMap: Map; }) { const { buttonMap, description, title, settings } = props; return ( {title} {description} {Array.from(buttonMap, ([name, { icon }]) => { const Icon = icon ?? PlaceholderIcon; return ( {name} { settings[name] ??= {} as any; settings[name].enabled = v; }} /> ); })} ); } function UIElementsModal(props: ModalProps) { const { uiElements } = useSettings(["uiElements.*"]); return ( ); }