Add memo to everything
Some checks failed
Tests / tests (push) Has been cancelled

This commit is contained in:
Dustin Brett 2025-07-01 09:10:22 -07:00
parent c1cd6b9b94
commit 24c17c0088
67 changed files with 135 additions and 106 deletions

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledBoxedWine from "components/apps/BoxedWine/StyledBoxedWine"; import StyledBoxedWine from "components/apps/BoxedWine/StyledBoxedWine";
import useBoxedWine from "components/apps/BoxedWine/useBoxedWine"; import useBoxedWine from "components/apps/BoxedWine/useBoxedWine";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -14,4 +15,4 @@ const BoxedWine: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default BoxedWine; export default memo(BoxedWine);

View File

@ -1,5 +1,5 @@
import { basename, join, resolve } from "path"; 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, { import useProxyMenu, {
type ProxyState, type ProxyState,
} from "components/apps/Browser/useProxyMenu"; } from "components/apps/Browser/useProxyMenu";
@ -499,4 +499,4 @@ const Browser: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Browser; export default memo(Browser);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledClassiCube from "components/apps/ClassiCube/StyledClassiCube"; import StyledClassiCube from "components/apps/ClassiCube/StyledClassiCube";
import useClassiCube from "components/apps/ClassiCube/useClassiCube"; import useClassiCube from "components/apps/ClassiCube/useClassiCube";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -11,4 +12,4 @@ const ClassiCube: FC<ComponentProcessProps> = ({ id }) => (
/> />
); );
export default ClassiCube; export default memo(ClassiCube);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledDXBall from "components/apps/DX-Ball/StyledDXBall"; import StyledDXBall from "components/apps/DX-Ball/StyledDXBall";
import useDXBall from "components/apps/DX-Ball/useDXBall"; import useDXBall from "components/apps/DX-Ball/useDXBall";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -10,4 +11,4 @@ const DXBall: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default DXBall; export default memo(DXBall);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledDevTools from "components/apps/DevTools/StyledDevTools"; import StyledDevTools from "components/apps/DevTools/StyledDevTools";
import useEruda from "components/apps/DevTools/useEruda"; import useEruda from "components/apps/DevTools/useEruda";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -9,4 +10,4 @@ const DevTools: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default DevTools; export default memo(DevTools);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledEmulator from "components/apps/Emulator/StyledEmulator"; import StyledEmulator from "components/apps/Emulator/StyledEmulator";
import useEmulator from "components/apps/Emulator/useEmulator"; import useEmulator from "components/apps/Emulator/useEmulator";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -11,4 +12,4 @@ const Emulator: FC<ComponentProcessProps> = ({ id }) => (
/> />
); );
export default Emulator; export default memo(Emulator);

View File

@ -1,5 +1,5 @@
import { basename } from "path"; 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 { GoTo, Refresh } from "components/apps/FileExplorer/NavigationIcons";
import StyledAddressBar from "components/apps/FileExplorer/StyledAddressBar"; import StyledAddressBar from "components/apps/FileExplorer/StyledAddressBar";
import useAddressBarContextMenu from "components/apps/FileExplorer/useAddressBarContextMenu"; import useAddressBarContextMenu from "components/apps/FileExplorer/useAddressBarContextMenu";
@ -140,4 +140,4 @@ const AddressBar: FCWithRef<HTMLInputElement, AddressBarProps> = ({
); );
}; };
export default AddressBar; export default memo(AddressBar);

View File

@ -1,5 +1,5 @@
import { basename, dirname } from "path"; 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 AddressBar from "components/apps/FileExplorer/AddressBar";
import { import {
Back, Back,
@ -158,4 +158,4 @@ const Navigation: FC<NavigationProps> = ({
); );
}; };
export default Navigation; export default memo(Navigation);

View File

@ -1,5 +1,5 @@
import { basename } from "path"; 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 Navigation from "components/apps/FileExplorer/Navigation";
import StyledFileExplorer from "components/apps/FileExplorer/StyledFileExplorer"; import StyledFileExplorer from "components/apps/FileExplorer/StyledFileExplorer";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
@ -135,4 +135,4 @@ const FileExplorer: FC<ComponentProcessProps> = ({ id }) => {
null; null;
}; };
export default FileExplorer; export default memo(FileExplorer);

View File

@ -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 { getNetworkConfig } from "components/apps/IRC/config";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import StyledLoading from "components/system/Apps/StyledLoading"; import StyledLoading from "components/system/Apps/StyledLoading";
@ -87,4 +87,4 @@ const IRC: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default IRC; export default memo(IRC);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledJSDOS from "components/apps/JSDOS/StyledJSDOS"; import StyledJSDOS from "components/apps/JSDOS/StyledJSDOS";
import useJSDOS from "components/apps/JSDOS/useJSDOS"; import useJSDOS from "components/apps/JSDOS/useJSDOS";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -7,4 +8,4 @@ const JSDOS: FC<ComponentProcessProps> = ({ id }) => (
<AppContainer StyledComponent={StyledJSDOS} id={id} useHook={useJSDOS} /> <AppContainer StyledComponent={StyledJSDOS} id={id} useHook={useJSDOS} />
); );
export default JSDOS; export default memo(JSDOS);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledMarked from "components/apps/Marked/StyledMarked"; import StyledMarked from "components/apps/Marked/StyledMarked";
import useMarked from "components/apps/Marked/useMarked"; import useMarked from "components/apps/Marked/useMarked";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -9,4 +10,4 @@ const Marked: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default Marked; export default memo(Marked);

View File

@ -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 dynamic from "next/dynamic";
import ChatProfile from "components/apps/Messenger/ChatProfile"; import ChatProfile from "components/apps/Messenger/ChatProfile";
import { import {
@ -114,4 +114,4 @@ const ChatLog: FC<{ recipientPublicKey: string }> = ({
); );
}; };
export default ChatLog; export default memo(ChatLog);

View File

@ -1,4 +1,4 @@
import { useRef } from "react"; import { memo, useRef } from "react";
import Profile from "components/apps/Messenger/Profile"; import Profile from "components/apps/Messenger/Profile";
import StyledChatProfile from "components/apps/Messenger/StyledChatProfile"; import StyledChatProfile from "components/apps/Messenger/StyledChatProfile";
import { useNostrProfile } from "components/apps/Messenger/hooks"; import { useNostrProfile } from "components/apps/Messenger/hooks";
@ -30,4 +30,4 @@ const ChatProfile: FC<{ publicKey: string }> = ({ publicKey }) => {
); );
}; };
export default ChatProfile; export default memo(ChatProfile);

View File

@ -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 { type Event } from "nostr-tools";
import Profile from "components/apps/Messenger/Profile"; import Profile from "components/apps/Messenger/Profile";
import { import {
@ -104,4 +104,4 @@ const Contact: FC<ContactProps> = ({
); );
}; };
export default Contact; export default memo(Contact);

View File

@ -1,4 +1,4 @@
import { useState } from "react"; import { memo, useState } from "react";
import { import {
type TimeScale, type TimeScale,
useHistoryContext, useHistoryContext,
@ -57,4 +57,4 @@ const GetMoreMessages: FC<{
); );
}; };
export default GetMoreMessages; export default memo(GetMoreMessages);

View File

@ -1,6 +1,7 @@
import { type Event as NostrEvent, type Relay, relayInit } from "nostr-tools"; import { type Event as NostrEvent, type Relay, relayInit } from "nostr-tools";
import { import {
createContext, createContext,
memo,
useCallback, useCallback,
useContext, useContext,
useEffect, useEffect,
@ -24,7 +25,7 @@ const NostrContext = createContext<NostrContextType>({
export const useNostr = (): NostrContextType => useContext(NostrContext); export const useNostr = (): NostrContextType => useContext(NostrContext);
export const NostrProvider: FC<{ relayUrls: string[] }> = ({ const NostrProviderFC: FC<{ relayUrls: string[] }> = ({
children, children,
relayUrls, relayUrls,
}) => { }) => {
@ -105,3 +106,5 @@ export const NostrProvider: FC<{ relayUrls: string[] }> = ({
</NostrContext> </NostrContext>
); );
}; };
export const NostrProvider = memo(NostrProviderFC);

View File

@ -1,4 +1,4 @@
import { useState } from "react"; import { memo, useState } from "react";
import { Avatar, Verified } from "components/apps/Messenger/Icons"; import { Avatar, Verified } from "components/apps/Messenger/Icons";
import StyledProfile from "components/apps/Messenger/StyledProfile"; import StyledProfile from "components/apps/Messenger/StyledProfile";
import { useNip05Domain } from "components/apps/Messenger/hooks"; import { useNip05Domain } from "components/apps/Messenger/hooks";
@ -53,4 +53,4 @@ const Profile: FC<ProfileProps> = ({
); );
}; };
export default Profile; export default memo(Profile);

View File

@ -1,4 +1,4 @@
import { useCallback, useMemo } from "react"; import { memo, useCallback, useMemo } from "react";
import { useHistoryContext } from "components/apps/Messenger/HistoryContext"; import { useHistoryContext } from "components/apps/Messenger/HistoryContext";
import { Back, Write } from "components/apps/Messenger/Icons"; import { Back, Write } from "components/apps/Messenger/Icons";
import { useNostr } from "components/apps/Messenger/NostrContext"; import { useNostr } from "components/apps/Messenger/NostrContext";
@ -167,4 +167,4 @@ const ProfileBanner: FC<ProfileBannerProps> = ({
); );
}; };
export default ProfileBanner; export default memo(ProfileBanner);

View File

@ -1,5 +1,5 @@
import DOMPurify from "dompurify"; import DOMPurify from "dompurify";
import { useMemo } from "react"; import { memo, useMemo } from "react";
import { import {
convertImageLinksToHtml, convertImageLinksToHtml,
convertNewLinesToBreaks, convertNewLinesToBreaks,
@ -30,4 +30,4 @@ const SanitizedContent: FC<{ content: string; decrypted: boolean }> = ({
); );
}; };
export default SanitizedContent; export default memo(SanitizedContent);

View File

@ -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 { Send } from "components/apps/Messenger/Icons";
import { useMessageContext } from "components/apps/Messenger/MessageContext"; import { useMessageContext } from "components/apps/Messenger/MessageContext";
import { useNostr } from "components/apps/Messenger/NostrContext"; import { useNostr } from "components/apps/Messenger/NostrContext";
@ -80,4 +80,4 @@ const SendMessage: FC<{ recipientPublicKey: string }> = ({
); );
}; };
export default SendMessage; export default memo(SendMessage);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledTo from "components/apps/Messenger/StyledTo"; import StyledTo from "components/apps/Messenger/StyledTo";
type ToProps = { setRecipientKey: (key: string) => boolean }; type ToProps = { setRecipientKey: (key: string) => boolean };
@ -23,4 +24,4 @@ const To: FC<ToProps> = ({ setRecipientKey }) => (
</StyledTo> </StyledTo>
); );
export default To; export default memo(To);

View File

@ -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 { type Event } from "nostr-tools";
import { AnimatePresence } from "motion/react"; import { AnimatePresence } from "motion/react";
import ChatLog from "components/apps/Messenger/ChatLog"; import ChatLog from "components/apps/Messenger/ChatLog";
@ -227,4 +227,4 @@ const Messenger: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Messenger; export default memo(Messenger);

View File

@ -1,5 +1,5 @@
import { basename, dirname } from "path"; import { basename, dirname } from "path";
import { useEffect, useState } from "react"; import { memo, useEffect, useState } from "react";
import { import {
ErrorIcon, ErrorIcon,
InfoIcon, InfoIcon,
@ -188,4 +188,4 @@ const StatusBar: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default StatusBar; export default memo(StatusBar);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StatusBar from "components/apps/MonacoEditor/StatusBar"; import StatusBar from "components/apps/MonacoEditor/StatusBar";
import StyledMonacoEditor from "components/apps/MonacoEditor/StyledMonacoEditor"; import StyledMonacoEditor from "components/apps/MonacoEditor/StyledMonacoEditor";
import useMonaco from "components/apps/MonacoEditor/useMonaco"; import useMonaco from "components/apps/MonacoEditor/useMonaco";
@ -15,4 +16,4 @@ const MonacoEditor: FC<ComponentProcessProps> = ({ id }) => (
</> </>
); );
export default MonacoEditor; export default memo(MonacoEditor);

View File

@ -1,4 +1,5 @@
import { basename } from "path"; import { basename } from "path";
import { memo } from "react";
import { import {
Add, Add,
Download, Download,
@ -158,4 +159,4 @@ const Controls: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Controls; export default memo(Controls);

View File

@ -1,4 +1,4 @@
import { useRef, useEffect } from "react"; import { useRef, useEffect, memo } from "react";
import { useProcesses } from "contexts/process"; import { useProcesses } from "contexts/process";
type PageProps = { type PageProps = {
@ -47,4 +47,4 @@ const Page: FC<PageProps> = ({ canvas, id, page }) => {
return <li ref={containerRef} />; return <li ref={containerRef} />;
}; };
export default Page; export default memo(Page);

View File

@ -1,4 +1,4 @@
import { useRef } from "react"; import { memo, useRef } from "react";
import Page from "components/apps/PDF/Page"; import Page from "components/apps/PDF/Page";
import Controls from "components/apps/PDF/Controls"; import Controls from "components/apps/PDF/Controls";
import StyledPDF from "components/apps/PDF/StyledPDF"; import StyledPDF from "components/apps/PDF/StyledPDF";
@ -29,4 +29,4 @@ const PDF: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default PDF; export default memo(PDF);

View File

@ -1,5 +1,5 @@
import { basename, dirname, join } from "path"; 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 StyledPaint from "components/apps/Paint/StyledPaint";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import StyledLoading from "components/system/Apps/StyledLoading"; import StyledLoading from "components/system/Apps/StyledLoading";
@ -183,4 +183,4 @@ const Paint: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Paint; export default memo(Paint);

View File

@ -1,5 +1,5 @@
import { basename, dirname, extname, join } from "path"; import { basename, dirname, extname, join } from "path";
import { useCallback, useEffect, useRef, useState } from "react"; import { memo, useCallback, useEffect, useRef, useState } from "react";
import { import {
ExitFullscreen, ExitFullscreen,
Fullscreen, Fullscreen,
@ -187,4 +187,4 @@ const Photos: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Photos; export default memo(Photos);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import useQuake3 from "components/apps/Quake3/useQuake3"; import useQuake3 from "components/apps/Quake3/useQuake3";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
@ -6,4 +7,4 @@ const Quake3: FC<ComponentProcessProps> = ({ id }) => (
<AppContainer id={id} useHook={useQuake3} /> <AppContainer id={id} useHook={useQuake3} />
); );
export default Quake3; export default memo(Quake3);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledRuffle from "components/apps/Ruffle/StyledRuffle"; import StyledRuffle from "components/apps/Ruffle/StyledRuffle";
import useRuffle from "components/apps/Ruffle/useRuffle"; import useRuffle from "components/apps/Ruffle/useRuffle";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -7,4 +8,4 @@ const Ruffle: FC<ComponentProcessProps> = ({ id }) => (
<AppContainer StyledComponent={StyledRuffle} id={id} useHook={useRuffle} /> <AppContainer StyledComponent={StyledRuffle} id={id} useHook={useRuffle} />
); );
export default Ruffle; export default memo(Ruffle);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledSpaceCadet from "components/apps/SpaceCadet/StyledSpaceCadet"; import StyledSpaceCadet from "components/apps/SpaceCadet/StyledSpaceCadet";
import useSpaceCadet from "components/apps/SpaceCadet/useSpaceCadet"; import useSpaceCadet from "components/apps/SpaceCadet/useSpaceCadet";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -11,4 +12,4 @@ const SpaceCadet: FC<ComponentProcessProps> = ({ id }) => (
/> />
); );
export default SpaceCadet; export default memo(SpaceCadet);

View File

@ -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 useCanvasContextMenu from "components/apps/StableDiffusion/useCanvasContextMenu";
import StyledStableDiffusion from "components/apps/StableDiffusion/StyledStableDiffusion"; import StyledStableDiffusion from "components/apps/StableDiffusion/StyledStableDiffusion";
import { import {
@ -125,4 +125,4 @@ const StableDiffusion: FC<ComponentProcessProps> = () => {
); );
}; };
export default StableDiffusion; export default memo(StableDiffusion);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledTerminal from "components/apps/Terminal/StyledTerminal"; import StyledTerminal from "components/apps/Terminal/StyledTerminal";
import useTerminal from "components/apps/Terminal/useTerminal"; import useTerminal from "components/apps/Terminal/useTerminal";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -11,4 +12,4 @@ const Terminal: FC<ComponentProcessProps> = ({ id }) => (
/> />
); );
export default Terminal; export default memo(Terminal);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import useTic80 from "components/apps/Tic80/useTic80"; import useTic80 from "components/apps/Tic80/useTic80";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
@ -6,4 +7,4 @@ const Tic80: FC<ComponentProcessProps> = ({ id }) => (
<AppContainer id={id} useHook={useTic80} /> <AppContainer id={id} useHook={useTic80} />
); );
export default Tic80; export default memo(Tic80);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledTinyMceEditor from "components/apps/TinyMCE/StyledTinyMceEditor"; import StyledTinyMceEditor from "components/apps/TinyMCE/StyledTinyMceEditor";
import useTinyMCE from "components/apps/TinyMCE/useTinyMCE"; import useTinyMCE from "components/apps/TinyMCE/useTinyMCE";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -13,4 +14,4 @@ const TinyMCE: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default TinyMCE; export default memo(TinyMCE);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledV86 from "components/apps/V86/StyledV86"; import StyledV86 from "components/apps/V86/StyledV86";
import useV86 from "components/apps/V86/useV86"; import useV86 from "components/apps/V86/useV86";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -11,4 +12,4 @@ const V86: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default V86; export default memo(V86);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledVideoPlayer from "components/apps/VideoPlayer/StyledVideoPlayer"; import StyledVideoPlayer from "components/apps/VideoPlayer/StyledVideoPlayer";
import useVideoPlayer from "components/apps/VideoPlayer/useVideoPlayer"; import useVideoPlayer from "components/apps/VideoPlayer/useVideoPlayer";
import AppContainer from "components/system/Apps/AppContainer"; import AppContainer from "components/system/Apps/AppContainer";
@ -15,4 +16,4 @@ const VideoPlayer: FC<ComponentProcessProps> = ({ id }) => (
</AppContainer> </AppContainer>
); );
export default VideoPlayer; export default memo(VideoPlayer);

View File

@ -1,5 +1,5 @@
import { basename, dirname, extname } from "path"; 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 StyledVim from "components/apps/Vim/StyledVim";
import { type QueueItem } from "components/apps/Vim/types"; import { type QueueItem } from "components/apps/Vim/types";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
@ -142,4 +142,4 @@ const Vim: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Vim; export default memo(Vim);

View File

@ -1,6 +1,6 @@
import { basename, extname } from "path"; import { basename, extname } from "path";
import { type Options } from "webamp"; 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 StyledWebamp from "components/apps/Webamp/StyledWebamp";
import { import {
cleanBufferOnSkinLoad, cleanBufferOnSkinLoad,
@ -112,4 +112,4 @@ const Webamp: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Webamp; export default memo(Webamp);

View File

@ -1,4 +1,4 @@
import { useRef } from "react"; import { memo, useRef } from "react";
import StyledDesktop from "components/system/Desktop/StyledDesktop"; import StyledDesktop from "components/system/Desktop/StyledDesktop";
import useWallpaper from "components/system/Desktop/Wallpapers/useWallpaper"; import useWallpaper from "components/system/Desktop/Wallpapers/useWallpaper";
import FileManager from "components/system/Files/FileManager"; import FileManager from "components/system/Files/FileManager";
@ -24,4 +24,4 @@ const Desktop: FC = ({ children }) => {
); );
}; };
export default Desktop; export default memo(Desktop);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import StyledButton from "components/system/Dialogs/StyledButton"; import StyledButton from "components/system/Dialogs/StyledButton";
import { useProcesses } from "contexts/process"; import { useProcesses } from "contexts/process";
@ -18,4 +19,4 @@ const Buttons: FC<ButtonsProps> = ({ id, onClick }) => {
); );
}; };
export default Buttons; export default memo(Buttons);

View File

@ -1,5 +1,5 @@
import { basename, extname } from "path"; 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 dynamic from "next/dynamic";
import useCloseOnEscape from "components/system/Dialogs/useCloseOnEscape"; import useCloseOnEscape from "components/system/Dialogs/useCloseOnEscape";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
@ -143,4 +143,4 @@ const Properties: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Properties; export default memo(Properties);

View File

@ -1,5 +1,5 @@
import { basename, join } from "path"; 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 { parseCommand } from "components/apps/Terminal/functions";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import StyledRun from "components/system/Dialogs/Run/StyledRun"; import StyledRun from "components/system/Dialogs/Run/StyledRun";
@ -315,4 +315,4 @@ const Run: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Run; export default memo(Run);

View File

@ -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 StyledScreenSaver from "components/system/Dialogs/ScreenSaver/StyledScreenSaver";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import { useFileSystem } from "contexts/fileSystem"; import { useFileSystem } from "contexts/fileSystem";
@ -85,4 +85,4 @@ const ScreenSaver: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default ScreenSaver; export default memo(ScreenSaver);

View File

@ -1,5 +1,5 @@
import { basename, dirname } from "path"; 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 useCloseOnEscape from "components/system/Dialogs/useCloseOnEscape";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import StyledButton from "components/system/Dialogs/StyledButton"; import StyledButton from "components/system/Dialogs/StyledButton";
@ -199,4 +199,4 @@ const Transfer: FC<ComponentProcessProps> = ({ id }) => {
); );
}; };
export default Transfer; export default memo(Transfer);

View File

@ -1,6 +1,6 @@
import { extname } from "path"; import { extname } from "path";
import { useTheme } from "styled-components"; 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 { type FileManagerViewNames } from "components/system/Files/Views";
import { measureText } from "components/system/Files/FileEntry/functions"; import { measureText } from "components/system/Files/FileEntry/functions";
import StyledRenameBox from "components/system/Files/FileEntry/StyledRenameBox"; import StyledRenameBox from "components/system/Files/FileEntry/StyledRenameBox";
@ -86,4 +86,4 @@ const RenameBox: FC<RenameBoxProps> = ({
); );
}; };
export default RenameBox; export default memo(RenameBox);

View File

@ -1,6 +1,7 @@
import { basename, dirname, extname, join } from "path"; import { basename, dirname, extname, join } from "path";
import { useTheme } from "styled-components"; import { useTheme } from "styled-components";
import { import {
memo,
useCallback, useCallback,
useEffect, useEffect,
useLayoutEffect, useLayoutEffect,
@ -672,4 +673,4 @@ const FileEntry: FC<FileEntryProps> = ({
); );
}; };
export default FileEntry; export default memo(FileEntry);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import styled, { createGlobalStyle } from "styled-components"; import styled, { createGlobalStyle } from "styled-components";
const NoGlobalPointerEvents = createGlobalStyle` const NoGlobalPointerEvents = createGlobalStyle`
@ -20,4 +21,4 @@ const StyledSelection: FC<React.HTMLAttributes<HTMLSpanElement>> = (props) => (
</> </>
); );
export default StyledSelection; export default memo(StyledSelection);

View File

@ -1,5 +1,6 @@
import { join } from "path"; import { join } from "path";
import { import {
memo,
useCallback, useCallback,
useEffect, useEffect,
useLayoutEffect, useLayoutEffect,
@ -138,4 +139,4 @@ const StatusBar: FC<StatusBarProps> = ({
); );
}; };
export default StatusBar; export default memo(StatusBar);

View File

@ -1,6 +1,7 @@
import { useTheme } from "styled-components"; import { useTheme } from "styled-components";
import { type Position } from "react-rnd"; import { type Position } from "react-rnd";
import { import {
memo,
useCallback, useCallback,
useEffect, useEffect,
useLayoutEffect, useLayoutEffect,
@ -186,4 +187,4 @@ const MenuItemEntry: FC<MenuItemEntryProps> = ({
); );
}; };
export default MenuItemEntry; export default memo(MenuItemEntry);

View File

@ -1,5 +1,5 @@
import { type Position } from "react-rnd"; 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 MenuItemEntry from "components/system/Menu/MenuItemEntry";
import StyledMenu from "components/system/Menu/StyledMenu"; import StyledMenu from "components/system/Menu/StyledMenu";
import menuTransition from "components/system/Menu/menuTransition"; import menuTransition from "components/system/Menu/menuTransition";
@ -191,4 +191,4 @@ const Menu: FC<MenuProps> = ({ subMenu }) => {
null; null;
}; };
export default Menu; export default memo(Menu);

View File

@ -1,4 +1,4 @@
import { useCallback } from "react"; import { memo, useCallback } from "react";
import StyledSidebarButton from "components/system/StartMenu/Sidebar/StyledSidebarButton"; import StyledSidebarButton from "components/system/StartMenu/Sidebar/StyledSidebarButton";
import { spotlightEffect } from "utils/spotlightEffect"; import { spotlightEffect } from "utils/spotlightEffect";
import { hasFinePointer } from "utils/functions"; import { hasFinePointer } from "utils/functions";
@ -38,4 +38,4 @@ const SidebarButtonComponent: FC<SidebarButton> = ({
</StyledSidebarButton> </StyledSidebarButton>
); );
export default SidebarButtonComponent; export default memo(SidebarButtonComponent);

View File

@ -1,5 +1,5 @@
import { useTheme } from "styled-components"; 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 { type Variant } from "motion/react";
import FileManager from "components/system/Files/FileManager"; import FileManager from "components/system/Files/FileManager";
import Sidebar from "components/system/StartMenu/Sidebar"; import Sidebar from "components/system/StartMenu/Sidebar";
@ -119,4 +119,4 @@ const StartMenu: FC<StartMenuProps> = ({ toggleStartMenu }) => {
); );
}; };
export default StartMenu; export default memo(StartMenu);

View File

@ -1,3 +1,4 @@
import { memo } from "react";
import { importAIChat } from "components/system/Taskbar/functions"; import { importAIChat } from "components/system/Taskbar/functions";
import { AIIcon } from "components/system/Taskbar/AI/icons"; import { AIIcon } from "components/system/Taskbar/AI/icons";
import StyledAIButton from "components/system/Taskbar/AI/StyledAIButton"; import StyledAIButton from "components/system/Taskbar/AI/StyledAIButton";
@ -32,4 +33,4 @@ const AIButton: FC<AIButtonProps> = ({ aiVisible, toggleAI }) => {
); );
}; };
export default AIButton; export default memo(AIButton);

View File

@ -1,5 +1,5 @@
import { useTheme } from "styled-components"; import { useTheme } from "styled-components";
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
import { import {
escapeHtml, escapeHtml,
formatWebLlmProgress, formatWebLlmProgress,
@ -664,4 +664,4 @@ const AIChat: FC<AIChatProps> = ({ toggleAI }) => {
); );
}; };
export default AIChat; export default memo(AIChat);

View File

@ -1,5 +1,5 @@
import { basename, dirname } from "path"; 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 type Stats from "browserfs/dist/node/core/node_fs_stats";
import { getModifiedTime } from "components/system/Files/FileEntry/functions"; import { getModifiedTime } from "components/system/Files/FileEntry/functions";
import { UNKNOWN_ICON } from "components/system/Files/FileManager/icons"; import { UNKNOWN_ICON } from "components/system/Files/FileManager/icons";
@ -157,4 +157,4 @@ const Details: FC<{
); );
}; };
export default Details; export default memo(Details);

View File

@ -1,5 +1,5 @@
import { basename, extname } from "path"; 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 type Stats from "browserfs/dist/node/core/node_fs_stats";
import useResultsContextMenu from "components/system/Taskbar/Search/useResultsContextMenu"; import useResultsContextMenu from "components/system/Taskbar/Search/useResultsContextMenu";
import { import {
@ -210,4 +210,4 @@ const ResultEntry: FC<ResultEntryProps> = ({
); );
}; };
export default ResultEntry; export default memo(ResultEntry);

View File

@ -1,4 +1,4 @@
import { useMemo } from "react"; import { memo, useMemo } from "react";
import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons";
import { NO_RESULTS, type TabName } from "components/system/Taskbar/Search"; import { NO_RESULTS, type TabName } from "components/system/Taskbar/Search";
import ResultEntry from "components/system/Taskbar/Search/ResultEntry"; import ResultEntry from "components/system/Taskbar/Search/ResultEntry";
@ -72,4 +72,4 @@ const ResultSection: FC<ResultsSectionProps> = ({
); );
}; };
export default ResultSection; export default memo(ResultSection);

View File

@ -45,4 +45,4 @@ const SearchButton: FC<StartButtonProps> = ({
); );
}; };
export default SearchButton; export default memo(SearchButton);

View File

@ -1,6 +1,6 @@
import { basename, extname } from "path"; import { basename, extname } from "path";
import { useTheme } from "styled-components"; 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 { m as motion } from "motion/react";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons"; import { Search as SearchIcon } from "components/apps/FileExplorer/NavigationIcons";
@ -487,4 +487,4 @@ const Search: FC<SearchProps> = ({ toggleSearch }) => {
); );
}; };
export default Search; export default memo(Search);

View File

@ -1,4 +1,4 @@
import { useCallback } from "react"; import { memo, useCallback } from "react";
import StartButtonIcon from "components/system/Taskbar/StartButton/StartButtonIcon"; import StartButtonIcon from "components/system/Taskbar/StartButton/StartButtonIcon";
import StyledTaskbarButton from "components/system/Taskbar/StyledTaskbarButton"; import StyledTaskbarButton from "components/system/Taskbar/StyledTaskbarButton";
import { import {
@ -57,4 +57,4 @@ const StartButton: FC<StartButtonProps> = ({
); );
}; };
export default StartButton; export default memo(StartButton);

View File

@ -1,5 +1,5 @@
import { Rnd } from "react-rnd"; 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 useRnd from "components/system/Window/RndWindow/useRnd";
import { useProcesses } from "contexts/process"; import { useProcesses } from "contexts/process";
import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants"; import { FOCUSABLE_ELEMENT, PREVENT_SCROLL } from "utils/constants";
@ -71,4 +71,4 @@ const RndWindow: FC<RndWindowProps> = ({ children, id, zIndex }) => {
); );
}; };
export default RndWindow; export default memo(RndWindow);

View File

@ -1,4 +1,4 @@
import { useCallback } from "react"; import { memo, useCallback } from "react";
import { type ComponentProcessProps } from "components/system/Apps/RenderComponent"; import { type ComponentProcessProps } from "components/system/Apps/RenderComponent";
import StyledPeekViewport from "components/system/Taskbar/TaskbarEntry/Peek/StyledPeekViewport"; import StyledPeekViewport from "components/system/Taskbar/TaskbarEntry/Peek/StyledPeekViewport";
import RndWindow from "components/system/Window/RndWindow"; import RndWindow from "components/system/Window/RndWindow";
@ -52,4 +52,4 @@ const Window: FC<ComponentProcessProps> = ({ children, id }) => {
); );
}; };
export default Window; export default memo(Window);

View File

@ -1,4 +1,5 @@
import { type AppProps } from "next/app"; import { type AppProps } from "next/app";
import { memo } from "react";
import { ErrorBoundary } from "components/pages/ErrorBoundary"; import { ErrorBoundary } from "components/pages/ErrorBoundary";
import Metadata from "components/pages/Metadata"; import Metadata from "components/pages/Metadata";
import StyledApp from "components/pages/StyledApp"; import StyledApp from "components/pages/StyledApp";
@ -27,4 +28,4 @@ const App = ({ Component: Index, pageProps }: AppProps): React.ReactElement => (
</ViewportProvider> </ViewportProvider>
); );
export default App; export default memo(App);

View File

@ -1,7 +1,8 @@
import { type ErrorProps } from "next/error"; import { type ErrorProps } from "next/error";
import { memo } from "react";
const PageError = ({ statusCode = 0 }: ErrorProps): React.ReactElement => ( const PageError = ({ statusCode = 0 }: ErrorProps): React.ReactElement => (
<>Error status code: {statusCode}</> <>Error status code: {statusCode}</>
); );
export default PageError; export default memo(PageError);