From 507b4c0f0615193ff0b4835634421e2fa406c811 Mon Sep 17 00:00:00 2001 From: Cortex <126973723+verysillycat@users.noreply.github.com> Date: Thu, 31 Oct 2024 22:01:11 -0600 Subject: [PATCH] Settings(mainTab): bleh --- src/components/VencordSettings/VencordTab.tsx | 550 ++++++++++-------- 1 file changed, 309 insertions(+), 241 deletions(-) diff --git a/src/components/VencordSettings/VencordTab.tsx b/src/components/VencordSettings/VencordTab.tsx index 8395d375..021030af 100644 --- a/src/components/VencordSettings/VencordTab.tsx +++ b/src/components/VencordSettings/VencordTab.tsx @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . -*/ + */ import "./VencordTab.css"; @@ -28,279 +28,347 @@ import { Margins } from "@utils/margins"; import { identity } from "@utils/misc"; import { relaunch, showItemInFolder } from "@utils/native"; import { useAwaiter } from "@utils/react"; -import { Button, Card, Forms, React, Select, showToast, Switch } from "@webpack/common"; +import { + Button, + Card, + Forms, + React, + Select, + showToast, + Switch, +} from "@webpack/common"; -import { Flex, FolderIcon, GithubIcon, Heart, LogIcon, PaintbrushIcon, RestartIcon } from ".."; +import { + Flex, + FolderIcon, + GithubIcon, + Heart, + LogIcon, + PaintbrushIcon, + RestartIcon, +} from ".."; import { openNotificationSettingsModal } from "./NotificationSettings"; import { QuickAction, QuickActionCard } from "./quickActions"; import { SettingsTab, wrapTab } from "./shared"; const cl = classNameFactory("vc-settings-"); -const DEFAULT_DONATE_IMAGE = "https://cdn.discordapp.com/emojis/1026533090627174460.png"; +const DEFAULT_DONATE_IMAGE = + "https://cdn.discordapp.com/emojis/1026533090627174460.png"; const SHIGGY_DONATE_IMAGE = "https://i.imgur.com/57ATLZu.png"; type KeysOfType = { - [K in keyof Object]: Object[K] extends Type ? K : never; + [K in keyof Object]: Object[K] extends Type ? K : never; }[keyof Object]; - function EquicordSettings() { - const [settingsDir, , settingsDirPending] = useAwaiter(VencordNative.settings.getSettingsDir, { - fallbackValue: "Loading..." - }); - const settings = useSettings(); + const [settingsDir, , settingsDirPending] = useAwaiter( + VencordNative.settings.getSettingsDir, + { + fallbackValue: "Loading...", + }, + ); + const settings = useSettings(); - const discordInvite = "bFp57wxCkv"; - const donateImage = React.useMemo(() => Math.random() > 0.5 ? DEFAULT_DONATE_IMAGE : SHIGGY_DONATE_IMAGE, []); + const discordInvite = "bFp57wxCkv"; + const donateImage = React.useMemo( + () => (Math.random() > 0.5 ? DEFAULT_DONATE_IMAGE : SHIGGY_DONATE_IMAGE), + [], + ); - const isWindows = navigator.platform.toLowerCase().startsWith("win"); - const isMac = navigator.platform.toLowerCase().startsWith("mac"); - const needsVibrancySettings = IS_DISCORD_DESKTOP && isMac; + const isWindows = navigator.platform.toLowerCase().startsWith("win"); + const isMac = navigator.platform.toLowerCase().startsWith("mac"); + const needsVibrancySettings = IS_DISCORD_DESKTOP && isMac; - const Switches: Array; title: string; note: string; - warning: { enabled: boolean; message?: string; }; - }> = - [ - { - key: "useQuickCss", - title: "Enable Custom CSS", - note: "Loads your Custom CSS", - warning: { enabled: false } - }, - !IS_WEB && { - key: "enableReactDevtools", - title: "Enable React Developer Tools", - note: "Requires a full restart", - warning: { enabled: false } - }, - !IS_WEB && (!IS_DISCORD_DESKTOP || !isWindows ? { - key: "frameless", - title: "Disable the window frame", - note: "Requires a full restart", - warning: { enabled: false } - } : { - key: "winNativeTitleBar", - title: "Use Windows' native title bar instead of Discord's custom one", - note: "Requires a full restart", - warning: { enabled: false } - }), - !IS_WEB && { - key: "transparent", - title: "Enable window transparency.", - note: "You need a theme that supports transparency or this will do nothing. Requires a full restart!", - warning: { enabled: true, message: "This will stop the window from being resizable." } - }, - !IS_WEB && isWindows && { - key: "winCtrlQ", - title: "Register Ctrl+Q as shortcut to close Discord (Alternative to Alt+F4)", - note: "Requires a full restart", - warning: { enabled: false } - }, - IS_DISCORD_DESKTOP && { - key: "disableMinSize", - title: "Disable minimum window size", - note: "Requires a full restart", - warning: { enabled: false } - }, - ]; + warning: { enabled: boolean; message?: string }; + } + > = [ + { + key: "useQuickCss", + title: "Enable Custom CSS", + note: "Loads your Custom CSS", + warning: { enabled: false }, + }, + !IS_WEB && { + key: "enableReactDevtools", + title: "Enable React Developer Tools", + note: "Requires a full restart", + warning: { enabled: false }, + }, + !IS_WEB && + (!IS_DISCORD_DESKTOP || !isWindows + ? { + key: "frameless", + title: "Disable the window frame", + note: "Requires a full restart", + warning: { enabled: false }, + } + : { + key: "winNativeTitleBar", + title: + "Use Windows' native title bar instead of Discord's custom one", + note: "Requires a full restart", + warning: { enabled: false }, + }), + !IS_WEB && { + key: "transparent", + title: "Enable window transparency.", + note: "You need a theme that supports transparency or this will do nothing. Requires a full restart!", + warning: { + enabled: true, + message: "This will stop the window from being resizable.", + }, + }, + !IS_WEB && + isWindows && { + key: "winCtrlQ", + title: + "Register Ctrl+Q as shortcut to close Discord (Alternative to Alt+F4)", + note: "Requires a full restart", + warning: { enabled: false }, + }, + IS_DISCORD_DESKTOP && { + key: "disableMinSize", + title: "Disable minimum window size", + note: "Requires a full restart", + warning: { enabled: false }, + }, + ]; - return ( - - - - - - VencordNative.quickCss.openEditor()} - /> - {!IS_WEB && ( - - )} - {!IS_WEB && ( - showItemInFolder(settingsDir)} - /> - )} - VencordNative.native.openExternal("https://github.com/" + gitRemote)} - /> - - + return ( + + + + + + VencordNative.quickCss.openEditor()} + /> + {!IS_WEB && ( + + )} + {!IS_WEB && ( + showItemInFolder(settingsDir)} + /> + )} + + VencordNative.native.openExternal( + "https://github.com/" + gitRemote, + ) + } + /> + + - + - - - Hint: You can change the position of this settings section in the - {" "} openPluginModal(Vencord.Plugins.plugins.Settings)} - > - settings of the Settings plugin - ! - + + + Hint: You can change the position of this settings section in the{" "} + openPluginModal(Vencord.Plugins.plugins.Settings)} + > + settings of the Settings plugin + + ! + - {Switches.map(s => s && ( - settings[s.key] = v} - note={ - s.warning.enabled ? <> - {s.note} - - {s.warning.message} - - > : s.note - } - > - {s.title} - - ))} - + {Switches.map( + (s) => + s && ( + (settings[s.key] = v)} + note={ + s.warning.enabled ? ( + <> + {s.note} + + {s.warning.message} + + > + ) : ( + s.note + ) + } + > + {s.title} + + ), + )} + + {needsVibrancySettings && ( + <> + + Window vibrancy style (requires restart) + + (settings.macosVibrancyStyle = v)} + isSelected={(v) => settings.macosVibrancyStyle === v} + serialize={identity} + /> + > + )} - {needsVibrancySettings && <> - Window vibrancy style (requires restart) - settings.macosVibrancyStyle = v} - isSelected={v => settings.macosVibrancyStyle === v} - serialize={identity} /> - >} - - - - - Notification Settings - - - View Notification Log - - - - - ); + + + + Notification Settings + + + View Notification Log + + + + + ); } interface DiscordInviteProps { - invite: string; - image: string; + invite: string; + image: string; } - function DiscordInviteCard({ invite, image }: DiscordInviteProps) { - return ( - - - Join the discord! - Please consider joining the discord for any news on breaking changes, or new bigger updates! - You can also donate to me if you'd like to support this project. + return ( + + + Join the discord! + + Please consider joining the discord for any news on breaking changes, + or new bigger updates! + + + You can also donate to me if you'd like to support this + project. + - - { - e.preventDefault(); - openInviteModal(invite).catch(() => showToast("Invalid or expired invite")); - }} - > - Join - + + { + e.preventDefault(); + openInviteModal(invite).catch(() => + showToast("Invalid or expired invite"), + ); + }} + > + Join + - { VencordNative.native.openExternal("https://github.com/sponsors/verticalsync"); }} - > - Donate - - - - - - ); + { + VencordNative.native.openExternal( + "https://github.com/sponsors/verticalsync", + ); + }} + > + Donate + + + + + + ); } export default wrapTab(EquicordSettings, "Equicord Settings");