aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/shikiCodeblocks/hooks
diff options
context:
space:
mode:
authorV <vendicated@riseup.net>2023-09-19 04:07:24 +0200
committerV <vendicated@riseup.net>2023-09-19 04:11:27 +0200
commit41f5d71e38f785786656e111cf2ea1200e45886d (patch)
tree564a0300485de18a0b8d396118f09c6f756105ed /src/plugins/shikiCodeblocks/hooks
parentefb88a4df8037fc1394a9e2053c49e75d340f401 (diff)
downloadVencord-41f5d71e38f785786656e111cf2ea1200e45886d.tar.gz
Vencord-41f5d71e38f785786656e111cf2ea1200e45886d.tar.bz2
Vencord-41f5d71e38f785786656e111cf2ea1200e45886d.zip
Bundle dependencies with extensions for webstore rule compliance (#1740)
Diffstat (limited to 'src/plugins/shikiCodeblocks/hooks')
-rw-r--r--src/plugins/shikiCodeblocks/hooks/useCopyCooldown.ts34
-rw-r--r--src/plugins/shikiCodeblocks/hooks/useShikiSettings.ts47
-rw-r--r--src/plugins/shikiCodeblocks/hooks/useTheme.ts49
3 files changed, 0 insertions, 130 deletions
diff --git a/src/plugins/shikiCodeblocks/hooks/useCopyCooldown.ts b/src/plugins/shikiCodeblocks/hooks/useCopyCooldown.ts
deleted file mode 100644
index 414500b..0000000
--- a/src/plugins/shikiCodeblocks/hooks/useCopyCooldown.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Vencord, a modification for Discord's desktop app
- * Copyright (c) 2022 Vendicated and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-import { Clipboard, React } from "@webpack/common";
-
-export function useCopyCooldown(cooldown: number) {
- const [copyCooldown, setCopyCooldown] = React.useState(false);
-
- function copy(text: string) {
- Clipboard.copy(text);
- setCopyCooldown(true);
-
- setTimeout(() => {
- setCopyCooldown(false);
- }, cooldown);
- }
-
- return [copyCooldown, copy] as const;
-}
diff --git a/src/plugins/shikiCodeblocks/hooks/useShikiSettings.ts b/src/plugins/shikiCodeblocks/hooks/useShikiSettings.ts
deleted file mode 100644
index 22954ce..0000000
--- a/src/plugins/shikiCodeblocks/hooks/useShikiSettings.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Vencord, a modification for Discord's desktop app
- * Copyright (c) 2022 Vendicated and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-import { PartialExcept } from "@utils/types";
-import { React } from "@webpack/common";
-
-import { shiki } from "../api/shiki";
-import { settings as pluginSettings, ShikiSettings } from "../settings";
-
-export function useShikiSettings<F extends keyof ShikiSettings>(settingKeys: F[], overrides?: Partial<ShikiSettings>) {
- const settings: Partial<ShikiSettings> = pluginSettings.use(settingKeys);
- const [isLoading, setLoading] = React.useState(false);
-
- const withOverrides = { ...settings, ...overrides } as PartialExcept<ShikiSettings, F>;
- const themeUrl = withOverrides.customTheme || withOverrides.theme;
-
- if (overrides) {
- const willChangeTheme = shiki.currentThemeUrl && themeUrl && themeUrl !== shiki.currentThemeUrl;
- const noOverrides = Object.keys(overrides).length === 0;
-
- if (isLoading && (!willChangeTheme || noOverrides)) setLoading(false);
- if (!isLoading && willChangeTheme) {
- setLoading(true);
- shiki.setTheme(themeUrl);
- }
- }
-
- return {
- ...withOverrides,
- isThemeLoading: themeUrl !== shiki.currentThemeUrl,
- };
-}
diff --git a/src/plugins/shikiCodeblocks/hooks/useTheme.ts b/src/plugins/shikiCodeblocks/hooks/useTheme.ts
deleted file mode 100644
index fae5796..0000000
--- a/src/plugins/shikiCodeblocks/hooks/useTheme.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Vencord, a modification for Discord's desktop app
- * Copyright (c) 2022 Vendicated and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-import { React } from "@webpack/common";
-
-type Shiki = typeof import("../api/shiki").shiki;
-interface ThemeState {
- id: Shiki["currentThemeUrl"],
- theme: Shiki["currentTheme"],
-}
-
-const currentTheme: ThemeState = {
- id: null,
- theme: null,
-};
-
-const themeSetters = new Set<React.Dispatch<React.SetStateAction<ThemeState>>>();
-
-export const useTheme = (): ThemeState => {
- const [, setTheme] = React.useState<ThemeState>(currentTheme);
-
- React.useEffect(() => {
- themeSetters.add(setTheme);
- return () => void themeSetters.delete(setTheme);
- }, []);
-
- return currentTheme;
-};
-
-export function dispatchTheme(state: ThemeState) {
- if (currentTheme.id === state.id) return;
- Object.assign(currentTheme, state);
- themeSetters.forEach(setTheme => setTheme(state));
-}