From d76a395b6df29ffaad0fa2e6b6dfc71e9652e9a9 Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Wed, 14 Oct 2026 08:13:45 -0700 Subject: [PATCH 1/2] Prefer `useMemo` over state + effect. ... to appease eslint (#4411) --- src/components/FullScreenButton.jsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/FullScreenButton.jsx b/src/components/FullScreenButton.jsx index bbf8c09773..3a4951ff24 100644 --- a/src/components/FullScreenButton.jsx +++ b/src/components/FullScreenButton.jsx @@ -1,4 +1,4 @@ -import { useContext, useEffect, useState } from 'react'; +import { useContext, useMemo, useState } from 'react'; import FullscreenIcon from '@mui/icons-material/FullscreenSharp'; import FullscreenExitIcon from '@mui/icons-material/FullscreenExitSharp'; import PropTypes from 'prop-types'; @@ -13,12 +13,10 @@ export function FullScreenButton({ className = undefined }) { const handle = useContext(FullScreenContext); // iPhone Safari does not support full screen on divs, - // Don't render the button if not supported - const [canFullscreenDiv, setCanFullscreenDiv] = useState(false); - - useEffect(() => { + // Don't render the button if not supporte + const canFullscreenDiv = useMemo(() => { const div = document.createElement('div'); - setCanFullscreenDiv(typeof div.requestFullscreen === 'function'); + return typeof div.requestFullscreen === 'function'; }, []); if (!canFullscreenDiv) return null; From 470ea86b68175bca612ceafb0a9003a86091e5ba Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Wed, 14 Oct 2026 14:41:45 -0700 Subject: [PATCH 2/2] Update src/components/FullScreenButton.jsx Co-authored-by: dnoneill --- src/components/FullScreenButton.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/FullScreenButton.jsx b/src/components/FullScreenButton.jsx index 3a4951ff24..330826645f 100644 --- a/src/components/FullScreenButton.jsx +++ b/src/components/FullScreenButton.jsx @@ -1,4 +1,4 @@ -import { useContext, useMemo, useState } from 'react'; +import { useContext, useMemo } from 'react'; import FullscreenIcon from '@mui/icons-material/FullscreenSharp'; import FullscreenExitIcon from '@mui/icons-material/FullscreenExitSharp'; import PropTypes from 'prop-types';