add generation, change key->identifier

This commit is contained in:
2021-04-06 01:06:28 +02:00
parent 9b3815739e
commit d158d06cce

View File

@@ -51,6 +51,7 @@ interface EffectActive {
interface State { interface State {
initialized: number; initialized: number;
generation: string;
chain: EffectActive[]; chain: EffectActive[];
} }
@@ -63,9 +64,9 @@ interface Options {
const ActiveEffect: FC<{ const ActiveEffect: FC<{
availableEffects: EffectOption[]; availableEffects: EffectOption[];
effect: EffectActive; effect: EffectActive;
key: string; identifier: string;
onChange: (name: string, value: number) => void; onChange: (name: string, value: number) => void;
}> = ({ availableEffects, effect, onChange, key }) => { }> = ({ availableEffects, effect, onChange, identifier }) => {
const effectUsed = availableEffects.find( const effectUsed = availableEffects.find(
(e) => e.function === effect.function (e) => e.function === effect.function
); );
@@ -80,9 +81,9 @@ const ActiveEffect: FC<{
([name, paramOptions], idx) => { ([name, paramOptions], idx) => {
if (paramOptions.type === "slider") { if (paramOptions.type === "slider") {
const currentValue = effect.params[name]; const currentValue = effect.params[name];
const id = `${key}-input-${name}-${idx}`; const id = `${identifier}-input-${name}-${idx}`;
return ( return (
<div> <div key={id}>
<div className="flex"> <div className="flex">
<div className="text-sm">{paramOptions.min}</div> <div className="text-sm">{paramOptions.min}</div>
<input <input
@@ -177,6 +178,19 @@ function App() {
} }
}, [socket]); }, [socket]);
useEffect(() => {
return () => {
socket?.close();
};
}, []);
/*
useEffect(() => {
console.log("new state:");
console.log(state);
}, [state]);
*/
const propagateState = (state: State) => { const propagateState = (state: State) => {
socket?.send(JSON.stringify({ type: "mutation", payload: state })); socket?.send(JSON.stringify({ type: "mutation", payload: state }));
}; };
@@ -258,7 +272,7 @@ function App() {
}} }}
> >
<ActiveEffect <ActiveEffect
key={key} identifier={key}
effect={effect} effect={effect}
availableEffects={options.effects.available} availableEffects={options.effects.available}
onChange={(name, value) => { onChange={(name, value) => {