Files
AFFiNE-Mirror/blocksuite/affine/blocks/image/src/commands/insert-images.ts
T
Saul-Mirone 1f45cc5dec refactor(editor): unify directories naming (#11516)
**Directory Structure Changes**

- Renamed multiple block-related directories by removing the "block-" prefix:
  - `block-attachment` → `attachment`
  - `block-bookmark` → `bookmark`
  - `block-callout` → `callout`
  - `block-code` → `code`
  - `block-data-view` → `data-view`
  - `block-database` → `database`
  - `block-divider` → `divider`
  - `block-edgeless-text` → `edgeless-text`
  - `block-embed` → `embed`
2025-04-07 12:34:40 +00:00

49 lines
1.3 KiB
TypeScript

import { FileSizeLimitService } from '@blocksuite/affine-shared/services';
import { getImageFilesFromLocal } from '@blocksuite/affine-shared/utils';
import type { Command } from '@blocksuite/std';
import type { BlockModel } from '@blocksuite/store';
import { addSiblingImageBlock } from '../utils.js';
export const insertImagesCommand: Command<
{
selectedModels?: BlockModel[];
removeEmptyLine?: boolean;
place?: 'after' | 'before';
},
{
insertedImageIds: Promise<string[]>;
}
> = (ctx, next) => {
const { selectedModels, place, removeEmptyLine, std } = ctx;
if (!selectedModels) return;
return next({
insertedImageIds: getImageFilesFromLocal().then(imageFiles => {
if (imageFiles.length === 0) return [];
if (selectedModels.length === 0) return [];
const targetModel =
place === 'before'
? selectedModels[0]
: selectedModels[selectedModels.length - 1];
const maxFileSize = std.store.get(FileSizeLimitService).maxFileSize;
const result = addSiblingImageBlock(
std.host,
imageFiles,
maxFileSize,
targetModel,
place
);
if (removeEmptyLine && targetModel.text?.length === 0) {
std.store.deleteBlock(targetModel);
}
return result ?? [];
}),
});
};