@nodeject/ui-components
Version:
UI library for non-trivial components
91 lines (90 loc) • 2.76 kB
TypeScript
/// <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 {};