gitscope
← marzneshin / v0.5.5 / dashboard/src/features/support-us/index.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/support-us/index.tsx · TypeScript
Blame Raw
 1import { type FC, type HTMLAttributes } from "react";
 2import { SupportUsVariation, SupportUsStructure } from "./types";
 3import { useSupportUs } from "./use-support-us";
 4import { SupportUsCard } from "./card";
 5import { SupportUsPopover } from "./popover";
 6
 7export interface SupportUsProps extends HTMLAttributes<HTMLDivElement> {
 8    donationLink: string;
 9    open?: boolean;
10    variant?: SupportUsVariation;
11    structure?: SupportUsStructure;
12}
13
14export const SupportUs: FC<SupportUsProps> = ({ open = true, variant = "status", className, structure = "card", donationLink }) => {
15    const [supportUsOpen, setSupportUsOpen] = useSupportUs(variant, open);
16
17    if (!supportUsOpen) return null;
18    return structure === "popover" ? (
19        <SupportUsPopover
20            className={className}
21            donationLink={donationLink}
22        />
23    ) : (
24        <SupportUsCard
25            variant={variant}
26            className={className}
27            donationLink={donationLink}
28            setSupportUsOpen={setSupportUsOpen}
29        />
30    );
31};