Skip to content

Commit

Permalink
refactor: connect to camera manually
Browse files Browse the repository at this point in the history
  • Loading branch information
littensy committed Jul 10, 2024
1 parent 5a1f47f commit 029f9f1
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions src/use-viewport/use-viewport.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useBinding, useEffect, useMemo } from "@rbxts/react";
import { useBinding, useEffect } from "@rbxts/react";
import { useCamera } from "../use-camera";
import { useEventListener } from "../use-event-listener";

Expand All @@ -9,21 +9,20 @@ import { useEventListener } from "../use-event-listener";
*/
export function useViewport(listener?: (viewport: Vector2) => void) {
const camera = useCamera();
const [viewport, setViewport] = useBinding(Vector2.one);
const [viewport, setViewport] = useBinding(camera.ViewportSize);

useEffect(() => {
const connection = camera.GetPropertyChangedSignal("ViewportSize").Connect(() => {
setViewport(camera.ViewportSize);
listener?.(camera.ViewportSize);
});

useEventListener(camera?.GetPropertyChangedSignal("ViewportSize"), () => {
setViewport(camera.ViewportSize);
listener?.(camera.ViewportSize);
});

useMemo(() => {
if (camera) {
setViewport(camera.ViewportSize);
}
}, [camera]);

useEffect(() => {
listener?.(viewport.getValue());
return () => {
connection.Disconnect();
};
}, [camera]);

return viewport;
Expand Down

0 comments on commit 029f9f1

Please sign in to comment.