Remove Derivation.tapImmediate()

This is now just an extra flag on `Derivation.onChange()`
This commit is contained in:
Aria Minaei 2022-12-01 13:45:27 +01:00
parent f2bb24ef99
commit a24a149a52
10 changed files with 60 additions and 59 deletions

View file

@ -156,9 +156,13 @@ export function onChange<P extends PointerType<$IntentionalAny>>(
): VoidFn {
if (isPointer(pointer)) {
const derivation = valueDerivation(pointer)
return derivation.tapImmediate(getCoreTicker(), callback as $IntentionalAny)
return derivation.onChange(
getCoreTicker(),
callback as $IntentionalAny,
true,
)
} else if (isDerivation(pointer)) {
return pointer.tapImmediate(getCoreTicker(), callback as $IntentionalAny)
return pointer.onChange(getCoreTicker(), callback as $IntentionalAny, true)
} else {
throw new Error(
`Called onChange(p) where p is neither a pointer nor a derivation.`,

View file

@ -158,7 +158,7 @@ export default class TheatreSheetObject<
}
onValuesChange(fn: (values: this['value']) => void): VoidFn {
return this._valuesDerivation().tapImmediate(getCoreTicker(), fn)
return this._valuesDerivation().onChange(getCoreTicker(), fn, true)
}
// internal: Make the deviration keepHot if directly read

View file

@ -440,7 +440,7 @@ export default class TheatreStudio implements IStudio {
}
onSelectionChange(fn: (s: (ISheetObject | ISheet)[]) => void): VoidFn {
return this._getSelectionDerivation().tapImmediate(studioTicker, fn)
return this._getSelectionDerivation().onChange(studioTicker, fn, true)
}
get selection(): Array<ISheetObject | ISheet> {

View file

@ -75,12 +75,16 @@ const FrameGrid: React.FC<{
fps: sequence.subUnitsPerUnit,
snapToGrid: (n: number) => sequence.closestGridPosition(n),
}
}).tapImmediate(studioTicker, (p) => {
ctx.save()
ctx.scale(ratio!, ratio!)
drawGrid(p)
ctx.restore()
})
}).onChange(
studioTicker,
(p) => {
ctx.save()
ctx.scale(ratio!, ratio!)
drawGrid(p)
ctx.restore()
},
true,
)
return () => {
untap()

View file

@ -86,7 +86,7 @@ const StampsGrid: React.FC<{
sequencePositionFormatter: sequence.positionFormatter,
snapToGrid: (n: number) => sequence.closestGridPosition(n),
}
}).tapImmediate(studioTicker, drawStamps)
}).onChange(studioTicker, drawStamps, true)
}, [fullSecondStampsContainer, width, layoutP])
return (