mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-23 01:07:12 +08:00
Close [BS-3148](https://linear.app/affine-design/issue/BS-3148/拖拽到note后,更新card样式) ### What Changes - fix the style of card not updated after draggin it from canvas to note - narrow type of specific card style by using `as const satisfies EmbedCardStyle[]` - add type hint to the `props`, the second parameter of `store.updateBlock` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added middleware to automatically update card styles when dragging blocks into notes. - **Bug Fixes** - Ensured that dragging a bookmark card into a note preserves its style. - **Tests** - Introduced an end-to-end test to verify bookmark card style is retained after drag-and-drop. - **Refactor** - Enhanced type safety and clarity for card style configurations and block properties. - **Chores** - Refined type annotations and assertions across multiple block style constants and toolbar configurations. - Improved generic typing for block update methods to increase type precision. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
24 lines
639 B
TypeScript
24 lines
639 B
TypeScript
import { BlockModel } from '@blocksuite/store';
|
|
|
|
import type { EmbedCardStyle } from '../../../utils/index.js';
|
|
import { defineEmbedModel } from '../../../utils/index.js';
|
|
|
|
export type EmbedLoomBlockUrlData = {
|
|
videoId: string | null;
|
|
image: string | null;
|
|
title: string | null;
|
|
description: string | null;
|
|
};
|
|
|
|
export const EmbedLoomStyles = ['video'] as const satisfies EmbedCardStyle[];
|
|
|
|
export type EmbedLoomBlockProps = {
|
|
style: (typeof EmbedLoomStyles)[number];
|
|
url: string;
|
|
caption: string | null;
|
|
} & EmbedLoomBlockUrlData;
|
|
|
|
export class EmbedLoomModel extends defineEmbedModel<EmbedLoomBlockProps>(
|
|
BlockModel
|
|
) {}
|