@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
64 lines (63 loc) • 2.19 kB
TypeScript
/**
* Web Modal Component
*
*/
import React from 'react';
import { InteractionInvalidation } from '../../shared/component-helper';
import { CloseHandlerParams, ModalContentProps, TriggeredBy } from './types';
import { ContextProps } from '../../shared/Context';
interface ModalContentState {
color: string;
}
declare global {
interface Window {
__modalStack: any[];
}
}
export default class ModalContent extends React.PureComponent<ModalContentProps, ModalContentState> {
state: {
color: any;
};
_contentRef: React.RefObject<HTMLElement>;
_scrollRef: React.RefObject<HTMLElement>;
_overlayClickRef: {
current: null | HTMLElement;
};
_id: string;
_lockTimeout: NodeJS.Timeout;
_focusTimeout: NodeJS.Timeout;
_androidFocusTimeout: NodeJS.Timeout;
_ii: InteractionInvalidation;
_iiLocal: InteractionInvalidation;
_triggeredBy: TriggeredBy;
_triggeredByEvent: React.SyntheticEvent;
_mounted: number;
_lastFocusTime: number;
static contextType: React.Context<ContextProps>;
context: ContextProps;
constructor(props: ModalContentProps);
componentDidUpdate(prevProps: ModalContentProps): void;
componentDidMount(): void;
componentWillUnmount(): void;
wasOpenedManually(): boolean;
lockBody: () => void;
removeLocks(): void;
setAndroidFocusHelper(): void;
removeAndroidFocusHelper(): void;
_androidFocusHelper: () => void;
setFocus(): void;
removeScrollPossibility(): void;
revertScrollPossibility(): void;
preventClick: (event: any) => void;
onCloseClickHandler: (event: React.SyntheticEvent) => void;
onContentMouseDownHandler: (event: React.SyntheticEvent) => void;
onContentClickHandler: (event: React.SyntheticEvent) => void;
onKeyDownHandler: (event: any) => void;
setModalContentState: (event: React.SyntheticEvent, { triggeredBy }: CloseHandlerParams) => void;
closeModalContent(event: any, { triggeredBy, ...params }: CloseHandlerParams & {
ifIsLatest?: boolean;
}): void;
setBackgroundColor: (color: string) => void;
render(): import("react/jsx-runtime").JSX.Element;
}
export {};