From 0355c358b8d4cb126e2c48061b033357ea1c6eb5 Mon Sep 17 00:00:00 2001 From: "Jade (Rose) Rowland" Date: Sat, 6 Jan 2024 23:49:37 -0500 Subject: [PATCH] fixed create and duplicate behavior --- website/src/repl/Repl.jsx | 8 ++++---- website/src/repl/panel/PatternsTab.jsx | 27 ++++++++++++++++---------- website/src/settings.mjs | 13 +++++-------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 75ef0278..384e78d3 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -157,9 +157,9 @@ export function Repl({ embedded = false }) { const handleTogglePlay = async () => editorRef.current?.toggle(); - // payload = {reset?: boolean, code?: string, evaluate?: boolean, patternID?: string } + // payload = {reset?: boolean, code?: string, evaluate?: boolean, pattern?: string } const handleUpdate = async (payload) => { - const { reset = false, code = null, evaluate = true, patternID = null } = payload; + const { reset = false, code = null, evaluate = true, pattern = null } = payload; if (reset) { clearCanvas(); @@ -167,9 +167,9 @@ export function Repl({ embedded = false }) { editorRef.current.repl.setCps(1); await prebake(); // declare default samples } - if (code != null) { + if (code != null && pattern != null) { editorRef.current.setCode(code); - setViewingPattern(patternID); + setViewingPattern(pattern); } if (evaluate) { editorRef.current.evaluate(); diff --git a/website/src/repl/panel/PatternsTab.jsx b/website/src/repl/panel/PatternsTab.jsx index a5ded1f0..b5439220 100644 --- a/website/src/repl/panel/PatternsTab.jsx +++ b/website/src/repl/panel/PatternsTab.jsx @@ -1,13 +1,13 @@ import { DocumentDuplicateIcon, PencilSquareIcon, TrashIcon } from '@heroicons/react/20/solid'; -import { useMemo } from 'react'; + import { clearUserPatterns, deletePattern, - duplicatePattern, + createDuplicatePattern, exportPatterns, - getUserPattern, + addUserPattern, importPatterns, - newUserPattern, + createNewUserPattern, renamePattern, useActivePattern, useViewingPattern, @@ -55,9 +55,14 @@ export function PatternsTab({ context }) { const activePattern = useActivePattern(); const viewingPattern = useViewingPattern(); // const isExample = useMemo(() => activePattern && !!tunes[activePattern], [activePattern]); - const onPatternClick = (key, data) => { + const onPatternClick = (pattern, data) => { // display selected pattern code in the window - context.handleUpdate({ patternID: key, code: data.code, evaluate: false }); + context.handleUpdate({ pattern, code: data.code, evaluate: false }); + }; + + const addPattern = ({ pattern, code }) => { + addUserPattern(pattern, { code }); + context.handleUpdate({ code, pattern, evaluate: false }); }; const examplePatterns = {}; @@ -76,7 +81,11 @@ export function PatternsTab({ context }) { {/* */} )} - {!isExample && ( @@ -97,9 +106,7 @@ export function PatternsTab({ context }) {