mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-22 04:26:23 +08:00
feat(editor): unify block props api (#10888)
Closes: [BS-2707](https://linear.app/affine-design/issue/BS-2707/统一使用props获取和更新block-prop)
This commit is contained in:
@@ -76,10 +76,10 @@ export class LanguageListButton extends WithDisposable(
|
||||
sortedBundledLanguages.unshift(item);
|
||||
}
|
||||
this.blockComponent.doc.transact(() => {
|
||||
this.blockComponent.model.language$.value = item.name;
|
||||
this.blockComponent.model.props.language$.value = item.name;
|
||||
});
|
||||
},
|
||||
active: item => item.name === this.blockComponent.model.language,
|
||||
active: item => item.name === this.blockComponent.model.props.language,
|
||||
items: this._sortedBundledLanguages,
|
||||
};
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ export const clipboardGroup: MenuItemGroup<CodeBlockToolbarContext> = {
|
||||
{
|
||||
type: 'wrap',
|
||||
generate: ({ blockComponent, close }) => {
|
||||
const wrapped = blockComponent.model.wrap;
|
||||
const wrapped = blockComponent.model.props.wrap;
|
||||
const label = wrapped ? 'Cancel wrap' : 'Wrap';
|
||||
const icon = wrapped ? CancelWrapIcon : WrapIcon;
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
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 keys = model.keys as (keyof (typeof model)['props'])[];
|
||||
const values = keys.map(key => model.props[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(),
|
||||
text: model.props.text.clone(),
|
||||
...duplicateProps,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user