refactor(editor): extract image block (#9309)

This commit is contained in:
Saul-Mirone
2024-12-25 13:26:29 +00:00
parent ebd97752bf
commit 5274441e14
44 changed files with 350 additions and 204 deletions
@@ -0,0 +1,34 @@
import { ImageSelectionExtension } from '@blocksuite/affine-shared/selection';
import {
BlockViewExtension,
CommandExtension,
type ExtensionType,
FlavourExtension,
WidgetViewMapExtension,
} from '@blocksuite/block-std';
import { literal } from 'lit/static-html.js';
import { ImageBlockAdapterExtensions } from './adapters/extension.js';
import { commands } from './commands/index.js';
import { ImageBlockService, ImageDropOption } from './image-service.js';
export const ImageBlockSpec: ExtensionType[] = [
FlavourExtension('affine:image'),
ImageBlockService,
CommandExtension(commands),
BlockViewExtension('affine:image', model => {
const parent = model.doc.getParent(model.id);
if (parent?.flavour === 'affine:surface') {
return literal`affine-edgeless-image`;
}
return literal`affine-image`;
}),
WidgetViewMapExtension('affine:image', {
imageToolbar: literal`affine-image-toolbar-widget`,
}),
ImageDropOption,
ImageSelectionExtension,
ImageBlockAdapterExtensions,
].flat();