diff --git a/packages/engine-render/src/shape/scroll-bar.ts b/packages/engine-render/src/shape/scroll-bar.ts index 8197422ac3..3dd1dba139 100644 --- a/packages/engine-render/src/shape/scroll-bar.ts +++ b/packages/engine-render/src/shape/scroll-bar.ts @@ -26,9 +26,6 @@ import { Subscription } from 'rxjs'; import { Transform } from '../basics/transform'; import { Rect } from './rect'; -/** - * Sadly, the props name here is not the same as the members in Scrollbar. - */ export interface IScrollBarProps { mainScene?: Scene; thumbMargin?: number; @@ -84,15 +81,12 @@ export class ScrollBar extends Disposable { placeholderBarRect: Nullable; protected _viewport!: Viewport; - private _mainScene: Nullable; private _lastX: number = -1; - private _lastY: number = -1; private _isHorizonMove = false; - private _isVerticalMove = false; private _horizonPointerMoveSub: Nullable; diff --git a/packages/sheets-ui/src/controllers/config.schema.ts b/packages/sheets-ui/src/controllers/config.schema.ts index 7d0dd47c42..d0cdb979e5 100644 --- a/packages/sheets-ui/src/controllers/config.schema.ts +++ b/packages/sheets-ui/src/controllers/config.schema.ts @@ -15,6 +15,7 @@ */ import type { DependencyOverride } from '@univerjs/core'; +import type { IScrollBarProps } from '@univerjs/engine-render'; import type { MenuConfig } from '@univerjs/ui'; export const SHEETS_UI_PLUGIN_CONFIG_KEY = 'sheets-ui.config'; @@ -43,6 +44,8 @@ export interface IUniverSheetsUIConfig { hidePasteOptions?: boolean; }; + scrollConfig?: IScrollBarProps; + } export const defaultPluginConfig: IUniverSheetsUIConfig = { diff --git a/packages/sheets-ui/src/controllers/render-controllers/sheet.render-controller.ts b/packages/sheets-ui/src/controllers/render-controllers/sheet.render-controller.ts index 266992cefd..94001c0252 100644 --- a/packages/sheets-ui/src/controllers/render-controllers/sheet.render-controller.ts +++ b/packages/sheets-ui/src/controllers/render-controllers/sheet.render-controller.ts @@ -16,9 +16,11 @@ import type { ICommandInfo, IRange, Nullable, Workbook, Worksheet } from '@univerjs/core'; import type { ISetFormulaCalculationNotificationMutation } from '@univerjs/engine-formula'; -import type { IAfterRender$Info, IBasicFrameInfo, IExtendFrameInfo, IRenderContext, IRenderModule, ISummaryFrameInfo, ISummaryMetric, ITimeMetric, IViewportInfos, Scene } from '@univerjs/engine-render'; -import { CommandType, ICommandService, Inject, Optional, Rectangle, RxDisposable } from '@univerjs/core'; +import type { IAfterRender$Info, IBasicFrameInfo, IExtendFrameInfo, IRenderContext, IRenderModule, IScrollBarProps, ISummaryFrameInfo, ISummaryMetric, ITimeMetric, IViewportInfos, Scene } from '@univerjs/engine-render'; +import type { IUniverSheetsUIConfig } from '../config.schema'; +import { CommandType, ICommandService, IConfigService, Inject, Optional, Rectangle, RxDisposable } from '@univerjs/core'; import { SetFormulaCalculationNotificationMutation } from '@univerjs/engine-formula'; + import { Rect, ScrollBar, @@ -29,7 +31,6 @@ import { SpreadsheetRowHeader, Viewport, } from '@univerjs/engine-render'; - import { COMMAND_LISTENER_SKELETON_CHANGE, COMMAND_LISTENER_VALUE_CHANGE, MoveRangeMutation, SetRangeValuesMutation } from '@univerjs/sheets'; import { ITelemetryService } from '@univerjs/telemetry'; import { Subject, withLatestFrom } from 'rxjs'; @@ -40,6 +41,7 @@ import { } from '../../common/keys'; import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service'; import { SheetsRenderService } from '../../services/sheets-render.service'; +import { SHEETS_UI_PLUGIN_CONFIG_KEY } from '../config.schema'; interface ISetWorksheetMutationParams { unitId: string; @@ -61,6 +63,8 @@ export class SheetRenderController extends RxDisposable implements IRenderModule renderMetric$ = this._renderMetric$.asObservable(); constructor( private readonly _context: IRenderContext, + @Inject(IConfigService) private readonly _configService: IConfigService, + @Inject(SheetSkeletonManagerService) private readonly _sheetSkeletonManagerService: SheetSkeletonManagerService, @Inject(SheetsRenderService) private readonly _sheetRenderService: SheetsRenderService, @ICommandService private readonly _commandService: ICommandService, @@ -350,7 +354,9 @@ export class SheetRenderController extends RxDisposable implements IRenderModule const { rowHeader, columnHeader } = worksheet.getConfig(); const { viewMain } = this._initViewports(scene, rowHeader, columnHeader); - const _scrollBar = new ScrollBar(viewMain); + const sheetsUIConfig = this._configService.getConfig(SHEETS_UI_PLUGIN_CONFIG_KEY) as Partial; + const scrollConfig: IScrollBarProps | undefined = sheetsUIConfig?.scrollConfig; + const _scrollBar = new ScrollBar(viewMain, scrollConfig); scene.attachControl(); return viewMain;