feat(workspace): add hashtag indexing, tag pages and bullet group view
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m0s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m0s
This commit is contained in:
1 parent
c4b2a00348
commit
1310f8102e
8 files changed
+893
-11
No files matched your search
@@ -17,6 +17,8 @@ import {
|
||||
TaskList,
|
||||
Thought,
|
||||
SubTask,
|
||||
TagDetails,
|
||||
TagSummary,
|
||||
User,
|
||||
UserInvite,
|
||||
WSMessage,
|
||||
@@ -388,6 +390,27 @@ export const api = {
|
||||
);
|
||||
},
|
||||
|
||||
// --- WORKSPACE TAGS ---
|
||||
async getWorkspaceTags(): Promise<TagSummary[]> {
|
||||
const res = await request<TagSummary[]>('/api/v1/workspace/tags');
|
||||
return ensureArray(res);
|
||||
},
|
||||
|
||||
async getTagDetails(tag: string): Promise<TagDetails> {
|
||||
const clean = encodeURIComponent(tag.replace(/^#/, ''));
|
||||
const res = await request<TagDetails>(`/api/v1/workspace/tags/${clean}`);
|
||||
return {
|
||||
...res,
|
||||
documents: ensureArray(res.documents).map((doc) => ({
|
||||
...doc,
|
||||
matchedBlocks: ensureArray(doc.matchedBlocks).map((mb) => ({
|
||||
rootBlock: mb.rootBlock,
|
||||
children: ensureArray(mb.children),
|
||||
})),
|
||||
})),
|
||||
};
|
||||
},
|
||||
|
||||
// --- WORKSPACE DOCUMENTS ---
|
||||
async getDocuments(): Promise<Document[]> {
|
||||
const res = await request<Document[]>('/api/v1/documents');
|
||||
|
||||
@@ -170,6 +170,34 @@ export interface Document {
|
||||
sharedWith?: DocShare[];
|
||||
}
|
||||
|
||||
export interface TagSummary {
|
||||
tag: string;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export interface MatchedTagBlock {
|
||||
rootBlock: DocumentBlock;
|
||||
children: DocumentBlock[];
|
||||
}
|
||||
|
||||
export interface TagDocumentGroup {
|
||||
docId: string;
|
||||
title: string;
|
||||
icon: string;
|
||||
folderPath: string;
|
||||
updatedAt: string;
|
||||
isOwner: boolean;
|
||||
permission: 'owner' | 'write' | 'read';
|
||||
ownerName?: string;
|
||||
matchedBlocks: MatchedTagBlock[];
|
||||
}
|
||||
|
||||
export interface TagDetails {
|
||||
tag: string;
|
||||
documents: TagDocumentGroup[];
|
||||
totalMatches: number;
|
||||
}
|
||||
|
||||
export interface SpaceMember {
|
||||
spaceId: string;
|
||||
userId: string;
|
||||
|
||||
Reference in new issue
Block a user