From 05289b171bbbe43526d7f67fc08410c95f37d709 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 31 May 2024 11:01:09 +0200 Subject: [PATCH] also add versioning in mini repl --- website/src/docs/MiniRepl.jsx | 15 +++++++-------- website/src/repl/Repl.jsx | 2 +- website/src/repl/util.mjs | 3 ++- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index 70067398..03e3d6d3 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -1,4 +1,4 @@ -import { useStlte, useRef, useCallback, useMemo, useEffect } from 'react'; +import { useState, useRef, useCallback, useMemo, useEffect } from 'react'; import { Icon } from './Icon'; import { silence, noteToMidi, _mod } from '@strudel/core'; import { getPunchcardPainter } from '@strudel/draw'; @@ -6,15 +6,15 @@ import { transpiler } from '@strudel/transpiler'; import { getAudioContext, webaudioOutput, initAudioOnFirstClick } from '@strudel/webaudio'; import { StrudelMirror } from '@strudel/codemirror'; import { prebake } from '../repl/prebake.mjs'; -import { loadModules } from '../repl/util.mjs'; +import { loadModules, setVersionDefaultsFrom } from '../repl/util.mjs'; import Claviature from '@components/Claviature'; import useClient from '@src/useClient.mjs'; -let prebaked, modulesLoading, audioLoading; +let prebaked, modulesLoading, audioReady; if (typeof window !== 'undefined') { prebaked = prebake(); modulesLoading = loadModules(); - audioLoading = initAudioOnFirstClick(); + audioReady = initAudioOnFirstClick(); } export function MiniRepl({ @@ -69,13 +69,12 @@ export function MiniRepl({ } return pat; }, - prebake: async () => Promise.all([modulesLoading, prebaked, audioLoading]), + prebake: async () => Promise.all([modulesLoading, prebaked]), onUpdateState: (state) => { setReplState({ ...state }); }, - afterEval:() => { - - } + beforeEval: () => audioReady, // not doing this in prebake to make sure viz is drawn + afterEval: ({ code }) => setVersionDefaultsFrom(code), }); // init settings editor.setCode(code); diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 7ce3c61e..e20551c4 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -16,7 +16,7 @@ import { initAudioOnFirstClick, } from '@strudel/webaudio'; import { defaultAudioDeviceName } from '../settings.mjs'; -import { getAudioDevices, setAudioDevice } from './util.mjs'; +import { getAudioDevices, setAudioDevice, setVersionDefaultsFrom } from './util.mjs'; import { StrudelMirror, defaultSettings } from '@strudel/codemirror'; import { clearHydra } from '@strudel/hydra'; import { useCallback, useEffect, useRef, useState } from 'react'; diff --git a/website/src/repl/util.mjs b/website/src/repl/util.mjs index acc428b2..26ac45d3 100644 --- a/website/src/repl/util.mjs +++ b/website/src/repl/util.mjs @@ -1,6 +1,7 @@ import { evalScope, hash2code, logger } from '@strudel/core'; import { settingPatterns, defaultAudioDeviceName } from '../settings.mjs'; -import { getAudioContext, initializeAudioOutput, setDefaultAudioContext } from '@strudel/webaudio'; +import { getAudioContext, initializeAudioOutput, setDefaultAudioContext, setVersionDefaults } from '@strudel/webaudio'; +import { getMetadata } from '../metadata_parser'; import { isTauri } from '../tauri.mjs'; import './Repl.css';