feat(core): temporary expansion files are limited to 100M (#4833)

This commit is contained in:
JimmFly
2023-11-06 14:38:46 +08:00
committed by GitHub
parent e7106b7393
commit 9664d142ad
7 changed files with 222 additions and 19 deletions

View File

@@ -13,6 +13,7 @@ import {
blockSuiteEditorHeaderStyle,
blockSuiteEditorStyle,
} from './index.css';
import { getPresets } from './preset';
export type EditorProps = {
page: Page;
@@ -59,19 +60,23 @@ const BlockSuiteEditorImpl = (props: EditorProps): ReactElement => {
editor.page = page;
}
const presets = getPresets();
editor.pagePreset = presets.pageModePreset;
editor.edgelessPreset = presets.edgelessModePreset;
useEffect(() => {
const disposes = [] as ((() => void) | undefined)[];
if (editor) {
const dipose = editor.slots.pageModeSwitched.on(mode => {
const dispose = editor.slots.pageModeSwitched.on(mode => {
onModeChange?.(mode);
});
disposes.push(() => dipose.dispose());
}
disposes.push(() => dispose?.dispose());
if (editor.page && onLoad) {
disposes.push(onLoad?.(page, editor));
if (editor.page && onLoad) {
disposes.push(onLoad?.(page, editor));
}
}
return () => {

View File

@@ -0,0 +1,44 @@
import {
AttachmentService,
EdgelessPreset,
PagePreset,
} from '@blocksuite/blocks';
import bytes from 'bytes';
class CustomAttachmentService extends AttachmentService {
override mounted(): void {
//TODO: get user type from store
const userType = 'pro';
if (userType === 'pro') {
this.maxFileSize = bytes.parse('100MB');
} else {
this.maxFileSize = bytes.parse('10MB');
}
}
}
export function getPresets() {
const pageModePreset = PagePreset.map(preset => {
if (preset.schema.model.flavour === 'affine:attachment') {
return {
...preset,
service: CustomAttachmentService,
};
}
return preset;
});
const edgelessModePreset = EdgelessPreset.map(preset => {
if (preset.schema.model.flavour === 'affine:attachment') {
return {
...preset,
service: CustomAttachmentService,
};
}
return preset;
});
return {
pageModePreset,
edgelessModePreset,
};
}