-
- {tooltipData && (
-
-
- {`$${getStockValue(tooltipData)}`}
-
-
- {formatDate(getDate(tooltipData))}
-
-
- )}
-
- );
- },
-);
\ No newline at end of file
diff --git a/frontend/src/Call/components/ListCalls.js b/frontend/src/Call/components/ListCalls.js
index 5a70e19..d09ac48 100644
--- a/frontend/src/Call/components/ListCalls.js
+++ b/frontend/src/Call/components/ListCalls.js
@@ -1,4 +1,4 @@
-import React, { useEffect, useRef } from "react";
+import React, { useEffect, useLayoutEffect, useRef } from "react";
import { useParams } from 'react-router-dom';
import CallItem from "./CallItem";
import {
@@ -22,13 +22,13 @@ const ListCalls = (props) => {
- useEffect(() => {
+ useLayoutEffect(() => {
if (activeCallRef.current && centerCall) {
activeCallRef.current.scrollIntoView({
block: "center",
});
}
- },[activeCallId]);
+ },[activeCallId, activeCallRef.current]);
const callsData = props.callsData;
return (
diff --git a/frontend/src/Call/components/MediaPlayer.js b/frontend/src/Call/components/MediaPlayer.js
index 0c16882..2b449f7 100644
--- a/frontend/src/Call/components/MediaPlayer.js
+++ b/frontend/src/Call/components/MediaPlayer.js
@@ -19,19 +19,19 @@ const MediaPlayer = (props) => {
const parentHandlePlayPause = props.onPlayPause
const playSilence = props.playSilence;
- const handlePause = () => { setIsPlaying(false); }
- const handlePlay = () => { setIsPlaying(true); }
- const playPause = () => {
- const audio = audioRef.current.audioEl.current;
- if (isPlaying) {
- setIsPlaying(false);
- parentHandlePlayPause(false);
- audio.pause();
- } else {
- setIsPlaying(true);
+ const handlePause = () => { setIsPlaying(false); }
+ const handlePlay = () => { setIsPlaying(true); }
+ const playPause = () => {
+ const audio = audioRef.current.audioEl.current;
+ if (isPlaying) {
+ setIsPlaying(false);
+ parentHandlePlayPause(false);
+ audio.pause();
+ } else {
+ setIsPlaying(true);
parentHandlePlayPause(true);
- audio.play();
- }
+ audio.play();
+ }
}
const call = props.call;
@@ -41,7 +41,7 @@ const MediaPlayer = (props) => {
const audio = audioRef.current.audioEl.current;
const onEnded = props.onEnded;
setSourceIndex(0);
- if (call) {
+ if (call ) {
audio.src = call.url;
const playPromise = audio.play();
@@ -53,7 +53,7 @@ const MediaPlayer = (props) => {
}).catch(function (error) {
console.log("Automatic playback failed: " + error);
handlePause();
- onEnded();
+ //onEnded();
// Show a UI element to let the user manually start playback.
});
} else {
@@ -75,22 +75,22 @@ const MediaPlayer = (props) => {
{ src: '/android-chrome-192x192.png', sizes: '512x512', type: 'image/png' },
]
});
- audio.src = "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAAAwAAAbAAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV////////////////////////////////////////////AAAAAExhdmM1OC4xMwAAAAAAAAAAAAAAACQDkAAAAAAAAAGw9wrNaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAAAAANIAAAAAExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDsAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxHYAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";
- const playPromise = audio.play();
+ audio.src = "data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4Ljc2LjEwMAAAAAAAAAAAAAAA/+M4wAAAAAAAAAAAAEluZm8AAAAPAAAAAwAAAbAAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV////////////////////////////////////////////AAAAAExhdmM1OC4xMwAAAAAAAAAAAAAAACQDkAAAAAAAAAGw9wrNaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAAAAANIAAAAAExBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDsAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxHYAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";
+ const playPromise = audio.play();
- // In browsers that don’t yet support this functionality,
- // playPromise won’t be defined.
- if (playPromise !== undefined) {
- playPromise.then(function () {
+ // In browsers that don’t yet support this functionality,
+ // playPromise won’t be defined.
+ if (playPromise !== undefined) {
+ playPromise.then(function () {
+
+ }).catch(function (error) {
+ console.log("Automatic playback failed: " + error);
+ // Show a UI element to let the user manually start playback.
+ });
+ } else {
+ audio.src = false;
+ }
- }).catch(function (error) {
- console.log("Automatic playback failed: " + error);
- // Show a UI element to let the user manually start playback.
- });
- } else {
- audio.src = false;
- }
-
}, [playSilence]);
diff --git a/frontend/src/System/SystemCard.js b/frontend/src/System/SystemCard.js
index fb32556..1e44199 100644
--- a/frontend/src/System/SystemCard.js
+++ b/frontend/src/System/SystemCard.js
@@ -95,7 +95,7 @@ function SystemCard (props) {