chore: bump bs to lts (#8147)

This commit is contained in:
Saul-Mirone
2024-09-06 10:54:18 +00:00
parent e822bbd2dd
commit 84ebe62edc
12 changed files with 236 additions and 267 deletions

View File

@@ -1,29 +1,11 @@
import {
BlockFlavourIdentifier,
BlockServiceIdentifier,
BlockViewIdentifier,
type ExtensionType,
StdIdentifier,
} from '@blocksuite/block-std';
import { PageEditorBlockSpecs, PageRootService } from '@blocksuite/blocks';
import { BlockViewIdentifier, type ExtensionType } from '@blocksuite/block-std';
import { PageEditorBlockSpecs } from '@blocksuite/blocks';
import { literal } from 'lit/static-html.js';
/**
* Custom PageRootService that does not load fonts
*/
class CustomPageRootService extends PageRootService {
override loadFonts() {}
}
export const CustomPageEditorBlockSpecs: ExtensionType[] = [
...PageEditorBlockSpecs,
{
setup: di => {
di.override(
BlockServiceIdentifier('affine:page'),
CustomPageRootService,
[StdIdentifier, BlockFlavourIdentifier('affine:page')]
);
di.override(
BlockViewIdentifier('affine:page'),
() => literal`affine-page-root`

View File

@@ -4,24 +4,17 @@ import {
} from '@affine/core/blocksuite/presets/ai';
import { mixpanel } from '@affine/core/mixpanel';
import { EditorSettingService } from '@affine/core/modules/editor-settting';
import { AffineCanvasTextFonts } from '@blocksuite/affine-block-surface';
import { ConfigExtension, type ExtensionType } from '@blocksuite/block-std';
import {
BlockFlavourIdentifier,
BlockServiceIdentifier,
ConfigExtension,
type ExtensionType,
StdIdentifier,
} from '@blocksuite/block-std';
import {
type RootService,
type TelemetryEventMap,
TelemetryProvider,
AffineCanvasTextFonts,
EdgelessRootBlockSpec,
FontLoaderService,
PageRootBlockSpec,
} from '@blocksuite/blocks';
import {
EdgelessRootBlockSpec,
EdgelessRootService,
PageRootBlockSpec,
PageRootService,
FontConfigExtension,
type TelemetryEventMap,
TelemetryProvider,
} from '@blocksuite/blocks';
import { type FrameworkProvider } from '@toeverything/infra';
@@ -29,61 +22,52 @@ import { createDatabaseOptionsConfig } from './database-block';
import { createLinkedWidgetConfig } from './widgets/linked';
import { createToolbarMoreMenuConfig } from './widgets/toolbar';
function customLoadFonts(service: RootService): void {
if (runtimeConfig.isSelfHosted) {
const fonts = AffineCanvasTextFonts.map(font => ({
...font,
// self-hosted fonts are served from /assets
url: '/assets/' + new URL(font.url).pathname.split('/').pop(),
}));
service.fontLoader.load(fonts);
} else {
service.fontLoader.load(AffineCanvasTextFonts);
}
function getFontConfigExtension() {
return FontConfigExtension(
runtimeConfig.isSelfHosted
? AffineCanvasTextFonts.map(font => ({
...font,
// self-hosted fonts are served from /assets
url: '/assets/' + new URL(font.url).pathname.split('/').pop(),
}))
: AffineCanvasTextFonts
);
}
// TODO: make load fonts and telemetry service as BS extension
function withAffineRootService(Service: typeof PageRootService) {
return class extends Service {
override loadFonts(): void {
customLoadFonts(this);
}
function getTelemetryExtension(): ExtensionType {
return {
setup: di => {
di.addImpl(TelemetryProvider, () => ({
track: <T extends keyof TelemetryEventMap>(
eventName: T,
props: TelemetryEventMap[T]
) => {
mixpanel.track(eventName as string, props as Record<string, unknown>);
},
}));
},
};
}
function getEditorConfigExtension(framework: FrameworkProvider) {
const editorSettingService = framework.get(EditorSettingService);
return ConfigExtension('affine:page', {
linkedWidget: createLinkedWidgetConfig(framework),
editorSetting: editorSettingService.editorSetting.settingSignal,
toolbarMoreMenu: createToolbarMoreMenuConfig(framework),
databaseOptions: createDatabaseOptionsConfig(framework),
});
}
export function createPageRootBlockSpec(
framework: FrameworkProvider,
enableAI: boolean
): ExtensionType[] {
const editorSettingService = framework.get(EditorSettingService);
return [
...(enableAI ? AIPageRootBlockSpec : PageRootBlockSpec),
{
setup: di => {
di.override(
BlockServiceIdentifier('affine:page'),
withAffineRootService(PageRootService),
[StdIdentifier, BlockFlavourIdentifier('affine:page')]
);
di.addImpl(TelemetryProvider, () => ({
track: <T extends keyof TelemetryEventMap>(
eventName: T,
props: TelemetryEventMap[T]
) => {
mixpanel.track(
eventName as string,
props as Record<string, unknown>
);
},
}));
},
},
ConfigExtension('affine:page', {
linkedWidget: createLinkedWidgetConfig(framework),
editorSetting: editorSettingService.editorSetting.settingSignal,
toolbarMoreMenu: createToolbarMoreMenuConfig(framework),
databaseOptions: createDatabaseOptionsConfig(framework),
}),
FontLoaderService,
getTelemetryExtension(),
getEditorConfigExtension(framework),
];
}
@@ -91,23 +75,11 @@ export function createEdgelessRootBlockSpec(
framework: FrameworkProvider,
enableAI: boolean
): ExtensionType[] {
const editorSettingService = framework.get(EditorSettingService);
return [
...(enableAI ? AIEdgelessRootBlockSpec : EdgelessRootBlockSpec),
{
setup: di => {
di.override(
BlockServiceIdentifier('affine:page'),
withAffineRootService(EdgelessRootService as never),
[StdIdentifier, BlockFlavourIdentifier('affine:page')]
);
},
},
ConfigExtension('affine:page', {
linkedWidget: createLinkedWidgetConfig(framework),
editorSetting: editorSettingService.editorSetting.settingSignal,
toolbarMoreMenu: createToolbarMoreMenuConfig(framework),
databaseOptions: createDatabaseOptionsConfig(framework),
}),
FontLoaderService,
getFontConfigExtension(),
getTelemetryExtension(),
getEditorConfigExtension(framework),
];
}