fix: 当选择模式激活时关闭上下文菜单
- 添加 `useEffect`,在 `isAssetSelectionMode` 为 true 时关闭菜单。 - 更新测试以覆盖新行为。
This commit is contained in:
@@ -126,8 +126,10 @@ function renderAssetRow({
|
||||
onDownloadAsset,
|
||||
};
|
||||
|
||||
render(<ImageCanvasAssetRowView {...props} />);
|
||||
return props;
|
||||
return {
|
||||
props,
|
||||
...render(<ImageCanvasAssetRowView {...props} />),
|
||||
};
|
||||
}
|
||||
|
||||
describe('ImageCanvasAssetRowView', () => {
|
||||
@@ -185,6 +187,25 @@ describe('ImageCanvasAssetRowView', () => {
|
||||
expect(screen.queryByRole('menu')).toBeNull();
|
||||
});
|
||||
|
||||
it('closes the right click menu when selection mode becomes active', () => {
|
||||
const { props, rerender } = renderAssetRow();
|
||||
|
||||
fireEvent.contextMenu(
|
||||
screen.getByRole('button', { name: '添加账号素材A' }),
|
||||
{
|
||||
clientX: 120,
|
||||
clientY: 80,
|
||||
},
|
||||
);
|
||||
expect(screen.getByRole('menu')).toBeTruthy();
|
||||
|
||||
rerender(
|
||||
<ImageCanvasAssetRowView {...props} isAssetSelectionMode={true} />,
|
||||
);
|
||||
|
||||
expect(screen.queryByRole('menu')).toBeNull();
|
||||
});
|
||||
|
||||
it('selects the asset instead of adding it in selection mode', () => {
|
||||
const addAssetLayer = vi.fn();
|
||||
const toggleAssetSelected = vi.fn();
|
||||
|
||||
@@ -106,6 +106,12 @@ export function ImageCanvasAssetRowView({
|
||||
setMenuPosition(null);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (isAssetSelectionMode) {
|
||||
closeMenu();
|
||||
}
|
||||
}, [closeMenu, isAssetSelectionMode]);
|
||||
|
||||
const selectAssetFromEvent = useCallback(
|
||||
(event: ReactMouseEvent<HTMLElement>) => {
|
||||
const pointerKind =
|
||||
|
||||
Reference in New Issue
Block a user