UNPKG

@react-crates/modal

Version:

리액트 모달을 쉽게 등록하고 사용가능한 라이브러리입니다.

33 lines (32 loc) 2.2 kB
/// <reference types="react" /> import { ModalManager } from "./services"; import type { DefaultModalPosition, ModalComponentSeedTable, ModalController, ModalManagerOptionsProps, ModalPositionTable } from "./types"; type ExtractPositionType<T extends ModalManagerOptionsProps> = T extends { position?: infer R; } ? R : ModalPositionTable<DefaultModalPosition>; export declare function generateModal<T extends ModalComponentSeedTable<string, Extract<keyof ExtractPositionType<P>, string>>, P extends ModalManagerOptionsProps = ModalManagerOptionsProps<ModalPositionTable<DefaultModalPosition>>>(modalComponentSeedTable?: T, options?: P): { modalManager: ModalManager<ModalPositionTable>; modalCtrl: ModalController<T, ExtractPositionType<P>>; ModalProvider: (props: import("./components/providers/ModalProvider").ModalProviderProps) => JSX.Element; DynamicModal: { ({ children, ...options }: import("./components/utils/DynamicModal").DynamicModalProps<Extract<keyof ExtractPositionType<P>, string>>): JSX.Element; displayName: string; Trigger: { ({ onClick, ...restProps }: import("./components/utils/DynamicModal").DynamicModalTriggerProps): JSX.Element; displayName: string; }; Element: { ({ children }: import("./components/utils/DynamicModal").DynamicModalElementProps): null; displayName: string; }; Action: { ({ onClick, children, confirmType, ...restProps }: import("./components/modal/ModalAction").ModalActionProps): JSX.Element | null; displayName: string; Confirm: import("react").ForwardRefExoticComponent<import("react").ButtonHTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>; Cancel: import("react").ForwardRefExoticComponent<import("react").ButtonHTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>; Custom: import("react").ForwardRefExoticComponent<import("./components/modal/ModalAction").ModalCustomActionProps & import("react").RefAttributes<HTMLButtonElement>>; }; }; useIsOpenModal: () => boolean; }; export {};