mirror of
https://github.com/streamwall/streamwall.git
synced 2026-01-31 01:12:48 -05:00
Skip unnecessary view re-positions
This commit is contained in:
@@ -86,15 +86,19 @@ const viewStateMachine = Machine(
|
|||||||
type: 'parallel',
|
type: 'parallel',
|
||||||
entry: 'positionView',
|
entry: 'positionView',
|
||||||
on: {
|
on: {
|
||||||
DISPLAY: {
|
DISPLAY: [
|
||||||
actions: [
|
// Noop if nothing changed.
|
||||||
assign({
|
{ cond: 'contentPosUnchanged' },
|
||||||
pos: (context, event) => event.pos,
|
{
|
||||||
}),
|
actions: [
|
||||||
'positionView',
|
assign({
|
||||||
],
|
pos: (context, event) => event.pos,
|
||||||
cond: 'contentUnchanged',
|
}),
|
||||||
},
|
'positionView',
|
||||||
|
],
|
||||||
|
cond: 'contentUnchanged',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
states: {
|
states: {
|
||||||
audio: {
|
audio: {
|
||||||
@@ -167,6 +171,12 @@ const viewStateMachine = Machine(
|
|||||||
contentUnchanged: (context, event) => {
|
contentUnchanged: (context, event) => {
|
||||||
return isEqual(context.content, event.content)
|
return isEqual(context.content, event.content)
|
||||||
},
|
},
|
||||||
|
contentPosUnchanged: (context, event) => {
|
||||||
|
return (
|
||||||
|
isEqual(context.content, event.content) &&
|
||||||
|
isEqual(context.pos, event.pos)
|
||||||
|
)
|
||||||
|
},
|
||||||
optionsChanged: (context, event) => {
|
optionsChanged: (context, event) => {
|
||||||
return !isEqual(context.options, event.options)
|
return !isEqual(context.options, event.options)
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user