openreplay/frontend/app/components/Session_/Player/Controls/Time.js
Delirium 4ebcff74e1
feat(ui): make ui able to load unprocessed session files (#652)
* feat(ui): make ui able to load unprocessed session files

* feat(ui): some lgos

* feat(ui): connect api, rewrite old code

* feat(ui): create testing ui functions

* feat(ui/player): add ability to jump back in time for assist

* feat(ui/player): rewrite for better readability

* fix(ui/player): small refactor for better readability

* fix(ui/player): fix private prop

* fix(ui/player): add tooltip

* feat(ui/player): create time calculating tooltip

* fix(player): fix message timestamp

* fix(ui/player): cleanup

* fix(ui/player): handle errors for unprocessed files as well

* fix(player): fix logged message

* fix(player): code review fixes

* fix(ui): fix circle color, fix button text

* fix(tracker): code review

* fix(player): small style fixes
2022-08-11 12:07:34 +02:00

48 lines
1.2 KiB
JavaScript

import React from 'react';
import { Duration } from 'luxon';
import { connectPlayer } from 'Player';
import styles from './time.module.css';
import { Tooltip } from 'react-tippy';
const Time = ({ time, isCustom, format = 'm:ss', }) => (
<div className={ !isCustom ? styles.time : undefined }>
{ Duration.fromMillis(time).toFormat(format) }
</div>
)
Time.displayName = "Time";
const ReduxTime = connectPlayer((state, { name, format }) => ({
time: state[ name ],
format,
}))(Time);
const AssistDurationCont = connectPlayer(
state => {
const assistStart = state.assistStart;
return {
assistStart,
}
}
)(({ assistStart }) => {
const [assistDuration, setAssistDuration] = React.useState('00:00');
React.useEffect(() => {
const interval = setInterval(() => {
setAssistDuration(Duration.fromMillis(+new Date() - assistStart).toFormat('mm:ss'));
}
, 1000);
return () => clearInterval(interval);
}, [])
return (
<>
Elapsed {assistDuration}
</>
)
})
const AssistDuration = React.memo(AssistDurationCont);
ReduxTime.displayName = "ReduxTime";
export default React.memo(Time);
export { ReduxTime, AssistDuration };