Skip to content

Commit 708bccc

Browse files
authored
Merge branch 'webdevcody:main' into webdevcody#648-invalid-race-post-request
2 parents ed60da7 + dd10a0e commit 708bccc

File tree

4 files changed

+41
-39
lines changed

4 files changed

+41
-39
lines changed

CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Contributing
1+
# CONTRIBUTING
22

33
When contributing to this repository, please first discuss the change you wish to make via [issues](https://github.com/webdevcody/code-racer/issues), [discord](https://discord.gg/4kGbBaa).
44

@@ -70,7 +70,7 @@ To get started with Code Racer locally, follow these steps
7070
npm i
7171
```
7272

73-
8. Start the database
73+
8. Start the Database
7474

7575
```sh
7676
npm run dev:db

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<div align="center">
1313
<!-- TO ADD more Badges use -> https://shields.io/ -->
1414

15-
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors-anon/webdevcody/code-racer">
15+
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors/webdevcody/code-racer">
1616
<img alt="Repo License" src="https://img.shields.io/github/license/webdevcody/code-racer">
1717
<img alt="Website Status" src="https://img.shields.io/website?url=https%3A%2F%2Fcode-racer-eight.vercel.app">
1818

packages/app/src/app/dashboard/_components/recentRaces.tsx

+10-10
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,25 @@ export function RecentRacesTable({
4343
},
4444
},
4545
{
46-
accessorKey: "snippet",
46+
accessorKey: "name",
4747
header: "Name",
4848
cell: ({ cell }) => {
4949
const snippet = cell.getValue() as Snippet;
5050

51-
return <span>{snippet.name ?? "-"}</span>
52-
}
51+
return <span>{snippet.name ?? "-"}</span>;
52+
},
5353
},
5454
{
55-
accessorKey: "snippet",
55+
accessorKey: "language",
5656
header: "Language",
5757
cell: ({ cell }) => {
5858
const snippet = cell.getValue() as Snippet;
5959
const language = snippetLanguages.find((language) => {
60-
if (language.value === snippet.language) {
61-
return language.label
62-
}
63-
})
64-
60+
if (language.value === snippet.language) {
61+
return language.label;
62+
}
63+
});
64+
6565
return language?.label;
6666
},
6767
},
@@ -114,7 +114,7 @@ export function RecentRacesTable({
114114
},
115115
},
116116
],
117-
[],
117+
[]
118118
);
119119

120120
return (

packages/app/src/app/result/replay-timestamps.tsx

+28-26
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export const ReplayCode = ({ code }: TReplayCode) => {
1818
const [replayTimeStamp, setReplayTimeStamp] = useState<ReplayTimeStamp[]>([]);
1919
const [currentIndex, setCurrentIndex] = useState(0);
2020
const [isPlaying, setIsPlaying] = useState(false);
21+
const [isPlayingFinished, setIsPlayingFinished] = useState(false);
2122

2223
useEffect(() => {
2324
const getReplay = () => {
@@ -29,24 +30,22 @@ export const ReplayCode = ({ code }: TReplayCode) => {
2930
}, []);
3031

3132
useEffect(() => {
32-
let timeout: NodeJS.Timeout;
33-
34-
if (isPlaying && replayTimeStamp && currentIndex < replayTimeStamp.length) {
35-
const currentTimestamp = replayTimeStamp[currentIndex];
36-
let nextTimestampDelay = 0;
37-
38-
if (currentIndex + 1 < replayTimeStamp.length) {
39-
nextTimestampDelay =
40-
replayTimeStamp[currentIndex + 1].time - currentTimestamp.time;
41-
} else {
42-
return;
43-
}
44-
45-
timeout = setTimeout(() => {
46-
setCurrentIndex(currentIndex + 1);
47-
}, nextTimestampDelay);
33+
const isPlayingActive = isPlaying && replayTimeStamp;
34+
if (!isPlayingActive) return;
35+
36+
const nextIndex = currentIndex + 1;
37+
if (nextIndex === replayTimeStamp.length) {
38+
setIsPlayingFinished(true);
39+
return;
4840
}
4941

42+
const currentTimestamp = replayTimeStamp[currentIndex];
43+
const nextTimestampDelay = replayTimeStamp[nextIndex].time - currentTimestamp.time;
44+
45+
const timeout = setTimeout(() => {
46+
setCurrentIndex(currentIndex + 1);
47+
}, nextTimestampDelay);
48+
5049
return () => clearTimeout(timeout);
5150
}, [currentIndex, isPlaying, replayTimeStamp]);
5251

@@ -55,6 +54,7 @@ export const ReplayCode = ({ code }: TReplayCode) => {
5554
};
5655

5756
const handleRestart = () => {
57+
setIsPlayingFinished(false);
5858
setIsPlaying(false);
5959
setCurrentIndex(0);
6060
};
@@ -70,16 +70,18 @@ export const ReplayCode = ({ code }: TReplayCode) => {
7070
return (
7171
<div className="py-2 w-full bg-accent text-2xl text-primary relative group">
7272
<div className="opacity-0 group-hover:opacity-100 absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 flex space-x-2 z-10">
73-
{isPlaying ? (
74-
<PauseIcon
75-
onClick={handlePlayPause}
76-
className="w-12 h-12 text-primary cursor-pointer"
77-
/>
78-
) : (
79-
<PlayIcon
80-
onClick={handlePlayPause}
81-
className="w-12 h-12 text-primary cursor-pointer"
82-
/>
73+
{!isPlayingFinished && (
74+
isPlaying ? (
75+
<PauseIcon
76+
onClick={handlePlayPause}
77+
className="w-12 h-12 text-primary cursor-pointer"
78+
/>
79+
) : (
80+
<PlayIcon
81+
onClick={handlePlayPause}
82+
className="w-12 h-12 text-primary cursor-pointer"
83+
/>
84+
)
8385
)}
8486

8587
<RefreshCcw

0 commit comments

Comments
 (0)