fix(core): wrong fetch injected to snapshot downloader (#9460)

This commit is contained in:
liuyi
2024-12-31 16:51:19 +08:00
committed by GitHub
parent e8aabed3fa
commit 43adb85e7d
5 changed files with 44 additions and 6 deletions

View File

@@ -206,6 +206,7 @@ const Dialog = ({
loading={disabled}
disabled={disabled}
onClick={handleImportToSelectedWorkspace}
data-testid="import-template-to-workspace-btn"
>
{selectedWorkspaceName &&
t['com.affine.import-template.dialog.createDocToWorkspace']({

View File

@@ -16,11 +16,15 @@ export const Component = () => {
const [searchParams] = useSearchParams();
const { jumpToIndex } = useNavigateHelper();
useEffect(() => {
globalDialogService.open('import-template', {
const id = globalDialogService.open('import-template', {
templateName: searchParams.get('name') ?? '',
templateMode: (searchParams.get('mode') as DocMode) ?? 'page',
snapshotUrl: searchParams.get('snapshotUrl') ?? '',
});
return () => {
globalDialogService.close(id);
};
}, [globalDialogService, jumpToIndex, searchParams]);
// no ui for this route, just open the dialog
return null;

View File

@@ -1,6 +1,6 @@
import { type Framework } from '@toeverything/infra';
import { FetchService } from '../cloud';
import { RawFetchProvider } from '../cloud';
import { WorkspacesService } from '../workspace';
import { ImportTemplateDialog } from './entities/dialog';
import { TemplateDownloader } from './entities/downloader';
@@ -16,6 +16,6 @@ export function configureImportTemplateModule(framework: Framework) {
.entity(ImportTemplateDialog)
.service(TemplateDownloaderService)
.entity(TemplateDownloader, [TemplateDownloaderStore])
.store(TemplateDownloaderStore, [FetchService])
.store(TemplateDownloaderStore, [RawFetchProvider])
.service(ImportTemplateService, [WorkspacesService]);
}

View File

@@ -1,14 +1,14 @@
import { Store } from '@toeverything/infra';
import type { FetchService } from '../../cloud';
import type { RawFetchProvider } from '../../cloud';
export class TemplateDownloaderStore extends Store {
constructor(private readonly fetchService: FetchService) {
constructor(private readonly fetchProvider: RawFetchProvider) {
super();
}
async download(snapshotUrl: string) {
const response = await this.fetchService.fetch(snapshotUrl, {
const response = await this.fetchProvider.fetch(snapshotUrl, {
priority: 'high',
} as any);
const arrayBuffer = await response.arrayBuffer();