fix(core): fetch share docs on non-cloud workspace (#7144)

This commit is contained in:
EYHN
2024-06-04 09:45:35 +00:00
parent db0837936a
commit f67108c6f7
6 changed files with 30 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ export const useFilteredPageMetas = (
} = {}
) => {
const shareDocsService = useService(ShareDocsService);
const shareDocs = useLiveData(shareDocsService.shareDocs.list$);
const shareDocs = useLiveData(shareDocsService.shareDocs?.list$);
const getPublicMode = useCallback(
(id: string) => {
@@ -33,7 +33,7 @@ export const useFilteredPageMetas = (
useEffect(() => {
// TODO: loading & error UI
shareDocsService.shareDocs.revalidate();
shareDocsService.shareDocs?.revalidate();
}, [shareDocsService]);
const favAdapter = useService(FavoriteItemsAdapter);

View File

@@ -15,11 +15,11 @@ import { usePageHelper } from '../../components/blocksuite/block-suite-page-list
export const useAllPageListConfig = () => {
const currentWorkspace = useService(WorkspaceService).workspace;
const shareDocService = useService(ShareDocsService);
const shareDocs = useLiveData(shareDocService.shareDocs.list$);
const shareDocs = useLiveData(shareDocService.shareDocs?.list$);
useEffect(() => {
// TODO: loading & error UI
shareDocService.shareDocs.revalidate();
shareDocService.shareDocs?.revalidate();
}, [shareDocService]);
const workspace = currentWorkspace.docCollection;

View File

@@ -36,12 +36,12 @@ export class ShareDocsList extends Entity {
revalidate = effect(
switchMap(() =>
fromPromise(signal =>
this.store.getWorkspacesShareDocs(
fromPromise(signal => {
return this.store.getWorkspacesShareDocs(
this.workspaceService.workspace.id,
signal
)
).pipe(
);
}).pipe(
backoffRetry({
when: isNetworkError,
count: Infinity,

View File

@@ -21,7 +21,7 @@ import { ShareDocsStore } from './stores/share-docs';
export function configureShareDocsModule(framework: Framework) {
framework
.scope(WorkspaceScope)
.service(ShareDocsService)
.service(ShareDocsService, [WorkspaceService])
.store(ShareDocsStore, [GraphQLService])
.entity(ShareDocsList, [
WorkspaceService,

View File

@@ -1,7 +1,16 @@
import { WorkspaceFlavour } from '@affine/env/workspace';
import type { WorkspaceService } from '@toeverything/infra';
import { Service } from '@toeverything/infra';
import { ShareDocsList } from '../entities/share-docs-list';
export class ShareDocsService extends Service {
shareDocs = this.framework.createEntity(ShareDocsList);
constructor(private readonly workspaceService: WorkspaceService) {
super();
}
shareDocs =
this.workspaceService.workspace.flavour === WorkspaceFlavour.AFFINE_CLOUD
? this.framework.createEntity(ShareDocsList)
: null;
}

View File

@@ -93,6 +93,12 @@ export interface CreateCopilotPromptInput {
name: Scalars['String']['input'];
}
export interface CreateUserInput {
email: Scalars['String']['input'];
name: InputMaybe<Scalars['String']['input']>;
password: InputMaybe<Scalars['String']['input']>;
}
export interface DeleteSessionInput {
docId: Scalars['String']['input'];
sessionIds: Array<Scalars['String']['input']>;
@@ -122,6 +128,11 @@ export enum InvoiceStatus {
Void = 'Void',
}
export interface ListUserInput {
first: InputMaybe<Scalars['Int']['input']>;
skip: InputMaybe<Scalars['Int']['input']>;
}
export enum OAuthProviderType {
GitHub = 'GitHub',
Google = 'Google',