Files
AFFiNE-Mirror/blocksuite/affine/block-code/src/code-toolbar/utils.ts
T
2024-12-27 14:45:11 +00:00

17 lines
536 B
TypeScript

import type { CodeBlockModel } from '@blocksuite/affine-model';
export const duplicateCodeBlock = (model: CodeBlockModel) => {
const keys = model.keys as (keyof typeof model)[];
const values = keys.map(key => model[key]);
const blockProps = Object.fromEntries(keys.map((key, i) => [key, values[i]]));
const { text: _text, ...duplicateProps } = blockProps;
const newProps = {
flavour: model.flavour,
text: model.text.clone(),
...duplicateProps,
};
return model.doc.addSiblingBlocks(model, [newProps])[0];
};