mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-26 10:45:57 +08:00
#### PR Dependency Tree * **PR #12995** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced a new clipboard module, making clipboard-related functionality available for external use. * Added a comprehensive extension system for the comment editor, supporting rich text features, widgets, and configurable options. * **Bug Fixes** * Improved stability by ensuring comment highlighting features and toolbar event subscriptions handle missing dependencies gracefully, preventing potential runtime errors. * **Refactor** * Simplified comment editor view manager setup for easier configuration and maintenance. * **Chores** * Updated package exports to expose new clipboard modules and configurations. * Removed confirm modal and portal-related logic from the comment editor component. * Adjusted temporary store creation to omit adding an extra surface block under the root page. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
66 lines
1.5 KiB
TypeScript
66 lines
1.5 KiB
TypeScript
import {
|
|
AttachmentAdapter,
|
|
ClipboardAdapter,
|
|
HtmlAdapter,
|
|
ImageAdapter,
|
|
MixTextAdapter,
|
|
NotionTextAdapter,
|
|
} from '@blocksuite/affine-shared/adapters';
|
|
import { ClipboardAdapterConfigExtension } from '@blocksuite/std';
|
|
import type { ExtensionType } from '@blocksuite/store';
|
|
|
|
const SnapshotClipboardConfig = ClipboardAdapterConfigExtension({
|
|
mimeType: ClipboardAdapter.MIME,
|
|
adapter: ClipboardAdapter,
|
|
priority: 100,
|
|
});
|
|
|
|
const NotionClipboardConfig = ClipboardAdapterConfigExtension({
|
|
mimeType: 'text/_notion-text-production',
|
|
adapter: NotionTextAdapter,
|
|
priority: 95,
|
|
});
|
|
|
|
const HtmlClipboardConfig = ClipboardAdapterConfigExtension({
|
|
mimeType: 'text/html',
|
|
adapter: HtmlAdapter,
|
|
priority: 90,
|
|
});
|
|
|
|
const imageClipboardConfigs = [
|
|
'image/apng',
|
|
'image/avif',
|
|
'image/gif',
|
|
'image/jpeg',
|
|
'image/png',
|
|
'image/svg+xml',
|
|
'image/webp',
|
|
].map(mimeType => {
|
|
return ClipboardAdapterConfigExtension({
|
|
mimeType,
|
|
adapter: ImageAdapter,
|
|
priority: 80,
|
|
});
|
|
});
|
|
|
|
export const PlainTextClipboardConfig = ClipboardAdapterConfigExtension({
|
|
mimeType: 'text/plain',
|
|
adapter: MixTextAdapter,
|
|
priority: 70,
|
|
});
|
|
|
|
const AttachmentClipboardConfig = ClipboardAdapterConfigExtension({
|
|
mimeType: '*/*',
|
|
adapter: AttachmentAdapter,
|
|
priority: 60,
|
|
});
|
|
|
|
export const clipboardConfigs: ExtensionType[] = [
|
|
SnapshotClipboardConfig,
|
|
NotionClipboardConfig,
|
|
HtmlClipboardConfig,
|
|
...imageClipboardConfigs,
|
|
PlainTextClipboardConfig,
|
|
AttachmentClipboardConfig,
|
|
];
|