Skip to content

Commit

Permalink
feat: update
Browse files Browse the repository at this point in the history
  • Loading branch information
weird94 committed Sep 30, 2024
1 parent d998aea commit 4a320aa
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,34 @@
* limitations under the License.
*/

import type { Workbook } from '@univerjs/core';
import type { IRenderContext, IRenderModule } from '@univerjs/engine-render';
import { Disposable, Inject, InterceptorEffectEnum, LifecycleStages, OnLifecycle } from '@univerjs/core';
import { INTERCEPTOR_POINT, SheetInterceptorService } from '@univerjs/sheets';
import { HyperLinkModel } from '@univerjs/sheets-hyper-link';
import { debounceTime } from 'rxjs';

@OnLifecycle(LifecycleStages.Ready, SheetsHyperLinkRenderManagerController)
export class SheetsHyperLinkRenderController extends Disposable implements IRenderModule {
constructor(
private readonly _context: IRenderContext<Workbook>,
@Inject(HyperLinkModel) private readonly _hyperLinkModel: HyperLinkModel
) {
super();
this._initSkeletonChange();
}

private _initSkeletonChange() {
const markSkeletonDirty = () => {
this._context.mainComponent?.makeForceDirty();
};

this.disposeWithMe(this._hyperLinkModel.linkUpdate$.pipe(debounceTime(16)).subscribe(() => {
markSkeletonDirty();
}));
}
}

@OnLifecycle(LifecycleStages.Starting, SheetsHyperLinkRenderManagerController)
export class SheetsHyperLinkRenderManagerController extends Disposable {
constructor(
@Inject(SheetInterceptorService) private readonly _sheetInterceptorService: SheetInterceptorService,
Expand Down
10 changes: 8 additions & 2 deletions packages/sheets-hyper-link-ui/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,19 @@
* limitations under the License.
*/

import type { Dependency } from '@univerjs/core';
import type { Dependency, Workbook } from '@univerjs/core';
import type { IUniverSheetsHyperLinkUIConfig } from './controllers/config.schema';
import { DependentOn, IConfigService, Inject, Injector, Plugin, UniverInstanceType } from '@univerjs/core';
import { UniverDocsUIPlugin } from '@univerjs/docs-ui';
import { IRenderManagerService } from '@univerjs/engine-render';
import { UniverSheetsHyperLinkPlugin } from '@univerjs/sheets-hyper-link';
import { SheetsHyperLinkAutoFillController } from './controllers/auto-fill.controller';
import { defaultPluginConfig, PLUGIN_CONFIG_KEY } from './controllers/config.schema';
import { SheetsHyperLinkCopyPasteController } from './controllers/copy-paste.controller';
import { SheetsHyperLinkPermissionController } from './controllers/hyper-link-permission.controller';
import { SheetsHyperLinkPopupController } from './controllers/popup.controller';
import { SheetsHyperLinkRemoveSheetController } from './controllers/remove-sheet.controller';
import { SheetsHyperLinkRenderManagerController } from './controllers/render-controllers/render.controller';
import { SheetsHyperLinkRenderController, SheetsHyperLinkRenderManagerController } from './controllers/render-controllers/render.controller';
import { SheetsHyperLinkRichTextRefRangeController } from './controllers/rich-text-ref-range.controller';
import { SheetHyperLinkSetRangeController } from './controllers/set-range.controller';
import { SheetsHyperLinkUIController } from './controllers/ui.controller';
Expand Down Expand Up @@ -75,4 +76,9 @@ export class UniverSheetsHyperLinkUIPlugin extends Plugin {

dependencies.forEach((dep) => this._injector.add(dep));
}

override onReady(): void {
const renderManager = this._injector.get(IRenderManagerService);
renderManager.registerRenderModule<Workbook>(UniverInstanceType.UNIVER_SHEET, [SheetsHyperLinkRenderController] as Dependency);
}
}

0 comments on commit 4a320aa

Please sign in to comment.