Skip to content

Commit 5d0beee

Browse files
fix build errors
1 parent 94da96d commit 5d0beee

File tree

7 files changed

+47
-32
lines changed

7 files changed

+47
-32
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"@mui/styles": "^5.8.7",
2424
"@mui/x-date-pickers": "^5.0.16",
2525
"@react-google-maps/api": "^2.2.0",
26+
"@react-google-maps/marker-clusterer": "^2.20.0",
2627
"@turf/boolean-point-in-polygon": "^7.1.0",
2728
"@turf/center-of-mass": "^6.5.0",
2829
"@turf/destination": "^6.5.0",
@@ -41,6 +42,7 @@
4142
"i": "^0.3.7",
4243
"interweave": "^12.9.0",
4344
"lodash": "^4.17.21",
45+
"marker-clusterer": "link:@types/@react-google-maps/marker-clusterer",
4446
"moment": "^2.29.4",
4547
"nanoid": "^4.0.0",
4648
"nosleep.js": "^0.12.0",
@@ -53,7 +55,7 @@
5355
"react-device-detect": "^2.1.2",
5456
"react-dom": "^17.0.2",
5557
"react-helmet": "^6.1.0",
56-
"react-router": "^5.2.0",
58+
"react-router": "^5.3.4",
5759
"react-router-dom": "^5.2.0",
5860
"react-share": "^4.4.0",
5961
"regenerator-runtime": "^0.13.9",
@@ -74,6 +76,7 @@
7476
"@types/react": "^17.0.16",
7577
"@types/react-dom": "^17.0.9",
7678
"@types/react-helmet": "^6.1.2",
79+
"@types/react-router": "^5.1.20",
7780
"@types/react-router-dom": "^5.1.8",
7881
"@types/wavesurfer.js": "^5.2.2",
7982
"@vitejs/plugin-react": "^4.3.4",

pnpm-lock.yaml

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/ListenPage/Map/Speakers/SpeakerImages.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import { GroundOverlay, GroundOverlayProps, useGoogleMap } from '@react-google-maps/api';
1+
import speakerImage from '@/assets/speaker.png';
2+
import { useRoundware } from '@/hooks';
3+
import { speakerPolygonColors as colors, speakerPolygonOptions } from '@/styles/speaker';
4+
import { GroundOverlay, GroundOverlayProps } from '@react-google-maps/api';
25
import getCenterOfMass from '@turf/center-of-mass';
36
import destination from '@turf/destination';
47
import distance from '@turf/distance';
58
import { point, Point, polygon, Position } from '@turf/helpers';
69
import midpoint from '@turf/midpoint';
7-
import speakerImage from '@/assets/speaker.png';
8-
import { useRoundware } from '@/hooks';
9-
import React, { useMemo, useState } from 'react';
10+
import { useMemo } from 'react';
1011
import { ISpeakerData } from 'roundware-web-framework';
11-
import { speakerPolygonColors as colors, speakerPolygonOptions } from '@/styles/speaker';
1212
interface Props {}
1313

1414
const getColorForIndex = (index: number): string => {
@@ -71,7 +71,12 @@ const SpeakerImages = (props: Props) => {
7171
const prop: GroundOverlayProps & {
7272
key: string;
7373
} = {
74-
bounds: new google.maps.LatLngBounds(new google.maps.LatLng(squarePoints[2][1], squarePoints[2][0]), new google.maps.LatLng(squarePoints[0][1], squarePoints[0][0])),
74+
bounds: {
75+
north: squarePoints[0][1],
76+
south: squarePoints[2][1],
77+
east: squarePoints[0][0],
78+
west: squarePoints[2][0],
79+
},
7580
url: speakerImage,
7681
options: {
7782
opacity: 0.2,

src/components/ListenPage/Map/Speakers/SpeakerLoadingIndicator.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,20 @@ const SpeakerLoadingIndicator = (props: Props) => {
1212

1313
const [loadingSpeakers, setLoadingSpeakers] = useState<{ id: number; value: number }[]>([]);
1414
useEffect(() => {
15-
roundware.mixer.speakerEngine?.speakerTracks?.forEach((sp) => {
16-
const player = sp.player;
17-
player.onLoadingProgress((per: number) => {
18-
if (per <= 100)
15+
roundware.mixer.speakerEngine?.speakers?.forEach((sp) => {
16+
sp.request?.addEventListener('progress', (ev) => {
17+
if (ev.loaded / ev.total <= 100)
1918
setLoadingSpeakers((prev) => [
20-
...prev.filter((s) => s.id != sp.speakerId),
19+
...prev.filter((s) => s.id != sp.data.id),
2120
{
22-
id: sp.speakerId,
23-
value: per,
21+
id: sp.data.id,
22+
value: (ev.loaded / ev.total) * 100,
2423
},
2524
]);
26-
else setLoadingSpeakers((prev) => [...prev.filter((s) => s.id != sp.speakerId)]);
25+
else setLoadingSpeakers((prev) => [...prev.filter((s) => s.id != sp.data.id)]);
2726
});
2827
});
29-
}, [roundware?.mixer?.speakerEngine?.speakerTracks]);
28+
}, [roundware?.mixer?.speakerEngine?.speakers]);
3029

3130
if (loadingSpeakers.every((s) => s.value == 100)) return null;
3231
return (

src/components/ListenPage/Map/Speakers/SpeakerReplayButton.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,21 @@ const SpeakerReplayButton = (props: Props) => {
99
const [showReplay, setShowReplay] = useState(false);
1010
useEffect(() => {
1111
setupListener();
12-
}, [roundware?.mixer?.speakerEngine?.speakerTracks]);
12+
}, [roundware?.mixer?.speakerEngine?.speakers]);
1313

1414
const setupListener = () => {
15-
if (roundware.mixer && Array.isArray(roundware.mixer.speakerEngine?.speakerTracks)) {
16-
roundware.mixer.speakerEngine?.onAllSpeakersEnd(() => {
17-
setShowReplay(true);
18-
console.log(`all ended`);
15+
if (roundware.mixer && Array.isArray(roundware.mixer.speakerEngine?.speakers)) {
16+
roundware.mixer.speakerEngine?.speakers?.forEach((sp) => {
17+
sp.request?.addEventListener('ended', () => {
18+
setShowReplay(true);
19+
console.log(`all ended`);
20+
});
1921
});
2022
}
2123
};
2224

2325
const handleOnReplay = () => {
24-
roundware?.mixer?.speakerEngine?.replay();
26+
// roundware?.mixer?.speakerEngine?.replay();
2527
setShowReplay(false);
2628
};
2729
console.log(`show replay`, showReplay);

src/components/ListenPage/RoundwareMixerControl.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const RoundwareMixerControl = () => {
4848
}, [roundware]);
4949

5050
function seek(offset: number): void {
51-
(roundware.mixer.speakerEngine as any)?.speakerTracks?.forEach((s: any) => {
51+
(roundware.mixer.speakerEngine as any)?.speakers?.forEach((s: any) => {
5252
const currentTime = s.player.audio.currentTime;
5353
let newTime = currentTime + offset;
5454

src/components/ListenPage/SpeakerToggle.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@ const SpeakerToggle = () => {
1616
const { roundware, setHideSpeakerPolygons } = useRoundware();
1717
useEffect(() => {
1818
if (speakerValues) {
19-
roundware.mixer.speakerEngine?.speakerTracks?.forEach((st) => {
20-
if (st.speakerId in speakerValues) {
21-
if (speakerValues[st.speakerId] === false) {
22-
console.log('st', st.player);
23-
st.player.fadeOutAndPause();
24-
console.log('st', st.player);
19+
roundware.mixer.speakerEngine?.speakers?.forEach((st) => {
20+
if (st.data.id in speakerValues) {
21+
if (speakerValues[st.data.id] === false) {
22+
st.fadeOutAndStopBufferSource();
2523
} else {
26-
st.updateVolume();
2724
}
2825
}
2926
});
@@ -34,7 +31,7 @@ const SpeakerToggle = () => {
3431
.map((key) => parseInt(key, 10))
3532
);
3633
}
37-
}, [speakerValues, ...(roundware.mixer.speakerEngine?.speakerTracks?.map((st) => st.calculatedVolume) ?? [])]);
34+
}, [speakerValues, ...(roundware.mixer.speakerEngine?.speakers?.map((st) => st.calculatedVolume) ?? [])]);
3835

3936
return (
4037
<CustomMapControl position={window.google.maps.ControlPosition.RIGHT_CENTER}>

0 commit comments

Comments
 (0)