diff --git a/src/components/HeaderBar/CurrentDJ.js b/src/components/HeaderBar/CurrentDJ.js
index 070390223..ad865e0c0 100644
--- a/src/components/HeaderBar/CurrentDJ.js
+++ b/src/components/HeaderBar/CurrentDJ.js
@@ -1,10 +1,13 @@
import React from 'react';
import PropTypes from 'prop-types';
import { translate } from '@u-wave/react-translate';
+import PlayTime from './PlayTime';
-const CurrentDJ = ({ t, className, dj }) => (
+const CurrentDJ = ({
+ t, className, dj, startTime, mediaDuration,
+}) => (
- {t('booth.currentDJ', { user: dj.username })}
+ {t('booth.currentDJ', { user: dj.username })} -
);
@@ -14,6 +17,8 @@ CurrentDJ.propTypes = {
dj: PropTypes.shape({
username: PropTypes.string.isRequired,
}),
+ startTime: PropTypes.number.isRequired,
+ mediaDuration: PropTypes.number.isRequired,
};
export default translate()(CurrentDJ);
diff --git a/src/components/HeaderBar/PlayTime.js b/src/components/HeaderBar/PlayTime.js
new file mode 100644
index 000000000..26092b0a5
--- /dev/null
+++ b/src/components/HeaderBar/PlayTime.js
@@ -0,0 +1,23 @@
+import cx from 'clsx';
+import React from 'react';
+import PropTypes from 'prop-types';
+import formatDuration from 'format-duration';
+import useClock from '../../hooks/useClock';
+
+function PlayTime({ className, startTime, mediaDuration }) {
+ const currentTime = useClock();
+ const currentElapsed = currentTime - startTime;
+ return (
+
+ {formatDuration(currentElapsed)} / {formatDuration(mediaDuration * 1000)}
+
+ );
+}
+
+PlayTime.propTypes = {
+ className: PropTypes.string,
+ startTime: PropTypes.number.isRequired,
+ mediaDuration: PropTypes.number.isRequired,
+};
+
+export default React.memo(PlayTime);
diff --git a/src/components/HeaderBar/index.js b/src/components/HeaderBar/index.js
index 5baeb2156..eb025621b 100644
--- a/src/components/HeaderBar/index.js
+++ b/src/components/HeaderBar/index.js
@@ -16,6 +16,8 @@ const HeaderBar = ({
mediaStartTime,
volume,
muted,
+ startTime,
+ mediaDuration,
onVolumeChange,
onVolumeMute,
onVolumeUnmute,
@@ -35,7 +37,7 @@ const HeaderBar = ({
- {dj && }
+ {dj && }
{media && (