From 02df8bfbff1c822c247fe4b85e254ee8544cfcb8 Mon Sep 17 00:00:00 2001 From: lumixraku Date: Sat, 22 Feb 2025 14:37:32 +0800 Subject: [PATCH] fix: better code --- packages/sheets-ui/src/controllers/menu/insert.menu.ts | 4 ---- packages/ui/src/components/menu/desktop/Menu.tsx | 6 +----- packages/ui/src/services/contextmenu/contextmenu.service.ts | 2 -- .../ui/src/views/components/context-menu/ContextMenu.tsx | 6 +----- 4 files changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/sheets-ui/src/controllers/menu/insert.menu.ts b/packages/sheets-ui/src/controllers/menu/insert.menu.ts index bc4eeb729b84..51bda7807c3a 100644 --- a/packages/sheets-ui/src/controllers/menu/insert.menu.ts +++ b/packages/sheets-ui/src/controllers/menu/insert.menu.ts @@ -262,10 +262,6 @@ export function InsertMultiRowsAfterMenuItemFactory(accessor: IAccessor): IMenuB suffix: 'rightClick.insertRowsAfterSuffix', }, }, - // value$: new Observable((subscriber) => { - // subscriber.next(1); - // subscriber.complete(); - // }), value$: deriveStateFromActiveSheet$(univerInstanceService, defaultValue, () => new Observable((subscriber) => { function update() { const range = selectionManagerService.getCurrentLastSelection()?.range; diff --git a/packages/ui/src/components/menu/desktop/Menu.tsx b/packages/ui/src/components/menu/desktop/Menu.tsx index 326dd50f4c4a..3ec4c40e9d70 100644 --- a/packages/ui/src/components/menu/desktop/Menu.tsx +++ b/packages/ui/src/components/menu/desktop/Menu.tsx @@ -34,7 +34,6 @@ import clsx from 'clsx'; import React, { useEffect, useMemo, useState } from 'react'; import { combineLatest, isObservable, of } from 'rxjs'; -import { IContextMenuService } from '../../../services/contextmenu/contextmenu.service'; import { ILayoutService } from '../../../services/layout/layout.service'; import { MenuItemType } from '../../../services/menu/menu'; import { IMenuManagerService } from '../../../services/menu/menu-manager.service'; @@ -205,24 +204,21 @@ interface IMenuItemProps { function MenuItem({ menuItem, onClick }: IMenuItemProps) { const menuManagerService = useDependency(IMenuManagerService); - const contextMenuService = useDependency(IContextMenuService); const disabled = useObservable(menuItem.disabled$, false); const activated = useObservable(menuItem.activated$, false); const hidden = useObservable(menuItem.hidden$, false); const value = useObservable(menuItem.value$); - const trigger = useObservable(contextMenuService.trigger$); const item = menuItem as IDisplayMenuItem; const selectionsFromObservable = useObservable(isObservable(item.selections) ? item.selections : undefined); const [inputValue, setInputValue] = useState(value); useEffect(() => { setInputValue(value); - }, [value, trigger]); + }, [value]); if (hidden) { return null; } - /** * user input change value from CustomLabel * @param v diff --git a/packages/ui/src/services/contextmenu/contextmenu.service.ts b/packages/ui/src/services/contextmenu/contextmenu.service.ts index 5a5166efedbe..dfa9063dd67d 100644 --- a/packages/ui/src/services/contextmenu/contextmenu.service.ts +++ b/packages/ui/src/services/contextmenu/contextmenu.service.ts @@ -36,8 +36,6 @@ export interface IContextMenuService { triggerContextMenu(event: IPointerEvent | IMouseEvent, menuType: string): void; hideContextMenu(): void; registerContextMenuHandler(handler: IContextMenuHandler): IDisposable; - - trigger$: BehaviorSubject; } export const IContextMenuService = createIdentifier('ui.contextmenu.service'); diff --git a/packages/ui/src/views/components/context-menu/ContextMenu.tsx b/packages/ui/src/views/components/context-menu/ContextMenu.tsx index e20c19038c2d..bdc93b3c3841 100644 --- a/packages/ui/src/views/components/context-menu/ContextMenu.tsx +++ b/packages/ui/src/views/components/context-menu/ContextMenu.tsx @@ -62,22 +62,18 @@ export function DesktopContextMenu() { }; }, [contextMenuService]); + /** A function to open context menu with given position and menu type. */ function handleContextMenu(event: IMouseEvent, menuType: string) { setVisible(false); requestAnimationFrame(() => { setMenuType(menuType); setOffset([event.clientX, event.clientY]); setVisible(true); - - // for refresh react comp input value after context menu open - contextMenuService.trigger$.next(1); }); } function handleClose() { setVisible(false); - // for refresh input value after context menu close - contextMenuService.trigger$.next(0); } return (