From 034dd74723dee475db7cad2c51f0d19bf233d745 Mon Sep 17 00:00:00 2001 From: rahulramesha Date: Wed, 28 Aug 2024 18:46:33 +0530 Subject: [PATCH] use-platform-os hook optimization to not cause re renders --- packages/ui/src/hooks/use-platform-os.ts | 13 ++------- web/core/hooks/use-platform-os.tsx | 35 +++++++++--------------- 2 files changed, 15 insertions(+), 33 deletions(-) diff --git a/packages/ui/src/hooks/use-platform-os.ts b/packages/ui/src/hooks/use-platform-os.ts index 69297b33dac..e07f19ad41f 100644 --- a/packages/ui/src/hooks/use-platform-os.ts +++ b/packages/ui/src/hooks/use-platform-os.ts @@ -1,15 +1,6 @@ -import { useEffect, useState } from "react"; - export const usePlatformOS = () => { - // states - const [isMobile, setIsMobile] = useState(false); - - useEffect(() => { - const userAgent = window.navigator.userAgent; - const isMobile = /iPhone|iPad|iPod|Android/i.test(userAgent); - - if (isMobile) setIsMobile(isMobile); - }, []); + const userAgent = window.navigator.userAgent; + const isMobile = /iPhone|iPad|iPod|Android/i.test(userAgent); return { isMobile }; }; diff --git a/web/core/hooks/use-platform-os.tsx b/web/core/hooks/use-platform-os.tsx index ebee50c84d6..cef4e785cf6 100644 --- a/web/core/hooks/use-platform-os.tsx +++ b/web/core/hooks/use-platform-os.tsx @@ -1,29 +1,20 @@ "use client"; -import { useEffect, useState } from "react"; - export const usePlatformOS = () => { - const [isMobile, setIsMobile] = useState(false); - const [platform, setPlatform] = useState(""); - useEffect(() => { - const userAgent = window.navigator.userAgent; - const isMobile = /iPhone|iPad|iPod|Android/i.test(userAgent); - let detectedPlatform = ""; + const userAgent = window.navigator.userAgent; + const isMobile = /iPhone|iPad|iPod|Android/i.test(userAgent); + let platform = ""; - if (isMobile) { - setIsMobile(isMobile) + if (!isMobile) { + if (userAgent.indexOf("Win") !== -1) { + platform = "Windows"; + } else if (userAgent.indexOf("Mac") !== -1) { + platform = "MacOS"; + } else if (userAgent.indexOf("Linux") !== -1) { + platform = "Linux"; } else { - if (userAgent.indexOf("Win") !== -1) { - detectedPlatform = "Windows"; - } else if (userAgent.indexOf("Mac") !== -1) { - detectedPlatform = "MacOS"; - } else if (userAgent.indexOf("Linux") !== -1) { - detectedPlatform = "Linux"; - } else { - detectedPlatform = "Unknown"; - } - }; - setPlatform(detectedPlatform); - }, []); + platform = "Unknown"; + } + } return { isMobile, platform }; };