From 6609c0325f7f4988096aa94152273db8edff280b Mon Sep 17 00:00:00 2001 From: duckietm Date: Tue, 31 Mar 2026 11:41:21 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=99=20Fix=20Youtube=20TV's?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widgets/furniture/useFurnitureYoutubeWidget.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/hooks/rooms/widgets/furniture/useFurnitureYoutubeWidget.ts b/src/hooks/rooms/widgets/furniture/useFurnitureYoutubeWidget.ts index 7f91c1e..0069063 100644 --- a/src/hooks/rooms/widgets/furniture/useFurnitureYoutubeWidget.ts +++ b/src/hooks/rooms/widgets/furniture/useFurnitureYoutubeWidget.ts @@ -1,5 +1,5 @@ import { ControlYoutubeDisplayPlaybackMessageComposer, GetRoomEngine, GetSessionDataManager, GetYoutubeDisplayStatusMessageComposer, RoomEngineTriggerWidgetEvent, RoomId, SecurityLevel, SetYoutubeDisplayPlaylistMessageComposer, YoutubeControlVideoMessageEvent, YoutubeDisplayPlaylist, YoutubeDisplayPlaylistsEvent, YoutubeDisplayVideoMessageEvent } from '@nitrots/nitro-renderer'; -import { useState } from 'react'; +import { useRef, useState } from 'react'; import { IsOwnerOfFurniture, SendMessageComposer, YoutubeVideoPlaybackStateEnum } from '../../../../api'; import { useMessageEvent, useNitroEvent } from '../../../events'; import { useFurniRemovedEvent } from '../../engine'; @@ -13,6 +13,7 @@ const useFurnitureYoutubeWidgetState = () => { const [ objectId, setObjectId ] = useState(-1); const [ category, setCategory ] = useState(-1); + const objectIdRef = useRef(-1); const [ videoId, setVideoId ] = useState(null); const [ videoStart, setVideoStart ] = useState(null); const [ videoEnd, setVideoEnd ] = useState(null); @@ -23,6 +24,7 @@ const useFurnitureYoutubeWidgetState = () => const onClose = () => { + objectIdRef.current = -1; setObjectId(-1); setCategory(-1); setVideoId(null); @@ -64,6 +66,7 @@ const useFurnitureYoutubeWidgetState = () => if(!roomObject) return; + objectIdRef.current = event.objectId; setObjectId(event.objectId); setCategory(event.category); setHasControl(GetSessionDataManager().hasSecurity(SecurityLevel.EMPLOYEE) || IsOwnerOfFurniture(roomObject)); @@ -74,8 +77,9 @@ const useFurnitureYoutubeWidgetState = () => useMessageEvent(YoutubeDisplayVideoMessageEvent, event => { const parser = event.getParser(); + const currentObjectId = objectIdRef.current; - if((objectId === -1) || (objectId !== parser.furniId)) return; + if((currentObjectId === -1) || (currentObjectId !== parser.furniId)) return; setVideoId(parser.videoId); setVideoStart(parser.startAtSeconds); @@ -86,8 +90,9 @@ const useFurnitureYoutubeWidgetState = () => useMessageEvent(YoutubeDisplayPlaylistsEvent, event => { const parser = event.getParser(); + const currentObjectId = objectIdRef.current; - if((objectId === -1) || (objectId !== parser.furniId)) return; + if((currentObjectId === -1) || (currentObjectId !== parser.furniId)) return; setPlaylists(parser.playlists); setSelectedVideo(parser.selectedPlaylistId); @@ -100,8 +105,9 @@ const useFurnitureYoutubeWidgetState = () => useMessageEvent(YoutubeControlVideoMessageEvent, event => { const parser = event.getParser(); + const currentObjectId = objectIdRef.current; - if((objectId === -1) || (objectId !== parser.furniId)) return; + if((currentObjectId === -1) || (currentObjectId !== parser.furniId)) return; switch(parser.commandId) {