88 flat ,
99 flatMap ,
1010 groupBy ,
11- isDeepEqual ,
11+ isDeepEqual , isDefined ,
1212 last ,
1313 map ,
1414 pipe ,
@@ -17,7 +17,7 @@ import {
1717 unique ,
1818 uniqueBy ,
1919 uniqueWith ,
20- values ,
20+ values
2121} from "remeda" ;
2222import type { AttemptEntity } from "../../database/schemas/attempt-entity" ;
2323import type { AttemptsEntity } from "../../database/schemas/attempts-entity" ;
@@ -27,7 +27,7 @@ import type { SumTimeRecords } from "../types/sum-time-records";
2727import { Time } from "../utils/time" ;
2828import { createMemo } from "solid-js" ;
2929
30- function getRecordsBy < T extends Attempt > ( attempts : Array < T > , by : Parameters < typeof groupBy < T > > [ 0 ] ) : Array < T > {
30+ function getRecordsBy ( attempts : Array < Attempt > , by : Parameters < typeof groupBy < Attempt > > [ 0 ] ) : Array < Attempt > {
3131 return pipe (
3232 attempts ,
3333 groupBy ( by ) ,
@@ -140,19 +140,30 @@ function useAttemptsFactory(store: Store<AttemptsEntity>) {
140140 ) ,
141141 ) ;
142142
143- const getSumTimeRecords = createMemo < SumTimeRecords > ( ( ) => {
143+ const getSumRecords = ( attempts : Array < Attempt > ) => {
144144 return pipe (
145- getTimeRecords ( ) ,
145+ attempts ,
146146 uniqueBy ( ( attempt ) => attempt . raw . track ) ,
147- map ( ( record ) => Time . parse ( record . time ?? "0:00.000" ) - Time . parse ( "0:00.000" ) ) ,
147+ filter ( ( record ) : record is Attempt & { time : string } => isDefined ( record . time ) ) ,
148+ map ( ( record ) => Time . parse ( record . time ) ) ,
148149 ( times ) => {
149150 return {
150- time : Time . formatH ( Time . parse ( "0:00.000" ) + sum ( times ) ) ,
151+ time : Time . formatH ( sum ( times ) ) ,
151152 trackCount : times . length ,
152153 } ;
153154 } ,
154- ) ;
155- } ) ;
155+ )
156+ }
157+
158+ const getSumSplitsRecords = createMemo < SumTimeRecords > ( ( ) => {
159+ return getSumRecords ( getSplitRecords ( ) ) ;
160+ } )
161+
162+ // TOOD: Appuyer sur le bouton de switch ou appuyer sur le recording peut etre générer un probleme
163+
164+ const getSumTimeRecords = createMemo < SumTimeRecords > ( ( ) => {
165+ return getSumRecords ( getTimeRecords ( ) ) ;
166+ } )
156167
157168 const merge = ( ...attempts : Array < Array < AttemptEntity > > ) : Array < AttemptEntity > => {
158169 return pipe (
@@ -173,6 +184,7 @@ function useAttemptsFactory(store: Store<AttemptsEntity>) {
173184 getSplitRecordByTrack,
174185 getFlattenRecords,
175186 getSumTimeRecords,
187+ getSumSplitsRecords,
176188 merge,
177189 } ;
178190}
0 commit comments