refactor(editor): remove database-service (#9769)

close: BS-2426
This commit is contained in:
zzj3720
2025-01-18 05:36:15 +00:00
parent ad814a0f4f
commit 95c0f59d96
30 changed files with 448 additions and 427 deletions
+35 -58
View File
@@ -526,17 +526,10 @@ export async function initEmptyDatabaseState(page: Page, rootId?: string) {
noteId
);
const model = doc.getBlockById(databaseId) as DatabaseBlockModel;
await new Promise(resolve => setTimeout(resolve, 100));
const databaseBlock = document.querySelector('affine-database');
const databaseService = databaseBlock?.service;
if (databaseService) {
databaseService.databaseViewInitEmpty(
model,
databaseService.viewPresets.tableViewMeta.type
);
databaseService.applyColumnUpdate(model);
}
const datasource = new window.$blocksuite.blocks.DatabaseBlockDataSource(
model
);
datasource.viewManager.viewAdd('table');
doc.captureSync();
return { rootId, noteId, databaseId };
}, rootId);
@@ -570,43 +563,34 @@ export async function initKanbanViewState(
noteId
);
const model = doc.getBlockById(databaseId) as DatabaseBlockModel;
await new Promise(resolve => setTimeout(resolve, 100));
const databaseBlock = document.querySelector('affine-database');
const databaseService = databaseBlock?.service;
if (databaseService) {
const rowIds = config.rows.map(rowText => {
const rowId = doc.addBlock(
'affine:paragraph',
{ type: 'text', text: new window.$blocksuite.store.Text(rowText) },
databaseId
);
return rowId;
});
config.columns.forEach(column => {
const columnId = databaseService.addColumn(model, 'end', {
data: {},
name: column.type,
type: column.type,
});
rowIds.forEach((rowId, index) => {
const value = column.value?.[index];
if (value !== undefined) {
databaseService.updateCell(model, rowId, {
columnId,
value:
column.type === 'rich-text'
? new window.$blocksuite.store.Text(value as string)
: value,
});
}
});
});
databaseService.databaseViewInitEmpty(
model,
databaseService.viewPresets.kanbanViewMeta.type
const datasource = new window.$blocksuite.blocks.DatabaseBlockDataSource(
model
);
const rowIds = config.rows.map(rowText => {
const rowId = doc.addBlock(
'affine:paragraph',
{ type: 'text', text: new window.$blocksuite.store.Text(rowText) },
databaseId
);
databaseService.applyColumnUpdate(model);
}
return rowId;
});
config.columns.forEach(column => {
const columnId = datasource.propertyAdd('end', column.type);
datasource.propertyNameSet(columnId, column.type);
rowIds.forEach((rowId, index) => {
const value = column.value?.[index];
if (value !== undefined) {
datasource.cellValueChange(
rowId,
columnId,
column.type === 'rich-text'
? new window.$blocksuite.store.Text(value as string)
: value
);
}
});
});
datasource.viewManager.viewAdd('kanban');
doc.captureSync();
return { rootId, noteId, databaseId };
},
@@ -636,18 +620,11 @@ export async function initEmptyDatabaseWithParagraphState(
noteId
);
const model = doc.getBlockById(databaseId) as DatabaseBlockModel;
await new Promise(resolve => setTimeout(resolve, 100));
const databaseBlock = document.querySelector('affine-database');
const databaseService = databaseBlock?.service;
if (databaseService) {
databaseService.databaseViewInitEmpty(
model,
databaseService.viewPresets.tableViewMeta.type
);
databaseService.applyColumnUpdate(model);
}
const datasource = new window.$blocksuite.blocks.DatabaseBlockDataSource(
model
);
datasource.viewManager.viewAdd('table');
doc.addBlock('affine:paragraph', {}, noteId);
doc.captureSync();
return { rootId, noteId, databaseId };
}, rootId);
@@ -19,26 +19,26 @@ declare global {
* the following instance are initialized in `packages/playground/apps/starter/main.ts`
*/
$blocksuite: {
store: typeof import('../../packages/framework/store/src/index.js');
blocks: typeof import('../../packages/blocks/src/index.js');
store: typeof import('../../framework/store/src/index.js');
blocks: typeof import('../../blocks/src/index.js');
global: {
utils: typeof import('../../packages/framework/global/src/utils.js');
utils: typeof import('../../framework/global/src/utils.js');
};
editor: typeof import('../../packages/presets/src/index.js');
editor: typeof import('../../presets/src/index.js');
identifiers: {
WidgetViewMapIdentifier: typeof WidgetViewMapIdentifier;
QuickSearchProvider: typeof import('../../packages/affine/shared/src/services/quick-search-service.js').QuickSearchProvider;
DocModeProvider: typeof import('../../packages/affine/shared/src/services/doc-mode-service.js').DocModeProvider;
ThemeProvider: typeof import('../../packages/affine/shared/src/services/theme-service.js').ThemeProvider;
QuickSearchProvider: typeof import('../../affine/shared/src/services/quick-search-service.js').QuickSearchProvider;
DocModeProvider: typeof import('../../affine/shared/src/services/doc-mode-service.js').DocModeProvider;
ThemeProvider: typeof import('../../affine/shared/src/services/theme-service.js').ThemeProvider;
RefNodeSlotsProvider: typeof RefNodeSlotsProvider;
ParseDocUrlService: typeof import('../../packages/affine/shared/src/services/parse-url-service.js').ParseDocUrlProvider;
ParseDocUrlService: typeof import('../../affine/shared/src/services/parse-url-service.js').ParseDocUrlProvider;
};
defaultExtensions: () => ExtensionType[];
extensions: {
WidgetViewMapExtension: typeof import('../../packages/framework/block-std/src/extension/widget-view-map.js').WidgetViewMapExtension;
WidgetViewMapExtension: typeof import('../../framework/block-std/src/extension/widget-view-map.js').WidgetViewMapExtension;
};
mockServices: {
mockDocModeService: typeof import('../../packages/playground/apps/_common/mock-services.js').mockDocModeService;
mockDocModeService: typeof import('../../playground/apps/_common/mock-services.js').mockDocModeService;
};
};
collection: Workspace;