mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-05 19:24:39 +00:00
perf: add memo to react components
This commit is contained in:
@@ -5,6 +5,7 @@ import logoDark from './assets/betterseqta-light-full.png';
|
||||
import Shortcuts from './pages/Shortcuts';
|
||||
import Picker from './components/Picker';
|
||||
import Themes from './pages/Themes';
|
||||
import { memo } from 'react';
|
||||
|
||||
interface SettingsPage {
|
||||
standalone: boolean;
|
||||
@@ -38,4 +39,4 @@ const SettingsPage = ({ standalone }: SettingsPage) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default SettingsPage;
|
||||
export default memo(SettingsPage);
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ChangeEvent, useEffect, useState } from "react";
|
||||
import { ChangeEvent, memo, useEffect, useState } from "react";
|
||||
import { downloadPresetBackground, openDB, readAllData, writeData } from "../hooks/BackgroundDataLoader";
|
||||
import presetBackgrounds from "../assets/presetBackgrounds";
|
||||
import "./BackgroundSelector.css";
|
||||
@@ -21,7 +21,7 @@ interface BackgroundSelectorProps {
|
||||
isEditMode: boolean;
|
||||
}
|
||||
|
||||
export default function BackgroundSelector({ selectedType, setSelectedType, isEditMode }: BackgroundSelectorProps) {
|
||||
function BackgroundSelector({ selectedType, setSelectedType, isEditMode }: BackgroundSelectorProps) {
|
||||
const [backgrounds, setBackgrounds] = useState<Background[]>([]);
|
||||
const [selectedBackground, setSelectedBackground] = useState<string | null>(localStorage.getItem('selectedBackground'));
|
||||
const [downloadedPresetIds, setDownloadedPresetIds] = useState<string[]>([]);
|
||||
@@ -206,3 +206,5 @@ export default function BackgroundSelector({ selectedType, setSelectedType, isEd
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default memo(BackgroundSelector);
|
||||
@@ -3,9 +3,9 @@ import { useSettingsContext } from '../SettingsContext';
|
||||
import { motion } from "framer-motion";
|
||||
|
||||
import "./Picker.css";
|
||||
import { useEffect, useState } from 'react';
|
||||
import { memo, useEffect, useState } from 'react';
|
||||
|
||||
export default function Picker() {
|
||||
function Picker() {
|
||||
const { settingsState, setSettingsState, showPicker, setShowPicker } = useSettingsContext();
|
||||
|
||||
const defaultPresets = [
|
||||
@@ -124,3 +124,5 @@ export default function Picker() {
|
||||
</motion.div>
|
||||
);
|
||||
}
|
||||
|
||||
export default memo(Picker);
|
||||
@@ -1,3 +1,4 @@
|
||||
import { memo } from 'react';
|
||||
import { useSettingsContext } from '../SettingsContext';
|
||||
|
||||
const PickerSwatch = () => {
|
||||
@@ -16,4 +17,4 @@ const PickerSwatch = () => {
|
||||
);
|
||||
};
|
||||
|
||||
export default PickerSwatch;
|
||||
export default memo(PickerSwatch);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { memo } from "react";
|
||||
import { useSettingsContext } from "../SettingsContext";
|
||||
import "./Slider.css";
|
||||
|
||||
@@ -24,4 +25,4 @@ const Slider: React.FC<SliderProps> = ({ state, onChange }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default Slider;
|
||||
export default memo(Slider);
|
||||
@@ -1,8 +1,9 @@
|
||||
import { motion } from "framer-motion";
|
||||
import "./Switch.css";
|
||||
import type { SwitchProps } from "../types/SwitchProps";
|
||||
import { memo } from "react";
|
||||
|
||||
export default function Switch(props: SwitchProps) {
|
||||
function Switch(props: SwitchProps) {
|
||||
const toggleSwitch = () => {
|
||||
const newIsOn = !props.state;
|
||||
props.onChange(newIsOn);
|
||||
@@ -30,3 +31,5 @@ const spring = {
|
||||
stiffness: 700,
|
||||
damping: 30
|
||||
};
|
||||
|
||||
export default memo(Switch);
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useState, useRef, useEffect } from 'react';
|
||||
import React, { useState, useRef, useEffect, memo } from 'react';
|
||||
import { motion } from 'framer-motion';
|
||||
import type { TabbedContainerProps } from '../types/TabbedContainerProps';
|
||||
|
||||
@@ -111,4 +111,4 @@ const TabbedContainer: React.FC<TabbedContainerProps> = ({ tabs }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default TabbedContainer;
|
||||
export default memo(TabbedContainer);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { memo, useEffect, useState } from "react";
|
||||
import themesList from '../assets/themes';
|
||||
import { listThemes, disableTheme, downloadTheme, setTheme, deleteTheme } from "../hooks/ThemeManagment";
|
||||
|
||||
@@ -171,4 +171,4 @@ const ThemeSelector = ({ selectedType, setSelectedType, isEditMode }: ThemeSelec
|
||||
);
|
||||
};
|
||||
|
||||
export default ThemeSelector;
|
||||
export default memo(ThemeSelector);
|
||||
Reference in New Issue
Block a user