diff --git a/packages/core/src/hooks/use-room.js b/packages/core/src/hooks/use-room.js index 5cd6760..fea4513 100644 --- a/packages/core/src/hooks/use-room.js +++ b/packages/core/src/hooks/use-room.js @@ -6,13 +6,10 @@ import { import {useSocket} from '@latus/socket'; export default () => { - const [room, setRoom] = useState(); const latus = useLatus(); + const [room, setRoom] = useState(latus.get('%room')); const socket = useSocket(); const synchronizer = latus.get('%synchronizer'); - if (latus.get('%room') !== room) { - setRoom(latus.get('%room')); - } useEffect(() => { if (!room) { return undefined; diff --git a/packages/core/src/hooks/use-self-entity.js b/packages/core/src/hooks/use-self-entity.js index 0055d1f..ecb0a5a 100644 --- a/packages/core/src/hooks/use-self-entity.js +++ b/packages/core/src/hooks/use-self-entity.js @@ -1,5 +1,6 @@ import { useEffect, + useLatus, useState, } from '@latus/react'; import {useSelector} from '@latus/redux'; @@ -8,14 +9,16 @@ import {selfEntitySelector} from '../state'; import useRoom from './use-room'; export default () => { + const latus = useLatus(); const room = useRoom(); const selfEntity = useSelector(selfEntitySelector); - const [entity, setEntity] = useState(); + const [entity, setEntity] = useState(latus.get('%selfEntity')); useEffect(() => { if (!room) { return; } const onDestroying = () => { + latus.set('%selfEntity', undefined); setEntity(undefined); }; const augmentSelfEntity = async (entity) => { @@ -25,9 +28,10 @@ export default () => { }); entity.on('destroying', onDestroying); } + latus.set('%selfEntity', entity); setEntity(entity); }; augmentSelfEntity(room.findEntity(selfEntity)); - }, [room, selfEntity]); + }, [latus, room, selfEntity]); return entity; };