You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
import * as React from 'react';
|
|
import { TextAreaProps } from '.';
|
|
declare enum RESIZE_STATUS {
|
|
NONE = 0,
|
|
RESIZING = 1,
|
|
RESIZED = 2
|
|
}
|
|
export interface AutoSizeType {
|
|
minRows?: number;
|
|
maxRows?: number;
|
|
}
|
|
export interface TextAreaState {
|
|
textareaStyles?: React.CSSProperties;
|
|
/** We need add process style to disable scroll first and then add back to avoid unexpected scrollbar */
|
|
resizeStatus?: RESIZE_STATUS;
|
|
}
|
|
declare class ResizableTextArea extends React.Component<TextAreaProps, TextAreaState> {
|
|
nextFrameActionId: number;
|
|
resizeFrameId: number;
|
|
constructor(props: TextAreaProps);
|
|
textArea: HTMLTextAreaElement;
|
|
saveTextArea: (textArea: HTMLTextAreaElement) => void;
|
|
componentDidMount(): void;
|
|
componentDidUpdate(prevProps: TextAreaProps): void;
|
|
handleResize: (size: {
|
|
width: number;
|
|
height: number;
|
|
}) => void;
|
|
resizeOnNextFrame: () => void;
|
|
resizeTextarea: () => void;
|
|
componentWillUnmount(): void;
|
|
fixFirefoxAutoScroll(): void;
|
|
renderTextArea: () => JSX.Element;
|
|
render(): JSX.Element;
|
|
}
|
|
export default ResizableTextArea;
|