@hhgtech/hhg-components
Version:
Hello Health Group common components
60 lines (59 loc) • 2.89 kB
TypeScript
import React, { ComponentProps, PropsWithChildren } from 'react';
import { ImageWrapV2Props } from "../../../atoms";
import { Carousel } from "../../../mantine";
import { CarouselImageItem, CarouselImageItemWrapper, StyledImageCarousel } from "./index.styled";
export interface GeneralInfoData {
id: number;
name: string | React.ReactNode;
altText?: string;
logo?: string;
banner?: string;
description?: string | React.ReactNode;
inject_schedule?: string;
middleContent?: React.ReactNode;
}
export type GeneralInfoProps = {
generalInfo: GeneralInfoData;
backupSrc?: string;
className?: string;
contentClassName?: string;
bannerProps?: Partial<ImageWrapV2Props>;
imagesSelect?: React.ReactNode;
isMobile?: boolean;
imageCarousel?: string[];
carouselSlotProps?: GeneralInfoCarouselSlotProps;
isCarouselParallax?: boolean;
onCarouselImageClick?: (index: number) => void;
};
type StyledImageCarouselProps = Omit<ComponentProps<typeof StyledImageCarousel>, 'children'>;
type CarouselSlideProps = Omit<ComponentProps<typeof Carousel.Slide>, 'children'>;
type CarouselImageItemWrapperProps = Omit<ComponentProps<typeof CarouselImageItemWrapper>, 'children'>;
type CarouselImageItemProps = Omit<ComponentProps<typeof CarouselImageItem>, 'children' | 'src' | 'alt' | 'backupSrc' | 'isMobile'>;
export type GeneralInfoCarouselSlotProps = {
imageCarousel?: Partial<StyledImageCarouselProps>;
slide?: Partial<CarouselSlideProps>;
imageItemWrapper?: Partial<CarouselImageItemWrapperProps>;
imageItem?: Partial<CarouselImageItemProps>;
};
export declare function GeneralInfo({ generalInfo, backupSrc, className, contentClassName, bannerProps, imagesSelect, children, isMobile: isMobileProp, imageCarousel, carouselSlotProps, isCarouselParallax, onCarouselImageClick, }: PropsWithChildren<GeneralInfoProps>): React.JSX.Element;
export declare namespace GeneralInfo {
var Container: import("@emotion/styled").StyledComponent<{
theme?: import("@emotion/react").Theme;
as?: React.ElementType<any>;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
var Image: import("@emotion/styled").StyledComponent<{
alt: string;
backupSrc?: string;
unoptimized?: boolean;
placeholderSrc?: string;
width?: number;
quality?: number;
} & React.ClassAttributes<HTMLImageElement> & React.ImgHTMLAttributes<HTMLImageElement> & {
theme?: import("@emotion/react").Theme;
}, {}, {}>;
var Content: import("@emotion/styled").StyledComponent<{
theme?: import("@emotion/react").Theme;
as?: React.ElementType<any>;
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
}
export default GeneralInfo;