mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-16 01:26:37 +08:00
feat(editor): add grouping support for member property of the database block (#12243)
close: BS-3433 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced advanced group-by configurations for database blocks with user membership support. - Added a React hook for fetching and displaying user information in member-related components. - Enabled dynamic user and membership data types in database properties. - **Improvements** - Replaced context-based service access with a dependency injection system for shared services and state. - Enhanced type safety and consistency across group-by UI components and data handling. - Centralized group data management with a new Group class and refined group trait logic. - **Bug Fixes** - Improved reliability and consistency in retrieving and rendering user and group information. - **Style** - Removed obsolete member selection styles for cleaner UI code. - **Chores** - Registered external group-by configurations via dependency injection. - Refactored internal APIs for data sources, views, and group-by matchers to use service-based patterns. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -57,6 +57,9 @@ type SpacialProperty = {
|
||||
valueGet: (rowId: string, propertyId: string) => unknown;
|
||||
};
|
||||
export class DatabaseBlockDataSource extends DataSourceBase {
|
||||
override get parentProvider() {
|
||||
return this._model.store.provider;
|
||||
}
|
||||
spacialProperties: Record<string, SpacialProperty> = {
|
||||
'created-time': {
|
||||
valueSet: () => {},
|
||||
@@ -186,9 +189,13 @@ export class DatabaseBlockDataSource extends DataSourceBase {
|
||||
);
|
||||
});
|
||||
|
||||
constructor(model: DatabaseBlockModel) {
|
||||
constructor(
|
||||
model: DatabaseBlockModel,
|
||||
init?: (dataSource: DatabaseBlockDataSource) => void
|
||||
) {
|
||||
super();
|
||||
this._model = model;
|
||||
this._model = model; // ensure invariants first
|
||||
init?.(this); // then allow external initialisation
|
||||
}
|
||||
|
||||
private _runCapture() {
|
||||
|
||||
Reference in New Issue
Block a user