From 7901ca57187035ecb433ae5e401d510a3a15273e Mon Sep 17 00:00:00 2001 From: duckietm Date: Fri, 14 Mar 2025 10:12:45 +0100 Subject: [PATCH] :up: Update Zoom --- src/components/room/widgets/RoomWidgetsView.tsx | 2 +- .../widgets/room-tools/RoomToolsWidgetView.tsx | 17 +++++++++++------ src/hooks/rooms/widgets/useChatInputWidget.ts | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/room/widgets/RoomWidgetsView.tsx b/src/components/room/widgets/RoomWidgetsView.tsx index c9988d7..2d837b9 100644 --- a/src/components/room/widgets/RoomWidgetsView.tsx +++ b/src/components/room/widgets/RoomWidgetsView.tsx @@ -21,7 +21,7 @@ export const RoomWidgetsView: FC<{}> = props => const { roomSession = null } = useRoom(); const { simpleAlert = null } = useNotification(); - useNitroEvent(RoomZoomEvent.ROOM_ZOOM, event => GetRoomEngine().setRoomInstanceRenderingCanvasScale(event.roomId, 1, event.level, null, null, false, event.asDelta)); + useNitroEvent(RoomZoomEvent.ROOM_ZOOM, event => GetRoomEngine().setRoomInstanceRenderingCanvasScale(event.roomId, 1, (((event.level)<1) ? 0.5 : (1 << (Math.floor(event.level) - 1))), null, null, event.isFlipForced)); useNitroEvent( [ diff --git a/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx b/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx index cc0c6a4..292536f 100644 --- a/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx +++ b/src/components/room/widgets/room-tools/RoomToolsWidgetView.tsx @@ -1,6 +1,6 @@ import { CreateLinkEvent, GetGuestRoomResultEvent, GetRoomEngine, NavigatorSearchComposer, RateFlatMessageComposer } from '@nitrots/nitro-renderer'; import { FC, useEffect, useState } from 'react'; -import { LocalizeText, SendMessageComposer } from '../../../../api'; +import { GetConfigurationValue, LocalizeText, SendMessageComposer } from '../../../../api'; import { Text, TransitionAnimation, TransitionAnimationTypes } from '../../../../common'; import { useMessageEvent, useNavigator, useRoom } from '../../../../hooks'; import { classNames } from '../../../../layout'; @@ -25,12 +25,17 @@ export const RoomToolsWidgetView: FC<{}> = props => case 'zoom': setIsZoomedIn(prevValue => { - let scale = GetRoomEngine().getRoomInstanceRenderingCanvasScale(roomSession.roomId, 1); + if(GetConfigurationValue('room.zoom.enabled', true)) + { + const scale = GetRoomEngine().getRoomInstanceRenderingCanvasScale(roomSession.roomId, 1); + GetRoomEngine().setRoomInstanceRenderingCanvasScale(roomSession.roomId, 1, scale === 1 ? 0.5 : 1); + } + else + { + const geometry = GetRoomEngine().getRoomInstanceGeometry(roomSession.roomId, 1); - if(!prevValue) scale /= 2; - else scale *= 2; - - GetRoomEngine().setRoomInstanceRenderingCanvasScale(roomSession.roomId, 1, scale); + if(geometry) geometry.performZoom(); + } return !prevValue; }); diff --git a/src/hooks/rooms/widgets/useChatInputWidget.ts b/src/hooks/rooms/widgets/useChatInputWidget.ts index 8c2a6c1..3f32d3f 100644 --- a/src/hooks/rooms/widgets/useChatInputWidget.ts +++ b/src/hooks/rooms/widgets/useChatInputWidget.ts @@ -108,7 +108,7 @@ const useChatInputWidgetState = () => return null; case ':zoom': - GetEventDispatcher().dispatchEvent(new RoomZoomEvent(roomSession.roomId, parseFloat(secondPart), false)); + GetEventDispatcher().dispatchEvent(new RoomZoomEvent(roomSession.roomId, parseInt(secondPart))); return null; case ':screenshot':