useMobileDetect.js 694 B

1234567891011121314151617181920212223242526272829
  1. import { useEffect, useState } from "react";
  2. const useMobileDetect = () => {
  3. const [device, setDevice] = useState({
  4. type: "desktop",
  5. });
  6. useEffect(() => {
  7. window.addEventListener("resize", () => {
  8. if (window.innerWidth <= 768) {
  9. setDevice((old) => ({ ...old, type: "mobile" }));
  10. } else {
  11. setDevice((old) => ({ ...old, type: "desktop" }));
  12. }
  13. });
  14. window.addEventListener("load", () => {
  15. if (window.innerWidth <= 768) {
  16. setDevice((old) => ({ ...old, type: "mobile" }));
  17. } else {
  18. setDevice((old) => ({ ...old, type: "desktop" }));
  19. }
  20. });
  21. }, []);
  22. return device;
  23. };
  24. export default useMobileDetect;