From 4e2aff8395377d9a884165d58fde527640847bab Mon Sep 17 00:00:00 2001 From: zw Date: Tue, 14 May 2024 15:26:27 +0800 Subject: [PATCH] feat: fix cf render error on printing mode fix: #700 --- .../src/controllers/cf.render.controller.ts | 27 ++----------------- .../src/render/data-bar.render.ts | 4 ++- .../src/render/icon.render.ts | 4 ++- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts b/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts index 38610a0495..bb34268b23 100644 --- a/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts +++ b/packages/sheets-conditional-formatting-ui/src/controllers/cf.render.controller.ts @@ -20,10 +20,10 @@ import { INTERCEPTOR_POINT, SheetInterceptorService } from '@univerjs/sheets'; import { SheetSkeletonManagerService } from '@univerjs/sheets-ui'; import { Inject } from '@wendellhu/redi'; import { bufferTime, filter } from 'rxjs/operators'; -import type { ISheetFontRenderExtension, Spreadsheet } from '@univerjs/engine-render'; +import type { ISheetFontRenderExtension } from '@univerjs/engine-render'; import { IRenderManagerService } from '@univerjs/engine-render'; -import { ConditionalFormattingIcon, ConditionalFormattingRuleModel, ConditionalFormattingService, ConditionalFormattingViewModel, DataBar, dataBarUKey, DEFAULT_PADDING, DEFAULT_WIDTH, IconUKey } from '@univerjs/sheets-conditional-formatting'; +import { ConditionalFormattingRuleModel, ConditionalFormattingService, ConditionalFormattingViewModel, DEFAULT_PADDING, DEFAULT_WIDTH } from '@univerjs/sheets-conditional-formatting'; import type { IConditionalFormattingCellData } from '@univerjs/sheets-conditional-formatting'; @@ -42,29 +42,6 @@ export class RenderController extends Disposable { super(); this._initViewModelInterceptor(); this._initSkeleton(); - this._initRender(); - } - - _initRender() { - const list: [string, new () => any][] = [[dataBarUKey, DataBar], [IconUKey, ConditionalFormattingIcon]]; - const register = (renderId: string) => { - const render = renderId && this._renderManagerService.getRenderById(renderId); - const spreadsheetRender = render && render.mainComponent as Spreadsheet; - if (spreadsheetRender) { - list.forEach(([key, Instance]) => { - if (!spreadsheetRender.getExtensionByKey(key)) { - spreadsheetRender.register(new Instance()); - } - }); - } - }; - this.disposeWithMe(this._renderManagerService.currentRender$.subscribe((renderId) => { - renderId && register(renderId); - })); - const workbook = this._univerInstanceService.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET)!; - if (workbook) { - register(workbook.getUnitId()); - } } _initSkeleton() { diff --git a/packages/sheets-conditional-formatting/src/render/data-bar.render.ts b/packages/sheets-conditional-formatting/src/render/data-bar.render.ts index 44b17d2717..63a1d1ba0b 100644 --- a/packages/sheets-conditional-formatting/src/render/data-bar.render.ts +++ b/packages/sheets-conditional-formatting/src/render/data-bar.render.ts @@ -17,7 +17,7 @@ import type { IRange, IScale } from '@univerjs/core'; import { Range } from '@univerjs/core'; import type { SpreadsheetSkeleton, UniverRenderingContext } from '@univerjs/engine-render'; -import { FIX_ONE_PIXEL_BLUR_OFFSET, SheetExtension } from '@univerjs/engine-render'; +import { FIX_ONE_PIXEL_BLUR_OFFSET, SheetExtension, SpreadsheetExtensionRegistry } from '@univerjs/engine-render'; import type { IDataBarCellData } from './type'; export const dataBarUKey = 'sheet-conditional-rule-data-bar'; @@ -150,3 +150,5 @@ export class DataBar extends SheetExtension { ctx.fill(); } } + +SpreadsheetExtensionRegistry.add(DataBar); diff --git a/packages/sheets-conditional-formatting/src/render/icon.render.ts b/packages/sheets-conditional-formatting/src/render/icon.render.ts index 3bf3184d76..d3b4c54199 100644 --- a/packages/sheets-conditional-formatting/src/render/icon.render.ts +++ b/packages/sheets-conditional-formatting/src/render/icon.render.ts @@ -17,7 +17,7 @@ import type { IRange, IScale } from '@univerjs/core'; import { Range } from '@univerjs/core'; import type { SpreadsheetSkeleton, UniverRenderingContext } from '@univerjs/engine-render'; -import { SheetExtension } from '@univerjs/engine-render'; +import { SheetExtension, SpreadsheetExtensionRegistry } from '@univerjs/engine-render'; import type { IIconType } from '../models/icon-map'; import { EMPTY_ICON_TYPE, iconMap } from '../models/icon-map'; import type { IIconSetCellData } from './type'; @@ -115,3 +115,5 @@ export class ConditionalFormattingIcon extends SheetExtension { return `${iconType}_${iconIndex}`; } } + +SpreadsheetExtensionRegistry.add(ConditionalFormattingIcon);