feat(editor): support file column and member column for database block (#10932)

close: BS-2630, BS-2631, BS-2629, BS-2632, BS-2635
This commit is contained in:
zzj3720
2025-03-18 14:51:45 +00:00
parent 321e3449ec
commit 3939cc1c52
34 changed files with 1796 additions and 77 deletions
@@ -5,13 +5,17 @@ import {
defineBlockSchema,
} from '@blocksuite/store';
import type { Column, SerializedCells, ViewBasicDataType } from './types.js';
import type {
ColumnDataType,
SerializedCells,
ViewBasicDataType,
} from './types.js';
export type DatabaseBlockProps = {
views: ViewBasicDataType[];
title: Text;
cells: SerializedCells;
columns: Array<Column>;
columns: Array<ColumnDataType>;
};
export class DatabaseBlockModel extends BlockModel<DatabaseBlockProps> {}
@@ -1,4 +1,4 @@
export interface Column<
export interface ColumnDataType<
Data extends Record<string, unknown> = Record<string, unknown>,
> {
id: string;
@@ -7,13 +7,15 @@ export interface Column<
data: Data;
}
export type ColumnUpdater<T extends Column = Column> = (data: T) => Partial<T>;
export type Cell<ValueType = unknown> = {
columnId: Column['id'];
export type ColumnUpdater<T extends ColumnDataType = ColumnDataType> = (
data: T
) => Partial<T>;
export type CellDataType<ValueType = unknown> = {
columnId: ColumnDataType['id'];
value: ValueType;
};
export type SerializedCells = Record<string, Record<string, Cell>>;
export type SerializedCells = Record<string, Record<string, CellDataType>>;
export type ViewBasicDataType = {
id: string;
name: string;