@atlaskit/editor-plugin-status
Version:
Status plugin for @atlaskit/editor-core
53 lines (52 loc) • 2.19 kB
TypeScript
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
import type { NextEditorPlugin, OptionalPlugin, Command } from '@atlaskit/editor-common/types';
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
import type { BlockControlsPlugin } from '@atlaskit/editor-plugin-block-controls/blockControlsPluginType';
import type { BlockMenuPlugin } from '@atlaskit/editor-plugin-block-menu/blockMenuPluginType';
import type { SelectionPlugin } from '@atlaskit/editor-plugin-selection';
import type { UiControlRegistryPlugin } from '@atlaskit/editor-plugin-ui-control-registry/ui-control-registry-plugin-type';
import type { commitStatusPicker, insertStatus, removeStatus, UpdateStatus } from './pm-plugins/actions';
import type { StatusPluginOptions, StatusState } from './types';
type DummyAnnotationPlugin = NextEditorPlugin<'annotation', {
actions: {
setInlineCommentDraftState: (isDraft: boolean, inputMethod: INPUT_METHOD) => Command;
};
sharedState: {
annotations: Record<string, boolean>;
bookmark: boolean;
isVisible: boolean;
mouseData: {
isSelecting: boolean;
};
};
}>;
type DummyEditorViewModePlugin = NextEditorPlugin<'editorViewMode', {
sharedState: {
mode: 'view' | 'edit';
};
}>;
export type StatusPluginDependencies = [
OptionalPlugin<AnalyticsPlugin>,
OptionalPlugin<DummyAnnotationPlugin>,
OptionalPlugin<DummyEditorViewModePlugin>,
OptionalPlugin<UiControlRegistryPlugin>,
OptionalPlugin<BlockMenuPlugin>,
OptionalPlugin<BlockControlsPlugin>,
OptionalPlugin<SelectionPlugin>
];
export type StatusPluginActions = {
commitStatusPicker: typeof commitStatusPicker;
updateStatus: UpdateStatus;
};
export type StatusPluginCommands = {
insertStatus: ReturnType<typeof insertStatus>;
removeStatus: typeof removeStatus;
};
export type StatusPlugin = NextEditorPlugin<'status', {
actions: StatusPluginActions;
commands: StatusPluginCommands;
dependencies: StatusPluginDependencies;
pluginConfiguration: StatusPluginOptions | undefined;
sharedState: StatusState | undefined;
}>;
export {};