Equicord/src/plugins/_api/badges/modals.tsx
2026-03-04 12:03:22 -05:00

168 lines
6.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Vencord, a Discord client mod
* Copyright (c) 2025 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import ErrorBoundary from "@components/ErrorBoundary";
import { Flex } from "@components/Flex";
import { HeadingPrimary } from "@components/Heading";
import { Heart } from "@components/Heart";
import { Paragraph } from "@components/Paragraph";
import { DonateButton, TranslateButton } from "@components/settings";
import { Margins } from "@utils/margins";
import { closeModal, ModalContent, ModalFooter, ModalHeader, ModalRoot, openModal } from "@utils/modal";
export function VencordDonorModal() {
const modalKey = openModal(props => (
<ErrorBoundary noop onError={() => {
closeModal(modalKey);
VencordNative.native.openExternal("https://github.com/sponsors/Vendicated");
}}>
<ModalRoot {...props}>
<ModalHeader>
<HeadingPrimary
style={{
width: "100%",
textAlign: "center",
margin: 0
}}
>
<Flex justifyContent="center" alignItems="center" gap="0.5em">
<Heart />
Vencord Donor
</Flex>
</HeadingPrimary>
</ModalHeader>
<ModalContent>
<Flex>
<img
role="presentation"
src="https://cdn.discordapp.com/emojis/1026533070955872337.png"
alt=""
style={{ margin: "auto" }}
/>
<img
role="presentation"
src="https://cdn.discordapp.com/emojis/1026533090627174460.png"
alt=""
style={{ margin: "auto" }}
/>
</Flex>
<div style={{ padding: "1em" }}>
<Paragraph>
This Badge is a special perk for Vencord Donors
</Paragraph>
<Paragraph className={Margins.top20}>
Please consider supporting the development of Vencord by becoming a donor. It would mean a lot!!
</Paragraph>
</div>
</ModalContent>
<ModalFooter>
<Flex justifyContent="center" style={{ width: "100%" }}>
<DonateButton />
</Flex>
</ModalFooter>
</ModalRoot>
</ErrorBoundary>
));
}
export function EquicordDonorModal() {
const modalKey = openModal(props => (
<ErrorBoundary noop onError={() => {
closeModal(modalKey);
VencordNative.native.openExternal("https://github.com/sponsors/thororen1234");
}}>
<ModalRoot {...props}>
<ModalHeader>
<HeadingPrimary
style={{
width: "100%",
textAlign: "center",
margin: 0
}}
>
<Flex justifyContent="center" alignItems="center" gap="0.5em">
<Heart />
Equicord Donor
</Flex>
</HeadingPrimary>
</ModalHeader>
<ModalContent>
<Flex>
<img
role="presentation"
src="https://cdn.discordapp.com/emojis/1026533070955872337.png"
alt=""
style={{ margin: "auto" }}
/>
<img
role="presentation"
src="https://cdn.discordapp.com/emojis/1026533090627174460.png"
alt=""
style={{ margin: "auto" }}
/>
</Flex>
<div style={{ padding: "1em" }}>
<Paragraph>
This Badge is a special perk for Equicord (Not Vencord) Donors
</Paragraph>
<Paragraph className={Margins.top20}>
Please consider supporting the development of Equicord by becoming a donor. It would mean a lot! :3
</Paragraph>
</div>
</ModalContent>
<ModalFooter>
<Flex justifyContent="center" style={{ width: "100%" }}>
<DonateButton equicord={true} />
</Flex>
</ModalFooter>
</ModalRoot>
</ErrorBoundary>
));
}
export function EquicordTranslatorModal() {
const modalKey = openModal(props => (
<ErrorBoundary noop onError={() => {
closeModal(modalKey);
}}>
<ModalRoot {...props}>
<ModalHeader>
<HeadingPrimary
style={{
width: "100%",
textAlign: "center",
margin: 0
}}
>
<Flex justifyContent="center" alignItems="center" gap="0.5em">
Equicord Translator
</Flex>
</HeadingPrimary>
</ModalHeader>
<ModalContent>
<Flex>
<img
className="vc-translate-modal-icon"
role="presentation"
src="https://badge.equicord.org/translator.png"
alt=""
/>
</Flex>
<div className="vc-translate-modal-paragraph">
<Paragraph>
Awarded to contributors who expand Equicord’s language support by translating content for the community.
</Paragraph>
</div>
</ModalContent>
<ModalFooter>
<Flex justifyContent="center" style={{ width: "100%" }}>
<TranslateButton />
</Flex>
</ModalFooter>
</ModalRoot>
</ErrorBoundary>
));
}