feat: implement reference versioning functionality across various com… (#10941)

* feat: implement reference versioning functionality across various components and plugins

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* fix: simplify provider function calls and label retrieval in MentionPopup component

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* refactor: improve readability of version selection and reference handling in MentionVersionPopup and reference.ts

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

* feat: add CardReferenceObjectProvider and integrate into card model and resources

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>

---------

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov
2026-07-01 21:40:17 +07:00
committed by GitHub
parent b8da3437ab
commit 65cb5987bf
18 changed files with 328 additions and 33 deletions
+2
View File
@@ -59,6 +59,7 @@ import {
OpenDocumentFunction,
PreviewPresenter,
ReferenceObjectProvider,
ReferenceVersionsProvider,
SpaceHeader,
SpaceName,
SpacePresenter,
@@ -103,6 +104,7 @@ const view = plugin(viewId, {
ObjectTitle: '' as Ref<Mixin<ObjectTitle>>,
ObjectIdentifier: '' as Ref<Mixin<ObjectIdentifier>>,
ReferenceObjectProvider: '' as Ref<Mixin<ReferenceObjectProvider>>,
ReferenceVersionsProvider: '' as Ref<Mixin<ReferenceVersionsProvider>>,
ObjectTooltip: '' as Ref<Mixin<ObjectTooltip>>,
SpaceHeader: '' as Ref<Mixin<SpaceHeader>>,
SpaceName: '' as Ref<Mixin<SpaceName>>,
+17
View File
@@ -308,6 +308,23 @@ export interface ReferenceObjectProvider extends Class<Doc> {
provider: Resource<<T extends Doc>(client: Client, ref: Ref<T>, doc?: T) => Promise<Doc | undefined>>
}
/**
* @public
*/
export interface ReferenceVersion {
id: Ref<Doc>
objectclass: Ref<Class<Doc>>
label: string
fixed?: boolean
}
/**
* @public
*/
export interface ReferenceVersionsProvider extends Class<Doc> {
provider: Resource<<T extends Doc>(client: Client, ref: Ref<T>, doc?: T) => Promise<ReferenceVersion[]>>
}
/**
* @public
*/