From 605f0fd9f3c9b4f252b18019153515c7ad4c7c75 Mon Sep 17 00:00:00 2001 From: Seaswimmer Date: Sun, 30 Jun 2024 14:08:22 -0400 Subject: [PATCH] updated submodules --- src/userplugins/DontLeak | 2 +- .../ColorwayCreatorSettingsModal.tsx | 65 +++ .../components/CreatorModal.tsx | 98 ++--- .../discordColorways/components/InfoModal.tsx | 415 +++++++++--------- .../components/SettingsTabs/SettingsPage.tsx | 15 +- .../components/ThemePreview.tsx | 78 ++-- src/userplugins/discordColorways/css.ts | 151 ++++--- src/userplugins/discordColorways/index.tsx | 46 +- src/userplugins/discordColorways/style.css | 82 +++- src/userplugins/vc-message-logger-enhanced | 2 +- src/userplugins/vc-timezones | 2 +- 11 files changed, 524 insertions(+), 432 deletions(-) create mode 100644 src/userplugins/discordColorways/components/ColorwayCreatorSettingsModal.tsx diff --git a/src/userplugins/DontLeak b/src/userplugins/DontLeak index 2197a189..294e9313 160000 --- a/src/userplugins/DontLeak +++ b/src/userplugins/DontLeak @@ -1 +1 @@ -Subproject commit 2197a18924c6de334aa52da4a69f544436ce8029 +Subproject commit 294e9313b43425221534254069164d6d04cfb93a diff --git a/src/userplugins/discordColorways/components/ColorwayCreatorSettingsModal.tsx b/src/userplugins/discordColorways/components/ColorwayCreatorSettingsModal.tsx new file mode 100644 index 00000000..b1b2f4c2 --- /dev/null +++ b/src/userplugins/discordColorways/components/ColorwayCreatorSettingsModal.tsx @@ -0,0 +1,65 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { ModalContent, ModalFooter, ModalHeader, ModalProps, ModalRoot } from "@utils/modal"; +import { Button, Forms, ScrollerThin, Switch, Text, useState } from "@webpack/common"; + +import { getPreset } from "../css"; + +export default function ({ modalProps, onSettings, presetId, hasTintedText, hasDiscordSaturation }: { modalProps: ModalProps, presetId: string, hasTintedText: boolean, hasDiscordSaturation: boolean, onSettings: ({ presetId, tintedText, discordSaturation }: { presetId: string, tintedText: boolean, discordSaturation: boolean; }) => void; }) { + const [tintedText, setTintedText] = useState(hasTintedText); + const [discordSaturation, setDiscordSaturation] = useState(hasDiscordSaturation); + const [preset, setPreset] = useState(presetId); + return + Creator Settings + +
+ + Presets: + + + {Object.values(getPreset()).map(pre => { + return
{ + setPreset(pre.id); + }}> + + {pre.name} +
; + })} +
+
+ Use colored text + Use Discord's saturation +
+ + + + +
; +} diff --git a/src/userplugins/discordColorways/components/CreatorModal.tsx b/src/userplugins/discordColorways/components/CreatorModal.tsx index 82446edb..26649d73 100644 --- a/src/userplugins/discordColorways/components/CreatorModal.tsx +++ b/src/userplugins/discordColorways/components/CreatorModal.tsx @@ -16,8 +16,6 @@ import { import { Button, Forms, - ScrollerThin, - Switch, Text, TextInput, useEffect, @@ -27,9 +25,10 @@ import { import { ColorPicker } from ".."; import { knownThemeVars } from "../constants"; -import { generateCss, getPreset } from "../css"; +import { generateCss, getPreset, gradientPresetIds, pureGradientBase } from "../css"; import { Colorway } from "../types"; import { colorToHex, getHex, hexToString } from "../utils"; +import ColorwayCreatorSettingsModal from "./ColorwayCreatorSettingsModal"; import ConflictingColorsModal from "./ConflictingColorsModal"; import InputColorwayIdModal from "./InputColorwayIdModal"; import ThemePreviewCategory from "./ThemePreview"; @@ -122,7 +121,7 @@ export default function ({ onChange={setColorwayName} />
- + Colors:
@@ -142,61 +141,38 @@ export default function ({ })}
-
-
setCollapsedSettings(!collapsedSettings)}> - Settings - -
- -
setTintedText(!tintedText)}> - Use colored text - -
-
setDiscordSaturation(!discordSaturation)}> - Use Discord's saturation - -
-
+
openModal((props: ModalProps) => { + setPreset(presetId); + setPresetColorArray(getPreset()[presetId].colors); + setDiscordSaturation(discordSaturation); + setTintedText(tintedText); + }} />)}> + Settings & Presets +
-
-
setCollapsedPresets(!collapsedPresets)}> - Presets - -
- -
{ - setPreset("default"); - setPresetColorArray(["primary", "secondary", "tertiary", "accent"]); - }}> - - Default -
- {Object.values(getPreset()).map(pre => { - return
{ - setPreset(pre.id); - setPresetColorArray(pre.colors); - }}> - - {pre.name} -
; - })} -
-
- + -
-
- - CSS: - - { + const colorwayIDArray = `${colorwayProps.accent},${colorwayProps.primary},${colorwayProps.secondary},${colorwayProps.tertiary}`; + const colorwayID = stringToHex(colorwayIDArray); + Clipboard.copy(colorwayID); + Toasts.show({ + message: "Copied Colorway ID Successfully", + type: 1, + id: "copy-colorway-id-notify", + }); + }} > - {colorwayProps["dc-import"]} - -
- + Copy Colorway ID + + {discrimProps && } + - - - {discrimProps && } - + + {discrimProps ? : - - {discrimProps ? : } - - - - ); + const customColorways = await DataStore.get("customColorways"); + const customColorwaysArray: Colorway[] = []; + colorways.map((color: Colorway, i: number) => { + if (colorways.length > 0) { + if (color.name === colorwayProps.name) { + color.name += " (Custom)"; + color["dc-import"] = generateCss(colorToHex(color.primary) || "313338", colorToHex(color.secondary) || "2b2d31", colorToHex(color.tertiary) || "1e1f22", colorToHex(color.accent) || "5865f2", true, true); + customColorwaysArray.push(color); + } + if (++i === colorways.length) { + DataStore.set("customColorways", [...customColorways, ...customColorwaysArray]); + } + modalProps.onClose(); + loadUIProps(); + } + }); + }} + > + Update + } + + + {colorwayProps["dc-import"]} + + + + +
+ + ; } diff --git a/src/userplugins/discordColorways/components/SettingsTabs/SettingsPage.tsx b/src/userplugins/discordColorways/components/SettingsTabs/SettingsPage.tsx index 73fadadd..d047bdd8 100644 --- a/src/userplugins/discordColorways/components/SettingsTabs/SettingsPage.tsx +++ b/src/userplugins/discordColorways/components/SettingsTabs/SettingsPage.tsx @@ -9,7 +9,7 @@ import { Flex } from "@components/Flex"; import { CopyIcon } from "@components/Icons"; import { Link } from "@components/Link"; import { SettingsTab } from "@components/VencordSettings/shared"; -import { ModalContent, ModalFooter, ModalHeader, ModalRoot, openModal } from "@utils/modal"; +import { ModalFooter, ModalHeader, ModalRoot, openModal } from "@utils/modal"; import { Button, Clipboard, @@ -87,18 +87,17 @@ export default function () { onClick={() => { openModal(props => { var colorwaySource = ""; - return + return Add a source: - - colorwaySource = e} - /> - + colorwaySource = e} + style={{ margin: "8px", width: "calc(100% - 16px)" }} + />