diff --git a/components/apps/BoxedWine/index.tsx b/components/apps/BoxedWine/index.tsx index 7a9dce8e..55846e47 100644 --- a/components/apps/BoxedWine/index.tsx +++ b/components/apps/BoxedWine/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledBoxedWine from "components/apps/BoxedWine/StyledBoxedWine"; import useBoxedWine from "components/apps/BoxedWine/useBoxedWine"; import AppContainer from "components/system/Apps/AppContainer"; @@ -14,4 +15,4 @@ const BoxedWine: FC = ({ id }) => ( ); -export default BoxedWine; +export default memo(BoxedWine); diff --git a/components/apps/Browser/index.tsx b/components/apps/Browser/index.tsx index a5c246ba..8e825b32 100644 --- a/components/apps/Browser/index.tsx +++ b/components/apps/Browser/index.tsx @@ -1,5 +1,5 @@ import { basename, join, resolve } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import useProxyMenu, { type ProxyState, } from "components/apps/Browser/useProxyMenu"; @@ -499,4 +499,4 @@ const Browser: FC = ({ id }) => { ); }; -export default Browser; +export default memo(Browser); diff --git a/components/apps/ClassiCube/index.tsx b/components/apps/ClassiCube/index.tsx index 9874fb5a..8f60733d 100644 --- a/components/apps/ClassiCube/index.tsx +++ b/components/apps/ClassiCube/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledClassiCube from "components/apps/ClassiCube/StyledClassiCube"; import useClassiCube from "components/apps/ClassiCube/useClassiCube"; import AppContainer from "components/system/Apps/AppContainer"; @@ -11,4 +12,4 @@ const ClassiCube: FC = ({ id }) => ( /> ); -export default ClassiCube; +export default memo(ClassiCube); diff --git a/components/apps/DX-Ball/index.tsx b/components/apps/DX-Ball/index.tsx index a6cedd98..43a3af0f 100644 --- a/components/apps/DX-Ball/index.tsx +++ b/components/apps/DX-Ball/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledDXBall from "components/apps/DX-Ball/StyledDXBall"; import useDXBall from "components/apps/DX-Ball/useDXBall"; import AppContainer from "components/system/Apps/AppContainer"; @@ -10,4 +11,4 @@ const DXBall: FC = ({ id }) => ( ); -export default DXBall; +export default memo(DXBall); diff --git a/components/apps/DevTools/index.tsx b/components/apps/DevTools/index.tsx index f2d130e9..0caef6e4 100644 --- a/components/apps/DevTools/index.tsx +++ b/components/apps/DevTools/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledDevTools from "components/apps/DevTools/StyledDevTools"; import useEruda from "components/apps/DevTools/useEruda"; import AppContainer from "components/system/Apps/AppContainer"; @@ -9,4 +10,4 @@ const DevTools: FC = ({ id }) => ( ); -export default DevTools; +export default memo(DevTools); diff --git a/components/apps/Emulator/index.tsx b/components/apps/Emulator/index.tsx index 51dc208a..f733e080 100644 --- a/components/apps/Emulator/index.tsx +++ b/components/apps/Emulator/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledEmulator from "components/apps/Emulator/StyledEmulator"; import useEmulator from "components/apps/Emulator/useEmulator"; import AppContainer from "components/system/Apps/AppContainer"; @@ -11,4 +12,4 @@ const Emulator: FC = ({ id }) => ( /> ); -export default Emulator; +export default memo(Emulator); diff --git a/components/apps/FileExplorer/AddressBar.tsx b/components/apps/FileExplorer/AddressBar.tsx index fe8e0e48..9d127d6d 100644 --- a/components/apps/FileExplorer/AddressBar.tsx +++ b/components/apps/FileExplorer/AddressBar.tsx @@ -1,5 +1,5 @@ import { basename } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { GoTo, Refresh } from "components/apps/FileExplorer/NavigationIcons"; import StyledAddressBar from "components/apps/FileExplorer/StyledAddressBar"; import useAddressBarContextMenu from "components/apps/FileExplorer/useAddressBarContextMenu"; @@ -140,4 +140,4 @@ const AddressBar: FCWithRef = ({ ); }; -export default AddressBar; +export default memo(AddressBar); diff --git a/components/apps/FileExplorer/Navigation.tsx b/components/apps/FileExplorer/Navigation.tsx index bd388427..a81dd90e 100644 --- a/components/apps/FileExplorer/Navigation.tsx +++ b/components/apps/FileExplorer/Navigation.tsx @@ -1,5 +1,5 @@ import { basename, dirname } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import AddressBar from "components/apps/FileExplorer/AddressBar"; import { Back, @@ -158,4 +158,4 @@ const Navigation: FC = ({ ); }; -export default Navigation; +export default memo(Navigation); diff --git a/components/apps/FileExplorer/index.tsx b/components/apps/FileExplorer/index.tsx index 7bf9b413..b02c79c7 100644 --- a/components/apps/FileExplorer/index.tsx +++ b/components/apps/FileExplorer/index.tsx @@ -1,5 +1,5 @@ import { basename } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import Navigation from "components/apps/FileExplorer/Navigation"; import StyledFileExplorer from "components/apps/FileExplorer/StyledFileExplorer"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; @@ -135,4 +135,4 @@ const FileExplorer: FC = ({ id }) => { null; }; -export default FileExplorer; +export default memo(FileExplorer); diff --git a/components/apps/IRC/index.tsx b/components/apps/IRC/index.tsx index b21644b3..2b963231 100644 --- a/components/apps/IRC/index.tsx +++ b/components/apps/IRC/index.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef, useState } from "react"; +import { memo, useEffect, useRef, useState } from "react"; import { getNetworkConfig } from "components/apps/IRC/config"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledLoading from "components/system/Apps/StyledLoading"; @@ -87,4 +87,4 @@ const IRC: FC = ({ id }) => { ); }; -export default IRC; +export default memo(IRC); diff --git a/components/apps/JSDOS/index.tsx b/components/apps/JSDOS/index.tsx index 9dda001b..868bfd21 100644 --- a/components/apps/JSDOS/index.tsx +++ b/components/apps/JSDOS/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledJSDOS from "components/apps/JSDOS/StyledJSDOS"; import useJSDOS from "components/apps/JSDOS/useJSDOS"; import AppContainer from "components/system/Apps/AppContainer"; @@ -7,4 +8,4 @@ const JSDOS: FC = ({ id }) => ( ); -export default JSDOS; +export default memo(JSDOS); diff --git a/components/apps/Marked/index.tsx b/components/apps/Marked/index.tsx index ddaabd13..503cb7aa 100644 --- a/components/apps/Marked/index.tsx +++ b/components/apps/Marked/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledMarked from "components/apps/Marked/StyledMarked"; import useMarked from "components/apps/Marked/useMarked"; import AppContainer from "components/system/Apps/AppContainer"; @@ -9,4 +10,4 @@ const Marked: FC = ({ id }) => ( ); -export default Marked; +export default memo(Marked); diff --git a/components/apps/Messenger/ChatLog.tsx b/components/apps/Messenger/ChatLog.tsx index ca91b3fd..40f09232 100644 --- a/components/apps/Messenger/ChatLog.tsx +++ b/components/apps/Messenger/ChatLog.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import dynamic from "next/dynamic"; import ChatProfile from "components/apps/Messenger/ChatProfile"; import { @@ -114,4 +114,4 @@ const ChatLog: FC<{ recipientPublicKey: string }> = ({ ); }; -export default ChatLog; +export default memo(ChatLog); diff --git a/components/apps/Messenger/ChatProfile.tsx b/components/apps/Messenger/ChatProfile.tsx index d0d192f4..70d69c39 100644 --- a/components/apps/Messenger/ChatProfile.tsx +++ b/components/apps/Messenger/ChatProfile.tsx @@ -1,4 +1,4 @@ -import { useRef } from "react"; +import { memo, useRef } from "react"; import Profile from "components/apps/Messenger/Profile"; import StyledChatProfile from "components/apps/Messenger/StyledChatProfile"; import { useNostrProfile } from "components/apps/Messenger/hooks"; @@ -30,4 +30,4 @@ const ChatProfile: FC<{ publicKey: string }> = ({ publicKey }) => { ); }; -export default ChatProfile; +export default memo(ChatProfile); diff --git a/components/apps/Messenger/Contact.tsx b/components/apps/Messenger/Contact.tsx index 7d4b4efe..3a202960 100644 --- a/components/apps/Messenger/Contact.tsx +++ b/components/apps/Messenger/Contact.tsx @@ -1,4 +1,4 @@ -import { useEffect, useMemo, useRef, useState } from "react"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import { type Event } from "nostr-tools"; import Profile from "components/apps/Messenger/Profile"; import { @@ -104,4 +104,4 @@ const Contact: FC = ({ ); }; -export default Contact; +export default memo(Contact); diff --git a/components/apps/Messenger/GetMoreMessages.tsx b/components/apps/Messenger/GetMoreMessages.tsx index a9dc903d..b8fd9fae 100644 --- a/components/apps/Messenger/GetMoreMessages.tsx +++ b/components/apps/Messenger/GetMoreMessages.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { memo, useState } from "react"; import { type TimeScale, useHistoryContext, @@ -57,4 +57,4 @@ const GetMoreMessages: FC<{ ); }; -export default GetMoreMessages; +export default memo(GetMoreMessages); diff --git a/components/apps/Messenger/NostrContext.tsx b/components/apps/Messenger/NostrContext.tsx index f3914261..27dd09dc 100644 --- a/components/apps/Messenger/NostrContext.tsx +++ b/components/apps/Messenger/NostrContext.tsx @@ -1,6 +1,7 @@ import { type Event as NostrEvent, type Relay, relayInit } from "nostr-tools"; import { createContext, + memo, useCallback, useContext, useEffect, @@ -24,7 +25,7 @@ const NostrContext = createContext({ export const useNostr = (): NostrContextType => useContext(NostrContext); -export const NostrProvider: FC<{ relayUrls: string[] }> = ({ +const NostrProviderFC: FC<{ relayUrls: string[] }> = ({ children, relayUrls, }) => { @@ -105,3 +106,5 @@ export const NostrProvider: FC<{ relayUrls: string[] }> = ({ ); }; + +export const NostrProvider = memo(NostrProviderFC); diff --git a/components/apps/Messenger/Profile.tsx b/components/apps/Messenger/Profile.tsx index 7f17173b..89652fe5 100644 --- a/components/apps/Messenger/Profile.tsx +++ b/components/apps/Messenger/Profile.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { memo, useState } from "react"; import { Avatar, Verified } from "components/apps/Messenger/Icons"; import StyledProfile from "components/apps/Messenger/StyledProfile"; import { useNip05Domain } from "components/apps/Messenger/hooks"; @@ -53,4 +53,4 @@ const Profile: FC = ({ ); }; -export default Profile; +export default memo(Profile); diff --git a/components/apps/Messenger/ProfileBanner.tsx b/components/apps/Messenger/ProfileBanner.tsx index d3668980..22b745f9 100644 --- a/components/apps/Messenger/ProfileBanner.tsx +++ b/components/apps/Messenger/ProfileBanner.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo } from "react"; +import { memo, useCallback, useMemo } from "react"; import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; import { Back, Write } from "components/apps/Messenger/Icons"; import { useNostr } from "components/apps/Messenger/NostrContext"; @@ -167,4 +167,4 @@ const ProfileBanner: FC = ({ ); }; -export default ProfileBanner; +export default memo(ProfileBanner); diff --git a/components/apps/Messenger/SanitizedContent.tsx b/components/apps/Messenger/SanitizedContent.tsx index 0f61c5b1..ba21e1ad 100644 --- a/components/apps/Messenger/SanitizedContent.tsx +++ b/components/apps/Messenger/SanitizedContent.tsx @@ -1,5 +1,5 @@ import DOMPurify from "dompurify"; -import { useMemo } from "react"; +import { memo, useMemo } from "react"; import { convertImageLinksToHtml, convertNewLinesToBreaks, @@ -30,4 +30,4 @@ const SanitizedContent: FC<{ content: string; decrypted: boolean }> = ({ ); }; -export default SanitizedContent; +export default memo(SanitizedContent); diff --git a/components/apps/Messenger/SendMessage.tsx b/components/apps/Messenger/SendMessage.tsx index d6c3db51..15c3ed8b 100644 --- a/components/apps/Messenger/SendMessage.tsx +++ b/components/apps/Messenger/SendMessage.tsx @@ -1,4 +1,4 @@ -import { useCallback, useRef, useState } from "react"; +import { memo, useCallback, useRef, useState } from "react"; import { Send } from "components/apps/Messenger/Icons"; import { useMessageContext } from "components/apps/Messenger/MessageContext"; import { useNostr } from "components/apps/Messenger/NostrContext"; @@ -80,4 +80,4 @@ const SendMessage: FC<{ recipientPublicKey: string }> = ({ ); }; -export default SendMessage; +export default memo(SendMessage); diff --git a/components/apps/Messenger/To.tsx b/components/apps/Messenger/To.tsx index 0ff78cd5..e2a0d29e 100644 --- a/components/apps/Messenger/To.tsx +++ b/components/apps/Messenger/To.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledTo from "components/apps/Messenger/StyledTo"; type ToProps = { setRecipientKey: (key: string) => boolean }; @@ -23,4 +24,4 @@ const To: FC = ({ setRecipientKey }) => ( ); -export default To; +export default memo(To); diff --git a/components/apps/Messenger/index.tsx b/components/apps/Messenger/index.tsx index ece3bd11..802b6acc 100644 --- a/components/apps/Messenger/index.tsx +++ b/components/apps/Messenger/index.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { type Event } from "nostr-tools"; import { AnimatePresence } from "motion/react"; import ChatLog from "components/apps/Messenger/ChatLog"; @@ -227,4 +227,4 @@ const Messenger: FC = ({ id }) => { ); }; -export default Messenger; +export default memo(Messenger); diff --git a/components/apps/MonacoEditor/StatusBar.tsx b/components/apps/MonacoEditor/StatusBar.tsx index 8536a817..9c565275 100644 --- a/components/apps/MonacoEditor/StatusBar.tsx +++ b/components/apps/MonacoEditor/StatusBar.tsx @@ -1,5 +1,5 @@ import { basename, dirname } from "path"; -import { useEffect, useState } from "react"; +import { memo, useEffect, useState } from "react"; import { ErrorIcon, InfoIcon, @@ -188,4 +188,4 @@ const StatusBar: FC = ({ id }) => { ); }; -export default StatusBar; +export default memo(StatusBar); diff --git a/components/apps/MonacoEditor/index.tsx b/components/apps/MonacoEditor/index.tsx index b82c0367..47fedb31 100644 --- a/components/apps/MonacoEditor/index.tsx +++ b/components/apps/MonacoEditor/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StatusBar from "components/apps/MonacoEditor/StatusBar"; import StyledMonacoEditor from "components/apps/MonacoEditor/StyledMonacoEditor"; import useMonaco from "components/apps/MonacoEditor/useMonaco"; @@ -15,4 +16,4 @@ const MonacoEditor: FC = ({ id }) => ( ); -export default MonacoEditor; +export default memo(MonacoEditor); diff --git a/components/apps/PDF/Controls.tsx b/components/apps/PDF/Controls.tsx index f30d1155..bc8297e2 100644 --- a/components/apps/PDF/Controls.tsx +++ b/components/apps/PDF/Controls.tsx @@ -1,4 +1,5 @@ import { basename } from "path"; +import { memo } from "react"; import { Add, Download, @@ -158,4 +159,4 @@ const Controls: FC = ({ id }) => { ); }; -export default Controls; +export default memo(Controls); diff --git a/components/apps/PDF/Page.tsx b/components/apps/PDF/Page.tsx index eee75062..40d106b6 100644 --- a/components/apps/PDF/Page.tsx +++ b/components/apps/PDF/Page.tsx @@ -1,4 +1,4 @@ -import { useRef, useEffect } from "react"; +import { useRef, useEffect, memo } from "react"; import { useProcesses } from "contexts/process"; type PageProps = { @@ -47,4 +47,4 @@ const Page: FC = ({ canvas, id, page }) => { return
  • ; }; -export default Page; +export default memo(Page); diff --git a/components/apps/PDF/index.tsx b/components/apps/PDF/index.tsx index 9ac3b970..ae590c38 100644 --- a/components/apps/PDF/index.tsx +++ b/components/apps/PDF/index.tsx @@ -1,4 +1,4 @@ -import { useRef } from "react"; +import { memo, useRef } from "react"; import Page from "components/apps/PDF/Page"; import Controls from "components/apps/PDF/Controls"; import StyledPDF from "components/apps/PDF/StyledPDF"; @@ -29,4 +29,4 @@ const PDF: FC = ({ id }) => { ); }; -export default PDF; +export default memo(PDF); diff --git a/components/apps/Paint/index.tsx b/components/apps/Paint/index.tsx index 95fc60bd..c4e3a3b8 100644 --- a/components/apps/Paint/index.tsx +++ b/components/apps/Paint/index.tsx @@ -1,5 +1,5 @@ import { basename, dirname, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import StyledPaint from "components/apps/Paint/StyledPaint"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledLoading from "components/system/Apps/StyledLoading"; @@ -183,4 +183,4 @@ const Paint: FC = ({ id }) => { ); }; -export default Paint; +export default memo(Paint); diff --git a/components/apps/Photos/index.tsx b/components/apps/Photos/index.tsx index d6d16f55..176e78ac 100644 --- a/components/apps/Photos/index.tsx +++ b/components/apps/Photos/index.tsx @@ -1,5 +1,5 @@ import { basename, dirname, extname, join } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import { ExitFullscreen, Fullscreen, @@ -187,4 +187,4 @@ const Photos: FC = ({ id }) => { ); }; -export default Photos; +export default memo(Photos); diff --git a/components/apps/Quake3/index.tsx b/components/apps/Quake3/index.tsx index f3738c43..d722b569 100644 --- a/components/apps/Quake3/index.tsx +++ b/components/apps/Quake3/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import useQuake3 from "components/apps/Quake3/useQuake3"; import AppContainer from "components/system/Apps/AppContainer"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; @@ -6,4 +7,4 @@ const Quake3: FC = ({ id }) => ( ); -export default Quake3; +export default memo(Quake3); diff --git a/components/apps/Ruffle/index.tsx b/components/apps/Ruffle/index.tsx index 1eabe813..28483f3f 100644 --- a/components/apps/Ruffle/index.tsx +++ b/components/apps/Ruffle/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledRuffle from "components/apps/Ruffle/StyledRuffle"; import useRuffle from "components/apps/Ruffle/useRuffle"; import AppContainer from "components/system/Apps/AppContainer"; @@ -7,4 +8,4 @@ const Ruffle: FC = ({ id }) => ( ); -export default Ruffle; +export default memo(Ruffle); diff --git a/components/apps/SpaceCadet/index.tsx b/components/apps/SpaceCadet/index.tsx index 3cfd2df3..1abef39b 100644 --- a/components/apps/SpaceCadet/index.tsx +++ b/components/apps/SpaceCadet/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledSpaceCadet from "components/apps/SpaceCadet/StyledSpaceCadet"; import useSpaceCadet from "components/apps/SpaceCadet/useSpaceCadet"; import AppContainer from "components/system/Apps/AppContainer"; @@ -11,4 +12,4 @@ const SpaceCadet: FC = ({ id }) => ( /> ); -export default SpaceCadet; +export default memo(SpaceCadet); diff --git a/components/apps/StableDiffusion/index.tsx b/components/apps/StableDiffusion/index.tsx index 21af9500..5731f954 100644 --- a/components/apps/StableDiffusion/index.tsx +++ b/components/apps/StableDiffusion/index.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import useCanvasContextMenu from "components/apps/StableDiffusion/useCanvasContextMenu"; import StyledStableDiffusion from "components/apps/StableDiffusion/StyledStableDiffusion"; import { @@ -125,4 +125,4 @@ const StableDiffusion: FC = () => { ); }; -export default StableDiffusion; +export default memo(StableDiffusion); diff --git a/components/apps/Terminal/index.tsx b/components/apps/Terminal/index.tsx index f8381f90..d66a3406 100644 --- a/components/apps/Terminal/index.tsx +++ b/components/apps/Terminal/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledTerminal from "components/apps/Terminal/StyledTerminal"; import useTerminal from "components/apps/Terminal/useTerminal"; import AppContainer from "components/system/Apps/AppContainer"; @@ -11,4 +12,4 @@ const Terminal: FC = ({ id }) => ( /> ); -export default Terminal; +export default memo(Terminal); diff --git a/components/apps/Tic80/index.tsx b/components/apps/Tic80/index.tsx index 9e77e20d..3817196d 100644 --- a/components/apps/Tic80/index.tsx +++ b/components/apps/Tic80/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import useTic80 from "components/apps/Tic80/useTic80"; import AppContainer from "components/system/Apps/AppContainer"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; @@ -6,4 +7,4 @@ const Tic80: FC = ({ id }) => ( ); -export default Tic80; +export default memo(Tic80); diff --git a/components/apps/TinyMCE/index.tsx b/components/apps/TinyMCE/index.tsx index cf9f6a09..a23266fb 100644 --- a/components/apps/TinyMCE/index.tsx +++ b/components/apps/TinyMCE/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledTinyMceEditor from "components/apps/TinyMCE/StyledTinyMceEditor"; import useTinyMCE from "components/apps/TinyMCE/useTinyMCE"; import AppContainer from "components/system/Apps/AppContainer"; @@ -13,4 +14,4 @@ const TinyMCE: FC = ({ id }) => ( ); -export default TinyMCE; +export default memo(TinyMCE); diff --git a/components/apps/V86/index.tsx b/components/apps/V86/index.tsx index 7b4aaeaa..ed3dad20 100644 --- a/components/apps/V86/index.tsx +++ b/components/apps/V86/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledV86 from "components/apps/V86/StyledV86"; import useV86 from "components/apps/V86/useV86"; import AppContainer from "components/system/Apps/AppContainer"; @@ -11,4 +12,4 @@ const V86: FC = ({ id }) => ( ); -export default V86; +export default memo(V86); diff --git a/components/apps/VideoPlayer/index.tsx b/components/apps/VideoPlayer/index.tsx index 9ae2d35f..fc838971 100644 --- a/components/apps/VideoPlayer/index.tsx +++ b/components/apps/VideoPlayer/index.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledVideoPlayer from "components/apps/VideoPlayer/StyledVideoPlayer"; import useVideoPlayer from "components/apps/VideoPlayer/useVideoPlayer"; import AppContainer from "components/system/Apps/AppContainer"; @@ -15,4 +16,4 @@ const VideoPlayer: FC = ({ id }) => ( ); -export default VideoPlayer; +export default memo(VideoPlayer); diff --git a/components/apps/Vim/index.tsx b/components/apps/Vim/index.tsx index 4ba711fd..0d25a526 100644 --- a/components/apps/Vim/index.tsx +++ b/components/apps/Vim/index.tsx @@ -1,5 +1,5 @@ import { basename, dirname, extname } from "path"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import StyledVim from "components/apps/Vim/StyledVim"; import { type QueueItem } from "components/apps/Vim/types"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; @@ -142,4 +142,4 @@ const Vim: FC = ({ id }) => { ); }; -export default Vim; +export default memo(Vim); diff --git a/components/apps/Webamp/index.tsx b/components/apps/Webamp/index.tsx index d831081c..172260ea 100644 --- a/components/apps/Webamp/index.tsx +++ b/components/apps/Webamp/index.tsx @@ -1,6 +1,6 @@ import { basename, extname } from "path"; import { type Options } from "webamp"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import StyledWebamp from "components/apps/Webamp/StyledWebamp"; import { cleanBufferOnSkinLoad, @@ -112,4 +112,4 @@ const Webamp: FC = ({ id }) => { ); }; -export default Webamp; +export default memo(Webamp); diff --git a/components/system/Desktop/index.tsx b/components/system/Desktop/index.tsx index c9409778..5a6c2feb 100644 --- a/components/system/Desktop/index.tsx +++ b/components/system/Desktop/index.tsx @@ -1,4 +1,4 @@ -import { useRef } from "react"; +import { memo, useRef } from "react"; import StyledDesktop from "components/system/Desktop/StyledDesktop"; import useWallpaper from "components/system/Desktop/Wallpapers/useWallpaper"; import FileManager from "components/system/Files/FileManager"; @@ -24,4 +24,4 @@ const Desktop: FC = ({ children }) => { ); }; -export default Desktop; +export default memo(Desktop); diff --git a/components/system/Dialogs/Properties/Buttons.tsx b/components/system/Dialogs/Properties/Buttons.tsx index ab215c3e..583deeea 100644 --- a/components/system/Dialogs/Properties/Buttons.tsx +++ b/components/system/Dialogs/Properties/Buttons.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import StyledButton from "components/system/Dialogs/StyledButton"; import { useProcesses } from "contexts/process"; @@ -18,4 +19,4 @@ const Buttons: FC = ({ id, onClick }) => { ); }; -export default Buttons; +export default memo(Buttons); diff --git a/components/system/Dialogs/Properties/index.tsx b/components/system/Dialogs/Properties/index.tsx index 6d9e159f..bd5b99b7 100644 --- a/components/system/Dialogs/Properties/index.tsx +++ b/components/system/Dialogs/Properties/index.tsx @@ -1,5 +1,5 @@ import { basename, extname } from "path"; -import { useEffect, useMemo, useRef, useState } from "react"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import dynamic from "next/dynamic"; import useCloseOnEscape from "components/system/Dialogs/useCloseOnEscape"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; @@ -143,4 +143,4 @@ const Properties: FC = ({ id }) => { ); }; -export default Properties; +export default memo(Properties); diff --git a/components/system/Dialogs/Run/index.tsx b/components/system/Dialogs/Run/index.tsx index 19662d98..84c8fc0a 100644 --- a/components/system/Dialogs/Run/index.tsx +++ b/components/system/Dialogs/Run/index.tsx @@ -1,5 +1,5 @@ import { basename, join } from "path"; -import { useCallback, useLayoutEffect, useRef, useState } from "react"; +import { memo, useCallback, useLayoutEffect, useRef, useState } from "react"; import { parseCommand } from "components/apps/Terminal/functions"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledRun from "components/system/Dialogs/Run/StyledRun"; @@ -315,4 +315,4 @@ const Run: FC = ({ id }) => { ); }; -export default Run; +export default memo(Run); diff --git a/components/system/Dialogs/ScreenSaver/index.tsx b/components/system/Dialogs/ScreenSaver/index.tsx index 58910f5d..728b1bbb 100644 --- a/components/system/Dialogs/ScreenSaver/index.tsx +++ b/components/system/Dialogs/ScreenSaver/index.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import StyledScreenSaver from "components/system/Dialogs/ScreenSaver/StyledScreenSaver"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { useFileSystem } from "contexts/fileSystem"; @@ -85,4 +85,4 @@ const ScreenSaver: FC = ({ id }) => { ); }; -export default ScreenSaver; +export default memo(ScreenSaver); diff --git a/components/system/Dialogs/Transfer/index.tsx b/components/system/Dialogs/Transfer/index.tsx index f22029e5..83bc74d5 100644 --- a/components/system/Dialogs/Transfer/index.tsx +++ b/components/system/Dialogs/Transfer/index.tsx @@ -1,5 +1,5 @@ import { basename, dirname } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import useCloseOnEscape from "components/system/Dialogs/useCloseOnEscape"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledButton from "components/system/Dialogs/StyledButton"; @@ -199,4 +199,4 @@ const Transfer: FC = ({ id }) => { ); }; -export default Transfer; +export default memo(Transfer); diff --git a/components/system/Files/FileEntry/RenameBox.tsx b/components/system/Files/FileEntry/RenameBox.tsx index 5d228eed..5c729bf1 100644 --- a/components/system/Files/FileEntry/RenameBox.tsx +++ b/components/system/Files/FileEntry/RenameBox.tsx @@ -1,6 +1,6 @@ import { extname } from "path"; import { useTheme } from "styled-components"; -import { useCallback, useLayoutEffect, useMemo, useRef } from "react"; +import { memo, useCallback, useLayoutEffect, useMemo, useRef } from "react"; import { type FileManagerViewNames } from "components/system/Files/Views"; import { measureText } from "components/system/Files/FileEntry/functions"; import StyledRenameBox from "components/system/Files/FileEntry/StyledRenameBox"; @@ -86,4 +86,4 @@ const RenameBox: FC = ({ ); }; -export default RenameBox; +export default memo(RenameBox); diff --git a/components/system/Files/FileEntry/index.tsx b/components/system/Files/FileEntry/index.tsx index 0de3f698..a127fe6b 100644 --- a/components/system/Files/FileEntry/index.tsx +++ b/components/system/Files/FileEntry/index.tsx @@ -1,6 +1,7 @@ import { basename, dirname, extname, join } from "path"; import { useTheme } from "styled-components"; import { + memo, useCallback, useEffect, useLayoutEffect, @@ -672,4 +673,4 @@ const FileEntry: FC = ({ ); }; -export default FileEntry; +export default memo(FileEntry); diff --git a/components/system/Files/FileManager/Selection/StyledSelection.tsx b/components/system/Files/FileManager/Selection/StyledSelection.tsx index d29aab48..bd51a5ce 100644 --- a/components/system/Files/FileManager/Selection/StyledSelection.tsx +++ b/components/system/Files/FileManager/Selection/StyledSelection.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import styled, { createGlobalStyle } from "styled-components"; const NoGlobalPointerEvents = createGlobalStyle` @@ -20,4 +21,4 @@ const StyledSelection: FC> = (props) => ( ); -export default StyledSelection; +export default memo(StyledSelection); diff --git a/components/system/Files/FileManager/StatusBar.tsx b/components/system/Files/FileManager/StatusBar.tsx index 9f2428e4..18d93927 100644 --- a/components/system/Files/FileManager/StatusBar.tsx +++ b/components/system/Files/FileManager/StatusBar.tsx @@ -1,5 +1,6 @@ import { join } from "path"; import { + memo, useCallback, useEffect, useLayoutEffect, @@ -138,4 +139,4 @@ const StatusBar: FC = ({ ); }; -export default StatusBar; +export default memo(StatusBar); diff --git a/components/system/Menu/MenuItemEntry.tsx b/components/system/Menu/MenuItemEntry.tsx index e7b3ed47..a36c4ab2 100644 --- a/components/system/Menu/MenuItemEntry.tsx +++ b/components/system/Menu/MenuItemEntry.tsx @@ -1,6 +1,7 @@ import { useTheme } from "styled-components"; import { type Position } from "react-rnd"; import { + memo, useCallback, useEffect, useLayoutEffect, @@ -186,4 +187,4 @@ const MenuItemEntry: FC = ({ ); }; -export default MenuItemEntry; +export default memo(MenuItemEntry); diff --git a/components/system/Menu/index.tsx b/components/system/Menu/index.tsx index 0b4e5c18..3a1897d3 100644 --- a/components/system/Menu/index.tsx +++ b/components/system/Menu/index.tsx @@ -1,5 +1,5 @@ import { type Position } from "react-rnd"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useRef, useState } from "react"; import MenuItemEntry from "components/system/Menu/MenuItemEntry"; import StyledMenu from "components/system/Menu/StyledMenu"; import menuTransition from "components/system/Menu/menuTransition"; @@ -191,4 +191,4 @@ const Menu: FC = ({ subMenu }) => { null; }; -export default Menu; +export default memo(Menu); diff --git a/components/system/StartMenu/Sidebar/SidebarButton.tsx b/components/system/StartMenu/Sidebar/SidebarButton.tsx index fc1bf993..fa4ba59e 100644 --- a/components/system/StartMenu/Sidebar/SidebarButton.tsx +++ b/components/system/StartMenu/Sidebar/SidebarButton.tsx @@ -1,4 +1,4 @@ -import { useCallback } from "react"; +import { memo, useCallback } from "react"; import StyledSidebarButton from "components/system/StartMenu/Sidebar/StyledSidebarButton"; import { spotlightEffect } from "utils/spotlightEffect"; import { hasFinePointer } from "utils/functions"; @@ -38,4 +38,4 @@ const SidebarButtonComponent: FC = ({ ); -export default SidebarButtonComponent; +export default memo(SidebarButtonComponent); diff --git a/components/system/StartMenu/index.tsx b/components/system/StartMenu/index.tsx index 4aee6f89..f5faca2b 100644 --- a/components/system/StartMenu/index.tsx +++ b/components/system/StartMenu/index.tsx @@ -1,5 +1,5 @@ import { useTheme } from "styled-components"; -import { useCallback, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useMemo, useRef, useState } from "react"; import { type Variant } from "motion/react"; import FileManager from "components/system/Files/FileManager"; import Sidebar from "components/system/StartMenu/Sidebar"; @@ -119,4 +119,4 @@ const StartMenu: FC = ({ toggleStartMenu }) => { ); }; -export default StartMenu; +export default memo(StartMenu); diff --git a/components/system/Taskbar/AI/AIButton.tsx b/components/system/Taskbar/AI/AIButton.tsx index 26d6c659..49bc0078 100644 --- a/components/system/Taskbar/AI/AIButton.tsx +++ b/components/system/Taskbar/AI/AIButton.tsx @@ -1,3 +1,4 @@ +import { memo } from "react"; import { importAIChat } from "components/system/Taskbar/functions"; import { AIIcon } from "components/system/Taskbar/AI/icons"; import StyledAIButton from "components/system/Taskbar/AI/StyledAIButton"; @@ -32,4 +33,4 @@ const AIButton: FC = ({ aiVisible, toggleAI }) => { ); }; -export default AIButton; +export default memo(AIButton); diff --git a/components/system/Taskbar/AI/AIChat.tsx b/components/system/Taskbar/AI/AIChat.tsx index 1983f341..29af2dfa 100644 --- a/components/system/Taskbar/AI/AIChat.tsx +++ b/components/system/Taskbar/AI/AIChat.tsx @@ -1,5 +1,5 @@ import { useTheme } from "styled-components"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { escapeHtml, formatWebLlmProgress, @@ -664,4 +664,4 @@ const AIChat: FC = ({ toggleAI }) => { ); }; -export default AIChat; +export default memo(AIChat); diff --git a/components/system/Taskbar/Search/Details.tsx b/components/system/Taskbar/Search/Details.tsx index 372a6bbb..1800b244 100644 --- a/components/system/Taskbar/Search/Details.tsx +++ b/components/system/Taskbar/Search/Details.tsx @@ -1,5 +1,5 @@ import { basename, dirname } from "path"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import { getModifiedTime } from "components/system/Files/FileEntry/functions"; import { UNKNOWN_ICON } from "components/system/Files/FileManager/icons"; @@ -157,4 +157,4 @@ const Details: FC<{ ); }; -export default Details; +export default memo(Details); diff --git a/components/system/Taskbar/Search/ResultEntry.tsx b/components/system/Taskbar/Search/ResultEntry.tsx index 224018a9..a2c1d0ae 100644 --- a/components/system/Taskbar/Search/ResultEntry.tsx +++ b/components/system/Taskbar/Search/ResultEntry.tsx @@ -1,5 +1,5 @@ import { basename, extname } from "path"; -import { useEffect, useMemo, useRef, useState } from "react"; +import { memo, useEffect, useMemo, useRef, useState } from "react"; import type Stats from "browserfs/dist/node/core/node_fs_stats"; import useResultsContextMenu from "components/system/Taskbar/Search/useResultsContextMenu"; import { @@ -210,4 +210,4 @@ const ResultEntry: FC = ({ ); }; -export default ResultEntry; +export default memo(ResultEntry); diff --git a/components/system/Taskbar/Search/ResultSection.tsx b/components/system/Taskbar/Search/ResultSection.tsx index 54534672..d562cabb 100644 --- a/components/system/Taskbar/Search/ResultSection.tsx +++ b/components/system/Taskbar/Search/ResultSection.tsx @@ -1,4 +1,4 @@ -import { useMemo } from "react"; +import { memo, useMemo } from "react"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; import { NO_RESULTS, type TabName } from "components/system/Taskbar/Search"; import ResultEntry from "components/system/Taskbar/Search/ResultEntry"; @@ -72,4 +72,4 @@ const ResultSection: FC = ({ ); }; -export default ResultSection; +export default memo(ResultSection); diff --git a/components/system/Taskbar/Search/SearchButton.tsx b/components/system/Taskbar/Search/SearchButton.tsx index 62ece0be..fcbebfae 100644 --- a/components/system/Taskbar/Search/SearchButton.tsx +++ b/components/system/Taskbar/Search/SearchButton.tsx @@ -45,4 +45,4 @@ const SearchButton: FC = ({ ); }; -export default SearchButton; +export default memo(SearchButton); diff --git a/components/system/Taskbar/Search/index.tsx b/components/system/Taskbar/Search/index.tsx index f3cd8cb4..42671bff 100644 --- a/components/system/Taskbar/Search/index.tsx +++ b/components/system/Taskbar/Search/index.tsx @@ -1,6 +1,6 @@ import { basename, extname } from "path"; import { useTheme } from "styled-components"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { m as motion } from "motion/react"; import dynamic from "next/dynamic"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; @@ -487,4 +487,4 @@ const Search: FC = ({ toggleSearch }) => { ); }; -export default Search; +export default memo(Search); diff --git a/components/system/Taskbar/StartButton/index.tsx b/components/system/Taskbar/StartButton/index.tsx index 34a5d259..a9f2172f 100644 --- a/components/system/Taskbar/StartButton/index.tsx +++ b/components/system/Taskbar/StartButton/index.tsx @@ -1,4 +1,4 @@ -import { useCallback } from "react"; +import { memo, useCallback } from "react"; import StartButtonIcon from "components/system/Taskbar/StartButton/StartButtonIcon"; import StyledTaskbarButton from "components/system/Taskbar/StyledTaskbarButton"; import { @@ -57,4 +57,4 @@ const StartButton: FC = ({ ); }; -export default StartButton; +export default memo(StartButton); diff --git a/components/system/Window/RndWindow/index.tsx b/components/system/Window/RndWindow/index.tsx index 301676ac..cb0bddea 100644 --- a/components/system/Window/RndWindow/index.tsx +++ b/components/system/Window/RndWindow/index.tsx @@ -1,5 +1,5 @@ import { Rnd } from "react-rnd"; -import { useCallback, useEffect, useMemo, useRef } from "react"; +import { memo, useCallback, useEffect, useMemo, useRef } from "react"; import useRnd from "components/system/Window/RndWindow/useRnd"; import { useProcesses } from "contexts/process"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants"; @@ -71,4 +71,4 @@ const RndWindow: FC = ({ children, id, zIndex }) => { ); }; -export default RndWindow; +export default memo(RndWindow); diff --git a/components/system/Window/index.tsx b/components/system/Window/index.tsx index b64ab6eb..9944fc26 100644 --- a/components/system/Window/index.tsx +++ b/components/system/Window/index.tsx @@ -1,4 +1,4 @@ -import { useCallback } from "react"; +import { memo, useCallback } from "react"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import StyledPeekViewport from "components/system/Taskbar/TaskbarEntry/Peek/StyledPeekViewport"; import RndWindow from "components/system/Window/RndWindow"; @@ -52,4 +52,4 @@ const Window: FC = ({ children, id }) => { ); }; -export default Window; +export default memo(Window); diff --git a/pages/_app.tsx b/pages/_app.tsx index 84b743d3..c7288f4f 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,4 +1,5 @@ import { type AppProps } from "next/app"; +import { memo } from "react"; import { ErrorBoundary } from "components/pages/ErrorBoundary"; import Metadata from "components/pages/Metadata"; import StyledApp from "components/pages/StyledApp"; @@ -27,4 +28,4 @@ const App = ({ Component: Index, pageProps }: AppProps): React.ReactElement => ( ); -export default App; +export default memo(App); diff --git a/pages/_error.tsx b/pages/_error.tsx index d2f1bed5..f1074127 100644 --- a/pages/_error.tsx +++ b/pages/_error.tsx @@ -1,7 +1,8 @@ import { type ErrorProps } from "next/error"; +import { memo } from "react"; const PageError = ({ statusCode = 0 }: ErrorProps): React.ReactElement => ( <>Error status code: {statusCode} ); -export default PageError; +export default memo(PageError);