aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/showConnections
diff options
context:
space:
mode:
authorV <vendicated@riseup.net>2023-05-10 23:13:47 +0200
committerGitHub <noreply@github.com>2023-05-10 23:13:47 +0200
commit195f1a032fc63d4fd35564a9d11f8ed4afbcac4d (patch)
treea8dd4259905a6bcc9ac680045fee00229db89cf5 /src/plugins/showConnections
parentdfda9e7f846476cd0b699519ba8f5c36a4ac3685 (diff)
downloadVencord-195f1a032fc63d4fd35564a9d11f8ed4afbcac4d.tar.gz
Vencord-195f1a032fc63d4fd35564a9d11f8ed4afbcac4d.tar.bz2
Vencord-195f1a032fc63d4fd35564a9d11f8ed4afbcac4d.zip
ShowConnections: Add verified & copy/link icons in tooltip (#1092)
Diffstat (limited to 'src/plugins/showConnections')
-rw-r--r--src/plugins/showConnections/VerifiedIcon.tsx38
-rw-r--r--src/plugins/showConnections/index.tsx24
-rw-r--r--src/plugins/showConnections/styles.css6
3 files changed, 64 insertions, 4 deletions
diff --git a/src/plugins/showConnections/VerifiedIcon.tsx b/src/plugins/showConnections/VerifiedIcon.tsx
new file mode 100644
index 0000000..79e27c4
--- /dev/null
+++ b/src/plugins/showConnections/VerifiedIcon.tsx
@@ -0,0 +1,38 @@
+/*
+ * Vencord, a modification for Discord's desktop app
+ * Copyright (c) 2023 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 { LazyComponent } from "@utils/react";
+import { findByCode, findLazy } from "@webpack";
+import { i18n, useToken } from "@webpack/common";
+
+const ColorMap = findLazy(m => m.colors?.INTERACTIVE_MUTED?.css);
+const VerifiedIconComponent = LazyComponent(() => findByCode(".CONNECTIONS_ROLE_OFFICIAL_ICON_TOOLTIP"));
+
+export function VerifiedIcon() {
+ const color = useToken(ColorMap.colors.INTERACTIVE_MUTED).hex();
+ const forcedIconColor = useToken(ColorMap.colors.INTERACTIVE_ACTIVE).hex();
+
+ return (
+ <VerifiedIconComponent
+ color={color}
+ forcedIconColor={forcedIconColor}
+ size={16}
+ tooltipText={i18n.Messages.CONNECTION_VERIFIED}
+ />
+ );
+}
diff --git a/src/plugins/showConnections/index.tsx b/src/plugins/showConnections/index.tsx
index e2afc5b..50fcfe1 100644
--- a/src/plugins/showConnections/index.tsx
+++ b/src/plugins/showConnections/index.tsx
@@ -20,6 +20,8 @@ import "./styles.css";
import { definePluginSettings } from "@api/Settings";
import ErrorBoundary from "@components/ErrorBoundary";
+import { Flex } from "@components/Flex";
+import { CopyIcon, LinkIcon } from "@components/Icons";
import { Devs } from "@utils/constants";
import { copyWithToast } from "@utils/misc";
import { LazyComponent } from "@utils/react";
@@ -28,6 +30,8 @@ import { findByCode, findByCodeLazy, findByPropsLazy, findStoreLazy } from "@web
import { Text, Tooltip } from "@webpack/common";
import { User } from "discord-types/general";
+import { VerifiedIcon } from "./VerifiedIcon";
+
const Section = LazyComponent(() => findByCode("().lastSection"));
const UserProfileStore = findStoreLazy("UserProfileStore");
const ThemeStore = findStoreLazy("ThemeStore");
@@ -97,7 +101,13 @@ function ConnectionsComponent({ id, theme }: { id: string, theme: string; }) {
>
Connections
</Text>
- {connections.map(connection => <CompactConnectionComponent connection={connection} theme={theme} />)}
+ <Flex style={{
+ marginTop: "8px",
+ gap: getSpacingPx(settings.store.iconSpacing),
+ flexWrap: "wrap"
+ }}>
+ {connections.map(connection => <CompactConnectionComponent connection={connection} theme={theme} />)}
+ </Flex>
</Section>
);
}
@@ -111,17 +121,23 @@ function CompactConnectionComponent({ connection, theme }: { connection: Connect
aria-label={connection.name}
src={theme === "light" ? platform.icon.lightSVG : platform.icon.darkSVG}
style={{
- marginTop: getSpacingPx(settings.store.iconSpacing),
- marginRight: getSpacingPx(settings.store.iconSpacing),
width: settings.store.iconSize,
height: settings.store.iconSize
}}
/>
);
+ const TooltipIcon = url ? LinkIcon : CopyIcon;
+
return (
<Tooltip
- text={`${connection.name}${!connection.verified ? " (unverified)" : ""}`}
+ text={
+ <span className="vc-sc-tooltip">
+ {connection.name}
+ {connection.verified && <VerifiedIcon />}
+ <TooltipIcon height={16} width={16} />
+ </span>
+ }
key={connection.id}
>
{tooltipProps =>
diff --git a/src/plugins/showConnections/styles.css b/src/plugins/showConnections/styles.css
index 71a835b..383593c 100644
--- a/src/plugins/showConnections/styles.css
+++ b/src/plugins/showConnections/styles.css
@@ -3,3 +3,9 @@
display: inline-block;
cursor: pointer;
}
+
+.vc-sc-tooltip {
+ display: inline-flex;
+ gap: 0.25em;
+ align-items: center;
+}