also add versioning in mini repl

This commit is contained in:
Felix Roos 2024-05-31 11:01:09 +02:00
parent 33322be948
commit 05289b171b
3 changed files with 10 additions and 10 deletions

View File

@ -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);

View File

@ -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';

View File

@ -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';