/* * 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 . */ import "./iconStyles.css"; import { getTheme, Theme } from "@utils/discord"; import { classes } from "@utils/misc"; import { i18n } from "@webpack/common"; import type { PropsWithChildren } from "react"; interface BaseIconProps extends IconProps { viewBox: string; } type IconProps = JSX.IntrinsicElements["svg"]; type ImageProps = JSX.IntrinsicElements["img"]; function Icon({ height = 24, width = 24, className, children, viewBox, ...svgProps }: PropsWithChildren) { return ( {children} ); } /** * Discord's link icon, as seen in the Message context menu "Copy Message Link" option */ export function LinkIcon({ height = 24, width = 24, className }: IconProps) { return ( ); } /** * Discord's copy icon, as seen in the user popout right of the username when clicking * your own username in the bottom left user panel */ export function CopyIcon(props: IconProps) { return ( ); } /** * Discord's open external icon, as seen in the user profile connections */ export function OpenExternalIcon(props: IconProps) { return ( ); } export function ImageIcon(props: IconProps) { return ( ); } export function InfoIcon(props: IconProps) { return ( ); } export function OwnerCrownIcon(props: IconProps) { return ( ); } /** * Discord's screenshare icon, as seen in the connection panel */ export function ScreenshareIcon(props: IconProps) { return ( ); } export function ImageVisible(props: IconProps) { return ( ); } export function ImageInvisible(props: IconProps) { return ( ); } export function Microphone(props: IconProps) { return ( ); } export function CogWheel(props: IconProps) { return ( ); } export function ReplyIcon(props: IconProps) { return ( ); } export function DeleteIcon(props: IconProps) { return ( ); } export function PlusIcon(props: IconProps) { return ( ); } export function NoEntrySignIcon(props: IconProps) { return ( ); } export function SafetyIcon(props: IconProps) { return ( ); } export function NotesIcon(props: IconProps) { return ( ); } export function FolderIcon(props: IconProps) { return ( ); } export function LogIcon(props: IconProps) { return ( ); } export function RestartIcon(props: IconProps) { return ( ); } export function PaintbrushIcon(props: IconProps) { return ( ); } const WebsiteIconDark = "/assets/e1e96d89e192de1997f73730db26e94f.svg"; const WebsiteIconLight = "/assets/730f58bcfd5a57a5e22460c445a0c6cf.svg"; const GithubIconLight = "/assets/3ff98ad75ac94fa883af5ed62d17c459.svg"; const GithubIconDark = "/assets/6a853b4c87fce386cbfef4a2efbacb09.svg"; export function GithubIcon(props: ImageProps) { const src = getTheme() === Theme.Light ? GithubIconLight : GithubIconDark; return ; } export function WebsiteIcon(props: ImageProps) { const src = getTheme() === Theme.Light ? WebsiteIconLight : WebsiteIconDark; return ; }