mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-13 11:23:50 +00:00
refract + cleanup: render only on data change
- add library for deep comparison - cleanup console.logs
This commit is contained in:
@@ -12,8 +12,6 @@ export default function LowerLines(props) {
|
||||
};
|
||||
const [showLower, setShowLower] = useState(true);
|
||||
|
||||
console.log('DEBUG TITLE SHOW:', title.showNow);
|
||||
|
||||
// Unmount if fadeOut
|
||||
useEffect(() => {
|
||||
if (!options.fadeOut) return;
|
||||
|
||||
@@ -1,10 +1,27 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { memo, useEffect, useState } from 'react';
|
||||
import LowerClean from './LowerClean';
|
||||
import LowerLines from './LowerLines';
|
||||
const isEqual = require('react-fast-compare');
|
||||
|
||||
export default function Lower(props) {
|
||||
const { title, ...rest } = props;
|
||||
const [titles, setTitles] = useState(null);
|
||||
const areEqual = (prevProps, nextProps) => {
|
||||
return (
|
||||
isEqual(prevProps.title, nextProps.title) &&
|
||||
isEqual(prevProps.lower && nextProps.lower)
|
||||
);
|
||||
};
|
||||
|
||||
const Lower = (props) => {
|
||||
const { title } = props;
|
||||
const [titles, setTitles] = useState({
|
||||
titleNow: '',
|
||||
titleNext: '',
|
||||
subtitleNow: '',
|
||||
subtitleNext: '',
|
||||
presenterNow: '',
|
||||
presenterNext: '',
|
||||
showNow: false,
|
||||
showNext: false,
|
||||
});
|
||||
const [preset, setPreset] = useState(1);
|
||||
const [lowerOptions, setLowerOptions] = useState({});
|
||||
|
||||
@@ -23,21 +40,17 @@ export default function Lower(props) {
|
||||
title?.subtitleNow !== titles?.subtitleNow ||
|
||||
title?.presenterNow !== titles?.presenterNow
|
||||
) {
|
||||
console.log('DEBUG TITLES: SETTING TITLES TO NULL');
|
||||
setTitles((t) => ({ ...t, showNow: false }));
|
||||
|
||||
const transitionTime = 2000;
|
||||
|
||||
timeout = setTimeout(() => {
|
||||
console.log('DEBUG TITLES: RESUMING');
|
||||
setTitles(title);
|
||||
}, transitionTime);
|
||||
}
|
||||
|
||||
return () => {
|
||||
if (timeout != null) {
|
||||
console.log('DEBUG TITLES: CLEARING');
|
||||
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
};
|
||||
@@ -109,10 +122,18 @@ export default function Lower(props) {
|
||||
|
||||
switch (preset) {
|
||||
case 0:
|
||||
return <LowerClean {...rest} title={title} options={lowerOptions} />;
|
||||
return (
|
||||
<LowerClean lower={props.lower} title={titles} options={lowerOptions} />
|
||||
);
|
||||
case 1:
|
||||
return <LowerLines {...rest} title={titles} options={lowerOptions} />;
|
||||
return (
|
||||
<LowerLines lower={props.lower} title={titles} options={lowerOptions} />
|
||||
);
|
||||
default:
|
||||
return <LowerLines {...rest} title={title} options={lowerOptions} />;
|
||||
return (
|
||||
<LowerLines lower={props.lower} title={titles} options={lowerOptions} />
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default memo(Lower, areEqual);
|
||||
|
||||
Reference in New Issue
Block a user