refactor: move useBlockSuiteWorkspaceAvatarUrl (#1802)

This commit is contained in:
Himself65
2023-04-03 17:35:57 -05:00
committed by GitHub
parent 5c46c7d9fc
commit dbcadbaf60
6 changed files with 18 additions and 15 deletions

View File

@@ -1,37 +0,0 @@
import { assertExists } from '@blocksuite/store';
import { useCallback } from 'react';
import useSWR from 'swr';
import { QueryKey } from '../plugins/affine/fetcher';
import type { BlockSuiteWorkspace } from '../shared';
export function useBlockSuiteWorkspaceAvatarUrl(
// todo: remove `null` from type
blockSuiteWorkspace: BlockSuiteWorkspace | null
) {
const { data: avatar, mutate } = useSWR(
blockSuiteWorkspace
? [
QueryKey.getImage,
blockSuiteWorkspace.id,
blockSuiteWorkspace.meta.avatar,
]
: null,
{
fallbackData: null,
}
);
const setAvatar = useCallback(
async (file: File) => {
assertExists(blockSuiteWorkspace);
const blob = new Blob([file], { type: file.type });
const blobs = await blockSuiteWorkspace.blobs;
assertExists(blobs);
const blobId = await blobs.set(blob);
blockSuiteWorkspace.meta.setAvatar(blobId);
await mutate(blobId);
},
[blockSuiteWorkspace, mutate]
);
return [avatar ?? null, setAvatar] as const;
}