UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

91 lines (90 loc) 2.76 kB
/// <reference types="react" /> export interface TributeComponentParams { domId: string; type: string; organization: string; ppm: string; title: string; wbsComponent: string; workItem: string; } interface RichTextProps { content?: string; getTributeComponent?: any; } export interface RichTextViewerProps extends RichTextProps { onLinkClick?: (url: string) => void; } export interface SecondToolbarProps { disableSendButton: boolean; onCancel: () => void; onSaveClicked: () => void; } interface ToolbarButtonsSection { buttons?: string[]; buttonsVisible?: number; align?: 'left' | 'right'; } export interface ToolbarButtons { moreText?: ToolbarButtonsSection; moreParagraph?: ToolbarButtonsSection; moreRich?: ToolbarButtonsSection; moreMisc?: ToolbarButtonsSection; moreSend?: ToolbarButtonsSection; } export interface RichTextEditorProps extends RichTextProps { onCancel: (content: string) => void; onSave: (content: string) => void; saveButtonTitle?: React.ReactNode; SecondToolbar?: React.FC<SecondToolbarProps>; placeholder?: string; tributes?: Array<any>; toolbarButtons?: 'sm' | 'md' | 'lg' | ToolbarButtons; toolbarPosition?: 'bottom' | 'top'; focusOnOpen?: boolean; editorInitialized?: (initialized?: boolean) => void; } export declare type EditorMode = 'edit' | 'view'; export declare type TitlePosition = 'top' | 'left'; export interface EditableRichTextOptions { canEdit: boolean; editOnClick?: boolean; initialMode?: EditorMode; tributes?: any[]; getTributeComponent?: (params: any) => { Component: JSX.Element; Placeholder: JSX.Element; }; focusOnOpen?: boolean; } export interface UseEditableRichTextProps { actions?: { onSave?: (content: string) => void; setEditorMode?: React.Dispatch<React.SetStateAction<EditorMode>>; }; options?: EditableRichTextOptions; state?: { content?: string; editorMode?: EditorMode; }; title?: React.ReactNode; titlePosition?: TitlePosition; } export interface EditableRichTextProps { editorInitialized?: (initialized?: boolean) => void; actions: { onSave: (content: string) => void; setToEditMode?: () => void; setToViewMode?: () => void; }; options?: EditableRichTextOptions; state: { content: string; editorMode?: EditorMode; }; title?: React.ReactNode; titlePosition?: TitlePosition; toolbarButtons?: RichTextEditorProps['toolbarButtons']; toolbarPosition?: RichTextEditorProps['toolbarPosition']; } export {};