const setSize = (container, camera, renderer) => {
  // These are great for full-screen, which adjusts to a window.
  const height = window.innerHeight;
  const width = window.innerWidth - 50;
  // These are better for fitting in a container, which stays that size.
  //const height = container.scrollHeight;
  //const width = container.scrollWidth;

  camera.aspect = width / height;
  camera.updateProjectionMatrix();

  renderer.setSize(width, height);
  renderer.setPixelRatio(window.devicePixelRatio);
};

class Resizer {
  constructor(container, camera, renderer) {
    // set initial size on load
    setSize(container, camera, renderer);

    window.addEventListener("resize", () => {
      // set the size again if a resize occurs
      setSize(container, camera, renderer);
      // perform any custom actions
      this.onResize();
    });
  }

  // eslint-disable-next-line @typescript-eslint/no-empty-function
  onResize() {}
}

export { Resizer };
