diff --git a/front/components/UI/ScaffoldDesktopCC.tsx b/front/components/UI/ScaffoldDesktopCC.tsx
index 83be936..83dfb83 100644
--- a/front/components/UI/ScaffoldDesktopCC.tsx
+++ b/front/components/UI/ScaffoldDesktopCC.tsx
@@ -42,7 +42,7 @@ const SongHistory = (props: { quantity: number }) => {
if (acc.length === 0) {
return [curr];
}
- if (acc.find((h) => h.song.id === curr.song.id)) {
+ if (acc.find((h) => h.song!.id === curr.song!.id)) {
return acc;
}
return [...acc, curr];
@@ -59,15 +59,17 @@ const SongHistory = (props: { quantity: number }) => {
) : (
musics.map((song) => (
- navigation.navigate('Play', { songId: song.id })}>
- {song.name}
+ navigation.navigate('Play', { songId: song!.id })}
+ >
+ {song!.name}
))
diff --git a/front/models/SongHistory.ts b/front/models/SongHistory.ts
index 7070407..bec25bd 100644
--- a/front/models/SongHistory.ts
+++ b/front/models/SongHistory.ts
@@ -3,27 +3,30 @@ import ResponseHandler from './ResponseHandler';
import { ModelValidator } from './Model';
import { SongValidator } from './Song';
-
-export const SongHistoryItemValidator = yup.object({
- songID: yup.number().required(),
- song: SongValidator.optional(),
- userID: yup.number().required(),
- info: yup.object({
- good: yup.number().required(),
- great: yup.number().required(),
+export const SongHistoryItemValidator = yup
+ .object({
+ songID: yup.number().required(),
+ song: SongValidator.optional(),
+ userID: yup.number().required(),
+ info: yup
+ .object({
+ good: yup.number().required(),
+ great: yup.number().required(),
+ score: yup.number().required(),
+ wrong: yup.number().required(),
+ missed: yup.number().required(),
+ perfect: yup.number().required(),
+ max_score: yup.number().required(),
+ max_streak: yup.number().required(),
+ // there's also a current streak key but it doesn't
+ // conceptually makes sense outside of the played game
+ })
+ .required(),
score: yup.number().required(),
- wrong: yup.number().required(),
- missed: yup.number().required(),
- perfect: yup.number().required(),
- max_score: yup.number().required(),
- max_streak: yup.number().required(),
- // there's also a current streak key but it doesn't
- // conceptually makes sense outside of the played game
- }).required(),
- score: yup.number().required(),
- playDate: yup.date().required(),
- difficulties: yup.mixed().required(),
-}).concat(ModelValidator);
+ playDate: yup.date().required(),
+ difficulties: yup.mixed().required(),
+ })
+ .concat(ModelValidator);
export type SongHistoryItem = yup.InferType;
export const SongHistoryItemHandler: ResponseHandler = {
diff --git a/front/views/HomeView.tsx b/front/views/HomeView.tsx
index 3c5b1b5..da1d154 100644
--- a/front/views/HomeView.tsx
+++ b/front/views/HomeView.tsx
@@ -59,10 +59,10 @@ const HomeView = (props: RouteProps<{}>) => {
playHistoryQuery.data
?.map((x) => x.song)
.map((song) => ({
- cover: song.cover,
- name: song.name,
- songId: song.id,
- artistName: song.artist!.name,
+ cover: song!.cover,
+ name: song!.name,
+ songId: song!.id,
+ artistName: song!.artist!.name,
})) ?? []
}
/>
diff --git a/front/views/PlayView.tsx b/front/views/PlayView.tsx
index 09d25e7..7ad4b75 100644
--- a/front/views/PlayView.tsx
+++ b/front/views/PlayView.tsx
@@ -86,6 +86,7 @@ const PlayView = ({ songId, route }: RouteProps) => {
const [score, setScore] = useState(0); // Between 0 and 100
// const fadeAnim = useRef(new Animated.Value(0)).current;
const getElapsedTime = () => stopwatch.getElapsedRunningTime() - 3000;
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
const [midiKeyboardFound, setMidiKeyboardFound] = useState();
// first number is the note, the other is the time when pressed on release the key is removed
// eslint-disable-next-line @typescript-eslint/no-unused-vars