feat(business): implement block-based content editing and rich text rendering
Introduce a new `BlockEditor` component and upgrade the post/message rendering system to support rich text segments (images, @mentions, votes, and post references). - Implement `BlockEditor` for long-form post creation with image embedding support. - Upgrade `PostContentRenderer` and `SegmentRenderer` to handle complex segment types including inline images and block elements. - Refactor `PostCard` to use segment-based content and image signatures for optimized memoization. - Centralize segment partitioning logic in `segmentUtils.ts` to ensure consistent rendering across chat and post modules. - Update `PostRepository` and `Post` entity to support the new `segments` data structure.
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
|
||||
// ==================== 帖子状态枚举 ====================
|
||||
|
||||
import type { MessageSegment } from '../../types/dto/message';
|
||||
|
||||
export type PostStatus = 'published' | 'draft' | 'deleted';
|
||||
|
||||
// ==================== 值对象 ====================
|
||||
@@ -73,6 +75,8 @@ export interface Post {
|
||||
isFavorited: boolean;
|
||||
/** 是否置顶 (camelCase) */
|
||||
isPinned: boolean;
|
||||
/** 帖子内容段落(图文混排) */
|
||||
segments?: MessageSegment[];
|
||||
/** 帖子状态 */
|
||||
status: PostStatus;
|
||||
/** 所属频道ID */
|
||||
|
||||
Reference in New Issue
Block a user