Files
AFFiNE-Mirror/blocksuite/playground/apps/default/specs-examples/custom-attachment/custom-attachment.ts
2024-12-20 15:38:06 +08:00

51 lines
1.1 KiB
TypeScript

import {
BlockFlavourIdentifier,
BlockServiceIdentifier,
type ExtensionType,
StdIdentifier,
} from '@blocksuite/block-std';
import {
AttachmentBlockService,
EdgelessEditorBlockSpecs,
PageEditorBlockSpecs,
} from '@blocksuite/blocks';
class CustomAttachmentBlockService extends AttachmentBlockService {
override mounted(): void {
super.mounted();
this.maxFileSize = 100 * 1000 * 1000; // 100MB
}
}
export function getCustomAttachmentSpecs() {
const pageModeSpecs: ExtensionType[] = [
...PageEditorBlockSpecs,
{
setup: di => {
di.override(
BlockServiceIdentifier('affine:attachment'),
CustomAttachmentBlockService,
[StdIdentifier, BlockFlavourIdentifier('affine:attachment')]
);
},
},
];
const edgelessModeSpecs: ExtensionType[] = [
...EdgelessEditorBlockSpecs,
{
setup: di => {
di.override(
BlockServiceIdentifier('affine:attachment'),
CustomAttachmentBlockService,
[StdIdentifier, BlockFlavourIdentifier('affine:attachment')]
);
},
},
];
return {
pageModeSpecs,
edgelessModeSpecs,
};
}