UNPKG

@carbon/react

Version:

React components for the Carbon Design System

76 lines (75 loc) 3.25 kB
/** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import PropTypes from 'prop-types'; import React, { ReactNode } from 'react'; import { ButtonKinds } from '../Button'; export interface ModalWrapperProps { buttonTriggerClassName?: string; buttonTriggerText?: ReactNode; children?: ReactNode; disabled?: boolean; handleOpen?: React.MouseEventHandler<HTMLButtonElement>; handleSubmit?: React.ReactEventHandler<HTMLElement>; id?: string; modalBeforeContent?: boolean; modalHeading?: string; modalLabel?: string; modalText?: string; onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>; passiveModal?: boolean; preventCloseOnClickOutside?: boolean; primaryButtonText?: string; renderTriggerButtonIcon: React.ElementType; secondaryButtonText?: string; selectorPrimaryFocus?: string; shouldCloseAfterSubmit?: boolean; status?: string; triggerButtonIconDescription?: string; triggerButtonKind: (typeof ButtonKinds)[number]; withHeader?: boolean; } interface ModelWrapperState { isOpen: boolean; } export default class ModalWrapper extends React.Component<ModalWrapperProps, ModelWrapperState> { if(isDev: any): void; static propTypes: { buttonTriggerClassName: PropTypes.Requireable<string>; buttonTriggerText: PropTypes.Requireable<PropTypes.ReactNodeLike>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; handleOpen: PropTypes.Requireable<(...args: any[]) => any>; handleSubmit: PropTypes.Requireable<(...args: any[]) => any>; id: PropTypes.Requireable<string>; modalBeforeContent: PropTypes.Requireable<boolean>; modalHeading: PropTypes.Requireable<string>; modalLabel: PropTypes.Requireable<string>; modalText: PropTypes.Requireable<string>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; passiveModal: PropTypes.Requireable<boolean>; preventCloseOnClickOutside: PropTypes.Requireable<boolean>; primaryButtonText: PropTypes.Requireable<string>; renderTriggerButtonIcon: PropTypes.Requireable<object>; secondaryButtonText: PropTypes.Requireable<string>; selectorPrimaryFocus: PropTypes.Requireable<string>; shouldCloseAfterSubmit: PropTypes.Requireable<boolean>; status: PropTypes.Requireable<string>; triggerButtonIconDescription: PropTypes.Requireable<string>; triggerButtonKind: PropTypes.Requireable<"primary" | "secondary" | "danger" | "ghost" | "danger--primary" | "danger--ghost" | "danger--tertiary" | "tertiary">; withHeader: PropTypes.Requireable<boolean>; }; triggerButton: React.RefObject<HTMLButtonElement | null>; modal: React.RefObject<HTMLDivElement | null>; state: { isOpen: boolean; }; handleOpen: () => void; handleClose: (evt: React.KeyboardEvent<HTMLDivElement>) => void; handleOnRequestSubmit: (evt: React.KeyboardEvent<HTMLDivElement>) => void; render(): import("react/jsx-runtime").JSX.Element; } export {};