ai-comic-factory / src /lib /usePageOrientation.ts
jbilcke-hf's picture
jbilcke-hf HF staff
slight UI redesign
1c1e6e9
raw
history blame
1.18 kB
import { useEffect } from "react";
/**
* This will turn the page in portrait or landscape depending on the number of pages
*/
const usePageOrientation = () => {
useEffect(() => {
const updatePageOrientation = () => {
const pages = document.querySelectorAll(".comic-page");
const styleEl = document.createElement("style");
// Append style element to the head
document.head.appendChild(styleEl);
// Get the style sheet created in the above step
const styleSheet = styleEl.sheet as CSSStyleSheet;
if (pages.length >= 2) {
styleSheet.insertRule("@page { size: landscape }", 0);
} else {
styleSheet.insertRule("@page { size: portrait }", 0);
}
};
// Execute when the DOM is fully loaded
updatePageOrientation();
// Also execute when the window is resized
window.addEventListener("resize", updatePageOrientation);
// Clean up event listener on unmount
return () => {
window.removeEventListener("resize", updatePageOrientation);
};
}, []); // Empty dependency array ensures this runs once on mount and cleanup on unmount
};
export default usePageOrientation;