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