Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import { IconProps } from "@phosphor-icons/react";
import { Dispatch, ReactNode, SetStateAction } from "react";
export type TComponent = ({
id,
url,
appId,
children,
}: {
id: string;
url: string;
appId: string;
children: Element | ReactNode;
}) => JSX.Element;
export type TIcon = ({ width, height, stroke }: IconProps) => JSX.Element;
export type TButtonsMap = Array<{
Component: TComponent;
Icon: TIcon;
id: string;
/** Display name — ids can't be capitalized into brand names ("LinkedIn"). */
label?: string;
hidden: boolean;
}>;
// This ensures that if strict is passed as props the other two props become mandatory in vscode
export type PublicUrlShareProps<T extends "large" | "strict" | "styless"> =
T extends "strict"
? {
variant: T;
anchorEl: HTMLElement | null;
setAnchorEl: Dispatch<SetStateAction<HTMLElement | null>>;
handleClose?: never;
}
: T extends "styless"
? {
variant: T;
handleClose?: () => void; // to close the modal when the embed appears
anchorEl?: never;
setAnchorEl?: never;
}
: {
variant: T;
anchorEl?: never;
setAnchorEl?: never;
handleClose?: never;
};
|