From 6d8276aa7be22b91e7b5d4ca18ec272a97c7af88 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Tue, 19 May 2026 23:26:42 -0400 Subject: [PATCH] CollapsibleUI: Drop until rewrite --- src/equicordplugins/collapsibleUi/index.tsx | 146 ------ src/equicordplugins/collapsibleUi/settings.ts | 110 ----- src/equicordplugins/collapsibleUi/style.css | 416 ------------------ 3 files changed, 672 deletions(-) delete mode 100644 src/equicordplugins/collapsibleUi/index.tsx delete mode 100644 src/equicordplugins/collapsibleUi/settings.ts delete mode 100644 src/equicordplugins/collapsibleUi/style.css diff --git a/src/equicordplugins/collapsibleUi/index.tsx b/src/equicordplugins/collapsibleUi/index.tsx deleted file mode 100644 index 375c3ecb0..000000000 --- a/src/equicordplugins/collapsibleUi/index.tsx +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Vencord, a Discord client mod - * Copyright (c) 2026 Vendicated and contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import { ChannelToolbarButton } from "@api/HeaderBar"; -import ErrorBoundary from "@components/ErrorBoundary"; -import { EquicordDevs } from "@utils/constants"; -import { classNameFactory } from "@utils/css"; -import { classes } from "@utils/misc"; -import definePlugin from "@utils/types"; -import { ContextMenuApi, Menu } from "@webpack/common"; -import type { ReactNode, SVGProps } from "react"; - -import { PanelId, panelRegistry, settings, toolbarPanelOrder } from "./settings"; -import managedStyle from "./style.css?managed"; - -const cl = classNameFactory("vc-collapsible-ui-"); - -type StateStore = ReturnType; - -function PanelsIcon(props: SVGProps) { - return ( - - - - ); -} - -function getStateClasses(store: StateStore) { - const classNames = [cl("state"), cl(`collapsed-size-${store.collapsedSize}`), cl(`transition-${store.transitionMs}`)]; - - for (const panelId of toolbarPanelOrder) { - const panel = panelRegistry[panelId]; - if (store[panel.collapsedKey]) classNames.push(cl(`${panel.classId}-collapsed`)); - } - - return classes(...classNames); -} - -function togglePanel(panelId: PanelId) { - const key = panelRegistry[panelId].collapsedKey; - settings.store[key] = !settings.store[key]; -} - -const ToolbarMenu = ErrorBoundary.wrap(({ onClose }: { onClose(): void; }) => { - const store = settings.use(); - - return ( - - {toolbarPanelOrder.map(panelId => { - const panel = panelRegistry[panelId]; - const collapsed = store[panel.collapsedKey]; - - return ( - togglePanel(panelId)} - /> - ); - })} - - ); -}, { noop: true }); - -const ToolbarButtons = ErrorBoundary.wrap(() => { - const store = settings.use(); - const anyCollapsed = toolbarPanelOrder.some(panelId => store[panelRegistry[panelId].collapsedKey]); - - return ( - <> - - ContextMenuApi.openContextMenu(event, () => )} - onContextMenu={event => ContextMenuApi.openContextMenu(event, () => )} - /> - - ); -}, { noop: true }); - -const ChatButtonsRow = ErrorBoundary.wrap(({ buttons }: { buttons: ReactNode[]; }) => { - const { chatButtonsCollapsed } = settings.use(); - - if (buttons.length === 0) return <>{buttons}; - - return ( -
-
- {buttons} -
-
- ); -}, { noop: true }); - -export default definePlugin({ - name: "CollapsibleUI", - description: "Native collapsible channel, member, chat button, and user area surfaces.", - tags: ["Appearance", "Customisation", "Chat", "Servers"], - dependencies: ["HeaderBarAPI", "ChatInputButtonAPI"], - authors: [EquicordDevs.benjii], - searchTerms: ["ui", "sidebar", "layout"], - managedStyle, - settings, - - headerBarButton: { - icon: PanelsIcon, - location: "channeltoolbar", - priority: 25, - render: () => , - }, - - patches: [ - { - find: ".DISPLAY_NAME_STYLES_COACHMARK)", - replacement: { - match: /className:(\i\.\i),(?=style:(\i),children:\[)/, - replace: "className:$self.userAreaControlsClass($1)," - } - }, - ], - - chatBarButtonWrapper: { - wrapper: (buttons: ReactNode) => { - if (!Array.isArray(buttons) || buttons.length === 0) return buttons; - return ; - }, - priority: 0, - }, - - userAreaControlsClass(className: string) { - return classes(className, cl("user-area-controls")); - }, -}); diff --git a/src/equicordplugins/collapsibleUi/settings.ts b/src/equicordplugins/collapsibleUi/settings.ts deleted file mode 100644 index 84be9d54e..000000000 --- a/src/equicordplugins/collapsibleUi/settings.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Vencord, a Discord client mod - * Copyright (c) 2026 Vendicated and contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import { definePluginSettings } from "@api/Settings"; -import { OptionType } from "@utils/types"; - -export const transitionMarkers = [0, 80, 120, 160, 200, 260, 320]; -export const collapsedSizeMarkers = [8, 12, 16, 20, 24, 28, 32, 40, 48]; - -export const panelRegistry = { - guildBar: { - id: "guildBar", - classId: "guild-bar", - label: "Guild Bar", - collapsedKey: "guildBarCollapsed", - }, - channelList: { - id: "channelList", - classId: "channel-list", - label: "Channel List", - collapsedKey: "channelListCollapsed", - }, - membersList: { - id: "membersList", - classId: "members-list", - label: "Members List", - collapsedKey: "membersListCollapsed", - }, - chatButtons: { - id: "chatButtons", - classId: "chat-buttons", - label: "Message Buttons", - collapsedKey: "chatButtonsCollapsed", - }, - titleBar: { - id: "titleBar", - classId: "title-bar", - label: "Title Bar", - collapsedKey: "titleBarCollapsed", - }, - headerBar: { - id: "headerBar", - classId: "header-bar", - label: "Header Bar", - collapsedKey: "headerBarCollapsed", - }, - userArea: { - id: "userArea", - classId: "user-area", - label: "User Area", - collapsedKey: "userAreaCollapsed", - }, -} as const; - -export type PanelId = keyof typeof panelRegistry; - -export const toolbarPanelOrder = ["guildBar", "channelList", "membersList", "chatButtons", "titleBar", "headerBar", "userArea"] as const satisfies readonly PanelId[]; - -export const settings = definePluginSettings({ - collapsedSize: { - type: OptionType.SLIDER, - description: "Collapsed hover area size in pixels.", - default: 12, - markers: collapsedSizeMarkers, - }, - transitionMs: { - type: OptionType.SLIDER, - description: "Panel transition speed in milliseconds.", - default: 160, - markers: transitionMarkers, - }, - guildBarCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the guild bar as collapsed.", - default: false, - }, - channelListCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the channel list as collapsed.", - default: false, - }, - membersListCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the members list as collapsed.", - default: false, - }, - chatButtonsCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the message button row as collapsed.", - default: false, - }, - titleBarCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the title bar as collapsed.", - default: false, - }, - headerBarCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the header bar as collapsed.", - default: false, - }, - userAreaCollapsed: { - type: OptionType.BOOLEAN, - description: "Persist the user area as collapsed.", - default: false, - }, -}); diff --git a/src/equicordplugins/collapsibleUi/style.css b/src/equicordplugins/collapsibleUi/style.css deleted file mode 100644 index c2a0b619f..000000000 --- a/src/equicordplugins/collapsibleUi/style.css +++ /dev/null @@ -1,416 +0,0 @@ -@property --vc-cui-collapsed-size { - syntax: ""; - inherits: true; - initial-value: 12px; -} - -@property --vc-cui-transition { - syntax: "