mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-26 21:18:49 +00:00
build react package
This commit is contained in:
parent
8103943396
commit
e37e0f189a
4
packages/react/dist/index.cjs.js
vendored
4
packages/react/dist/index.cjs.js
vendored
File diff suppressed because one or more lines are too long
43
packages/react/dist/index.es.js
vendored
43
packages/react/dist/index.es.js
vendored
@ -552,38 +552,34 @@ function MiniRepl({ tune, defaultSynth, hideOutsideView = false, theme, init, on
|
|||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
|
|
||||||
function useScheduler(pattern, defaultOutput, interval = 0.1) {
|
function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = true }) {
|
||||||
const [error, setError] = useState();
|
// scheduler
|
||||||
const scheduler = useMemo(
|
const [schedulerError, setSchedulerError] = useState();
|
||||||
() => new Scheduler({ interval, onTrigger: defaultOutput, onError: setError }),
|
const [evalError, setEvalError] = useState();
|
||||||
[defaultOutput, interval]
|
|
||||||
);
|
|
||||||
useEffect(() => {
|
|
||||||
pattern && scheduler?.setPattern(pattern);
|
|
||||||
}, [pattern, scheduler]);
|
|
||||||
return { error, scheduler };
|
|
||||||
}
|
|
||||||
|
|
||||||
function useEvaluator({ code, evalOnMount = true }) {
|
|
||||||
const [error, setError] = useState();
|
|
||||||
const [activeCode, setActiveCode] = useState(code);
|
const [activeCode, setActiveCode] = useState(code);
|
||||||
const [pattern, setPattern] = useState();
|
|
||||||
const isDirty = code !== activeCode;
|
const isDirty = code !== activeCode;
|
||||||
|
// TODO: how / when to remove schedulerError?
|
||||||
|
const scheduler = useMemo(
|
||||||
|
() => new Scheduler({ interval, onTrigger: defaultOutput, onError: setSchedulerError, getTime }),
|
||||||
|
[defaultOutput, interval],
|
||||||
|
);
|
||||||
const evaluate$1 = useCallback(async () => {
|
const evaluate$1 = useCallback(async () => {
|
||||||
if (!code) {
|
if (!code) {
|
||||||
console.log("no code..");
|
console.log('no code..');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const { pattern: _pattern } = await evaluate(code);
|
// TODO: let user inject custom eval function?
|
||||||
|
const { pattern } = await evaluate(code);
|
||||||
setActiveCode(code);
|
setActiveCode(code);
|
||||||
setPattern(_pattern);
|
scheduler?.setPattern(pattern);
|
||||||
setError();
|
setEvalError();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setError(err);
|
setEvalError(err);
|
||||||
console.warn("eval error", err);
|
console.warn('eval error', err);
|
||||||
}
|
}
|
||||||
}, [code, scheduler]);
|
}, [code, scheduler]);
|
||||||
|
|
||||||
const inited = useRef();
|
const inited = useRef();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!inited.current && evalOnMount) {
|
if (!inited.current && evalOnMount) {
|
||||||
@ -591,7 +587,8 @@ function useEvaluator({ code, evalOnMount = true }) {
|
|||||||
evaluate$1();
|
evaluate$1();
|
||||||
}
|
}
|
||||||
}, [evaluate$1, evalOnMount]);
|
}, [evaluate$1, evalOnMount]);
|
||||||
return { error, evaluate: evaluate$1, activeCode, pattern, isDirty };
|
|
||||||
|
return { schedulerError, scheduler, evalError, evaluate: evaluate$1, activeCode, isDirty };
|
||||||
}
|
}
|
||||||
|
|
||||||
// set active pattern on ctrl+enter
|
// set active pattern on ctrl+enter
|
||||||
@ -640,4 +637,4 @@ function useWebMidi(props) {
|
|||||||
return { loading, outputs, outputByName };
|
return { loading, outputs, outputByName };
|
||||||
}
|
}
|
||||||
|
|
||||||
export { CodeMirror, MiniRepl, cx, flash, useCycle, useEvaluator, useHighlighting, useKeydown, usePostMessage, useRepl, useScheduler, useWebMidi };
|
export { CodeMirror, MiniRepl, cx, flash, useCycle, useHighlighting, useKeydown, usePostMessage, useRepl, useStrudel, useWebMidi };
|
||||||
|
|||||||
@ -6,8 +6,7 @@ export { default as useCycle } from './hooks/useCycle';
|
|||||||
export { default as useHighlighting } from './hooks/useHighlighting';
|
export { default as useHighlighting } from './hooks/useHighlighting';
|
||||||
export { default as usePostMessage } from './hooks/usePostMessage';
|
export { default as usePostMessage } from './hooks/usePostMessage';
|
||||||
export { default as useRepl } from './hooks/useRepl';
|
export { default as useRepl } from './hooks/useRepl';
|
||||||
export { default as useScheduler } from './hooks/useScheduler';
|
export { default as useStrudel } from './hooks/useStrudel';
|
||||||
export { default as useEvaluator } from './hooks/useEvaluator';
|
|
||||||
export { default as useKeydown } from './hooks/useKeydown';
|
export { default as useKeydown } from './hooks/useKeydown';
|
||||||
export { default as cx } from './cx';
|
export { default as cx } from './cx';
|
||||||
export { useWebMidi } from './hooks/useWebMidi';
|
export { useWebMidi } from './hooks/useWebMidi';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user