fix: patterns tab performance

This commit is contained in:
Felix Roos 2026-01-22 01:31:23 +01:00
parent 784b9c08ec
commit a87daf3d21
No known key found for this signature in database
2 changed files with 8 additions and 12 deletions

View file

@ -53,8 +53,7 @@ function PatternButton({ showOutline, onClick, pattern, showHiglight }) {
} }
function PatternButtons({ patterns, activePattern, onClick, started }) { function PatternButtons({ patterns, activePattern, onClick, started }) {
const viewingPatternStore = useViewingPatternData(); const viewingPatternData = useViewingPatternData();
const viewingPatternData = parseJSON(viewingPatternStore);
const viewingPatternID = viewingPatternData.id; const viewingPatternID = viewingPatternData.id;
return ( return (
<div className="p-2"> <div className="p-2">
@ -83,8 +82,8 @@ const updateCodeWindow = (context, patternData, reset = false) => {
export function PatternsTab({ context }) { export function PatternsTab({ context }) {
const [search, setSearch] = useState(''); const [search, setSearch] = useState('');
const activePattern = useActivePattern(); const activePattern = useActivePattern();
const viewingPatternStore = useViewingPatternData(); const viewingPatternData = useViewingPatternData();
const viewingPatternData = parseJSON(viewingPatternStore);
const { userPatterns, patternAutoStart } = useSettings(); const { userPatterns, patternAutoStart } = useSettings();
const viewingPatternID = viewingPatternData?.id; const viewingPatternID = viewingPatternData?.id;
@ -121,7 +120,7 @@ export function PatternsTab({ context }) {
); );
}), }),
); );
}, [search, viewingPatternStore]); }, [search, userPatterns]);
const importRef = useRef(); const importRef = useRef();
return ( return (

View file

@ -1,4 +1,4 @@
import { atom } from 'nanostores'; import { atom, computed } from 'nanostores';
import { useStore } from '@nanostores/react'; import { useStore } from '@nanostores/react';
import { logger } from '@strudel/core'; import { logger } from '@strudel/core';
import { nanoid } from 'nanoid'; import { nanoid } from 'nanoid';
@ -36,12 +36,9 @@ export let $viewingPatternData = sessionAtom('viewingPatternData', {
created_at: Date.now(), created_at: Date.now(),
}); });
export const getViewingPatternData = () => { const $viewingPatterns = computed($viewingPatternData, (state) => parseJSON(state));
return parseJSON($viewingPatternData.get()); export const useViewingPatternData = () => useStore($viewingPatterns);
}; export const getViewingPatternData = () => $viewingPatterns.get();
export const useViewingPatternData = () => {
return useStore($viewingPatternData);
};
export const setViewingPatternData = (data) => { export const setViewingPatternData = (data) => {
$viewingPatternData.set(JSON.stringify(data)); $viewingPatternData.set(JSON.stringify(data));