@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
44 lines (43 loc) • 1.65 kB
TypeScript
import React, { PureComponent } from 'react';
import type { CellMeasurerCache } from 'react-virtualized/dist/commonjs/CellMeasurer';
import type { QuickInsertItem } from '../provider-factory';
import type { EmptyStateHandler } from '../types';
import type { Category, Modes } from './types';
export interface Props {
/**
* If search field should be focused on the initial load
*/
autoFocusSearch?: boolean;
cache?: CellMeasurerCache;
categories?: Category[];
defaultCategory?: string;
emptyStateHandler?: EmptyStateHandler;
getItems: (query?: string, category?: string) => QuickInsertItem[];
mode: keyof typeof Modes;
onInsertItem: (item: QuickInsertItem) => void;
onSelectItem?: (item: QuickInsertItem) => void;
onViewMore?: () => void;
showCategories: boolean;
showSearch: boolean;
}
export interface State {
categories: Category[];
items: QuickInsertItem[];
searchTerm?: string;
selectedCategory?: string;
}
export default class ElementBrowser extends PureComponent<Props, State> {
static defaultProps: {
defaultCategory: string;
onInsertItem: () => void;
};
state: State;
componentDidMount(): void;
getCategories: (items?: QuickInsertItem[]) => Category[];
filterCategories: (items: QuickInsertItem[], categories?: Category[]) => Category[];
fetchItems: (query?: string, category?: string) => QuickInsertItem[];
componentDidUpdate(prevProps: Props, prevState: State): void;
handleSearch: (searchTerm: string) => void;
handleCategorySelection: (clickedCategory: Category) => void;
render(): React.JSX.Element;
}