diff --git a/src/components/Season/SeasonCardOnGoing.tsx b/src/components/Season/SeasonCardOnGoing.tsx index 9e68d0cadce691a4de72f4946341221edba5d37d..abe7c9e6926f44c6620b60d940a766ed245b4179 100644 --- a/src/components/Season/SeasonCardOnGoing.tsx +++ b/src/components/Season/SeasonCardOnGoing.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useState } from 'react' +import React, { useEffect, useState } from 'react' import { Client, useClient } from 'cozy-client' import { useI18n } from 'cozy-ui/transpiled/react/I18n' import { useDispatch } from 'react-redux' @@ -73,15 +73,6 @@ const SeasonCardOnGoing: React.FC<SeasonCardOnGoingProps> = ({ icon ? setSeasonIcon(icon) : setSeasonIcon(defaultSeasonIcon) }) }, [userSeason]) - const resetProgress = useCallback(async () => { - const seasonService = new SeasonService(client) - userSeason.progress = 0 - const updatedSeason = await seasonService.updateUserSeason( - userSeason, - UpdateUserSeason.SEASON - ) - dispatch(updateUserSeasonList(updatedSeason)) - }, [client, dispatch, userSeason]) //TODO change icon and stars when finished return ( diff --git a/src/components/Season/SeasonView.tsx b/src/components/Season/SeasonView.tsx index 7a6a544d92e5e50a951bea4ede0b3ad28b7a98a5..1855c9b21b391507b020e82e22b3c221abaf9c02 100644 --- a/src/components/Season/SeasonView.tsx +++ b/src/components/Season/SeasonView.tsx @@ -10,7 +10,7 @@ import StyledIconbutton from 'components/CommonKit/IconButton/StyledIconButton' import LeftArrowIcon from 'assets/icons/ico/left-arrow.svg' import RightArrowIcon from 'assets/icons/ico/right-arrow.svg' import { UserSeasonState } from 'enum/userSeason.enum' -import { indexOf } from 'lodash' +import { UserSeason } from 'models' const SeasonView: React.FC = () => { const { userSeasonList } = useSelector((state: EcolyoState) => state.season) @@ -97,7 +97,7 @@ const SeasonView: React.FC = () => { } useEffect(() => { - userSeasonList.map((season, i) => { + userSeasonList.forEach((season: UserSeason, i: number) => { if ( season.state === UserSeasonState.UNLOCKED || season.state === UserSeasonState.ONGOING diff --git a/src/models/boss.model.ts b/src/models/boss.model.ts index 2d0fda0be572611d1f8fa82aa893fb74f8f90388..c8cb9759b4832cf1ecdfd3485361760bd0efc0dd 100644 --- a/src/models/boss.model.ts +++ b/src/models/boss.model.ts @@ -1,5 +1,7 @@ import { DateTime, Duration } from 'luxon' import { UserBossState } from 'enum/userBoss.enum' +import { FluidType } from 'enum/fluid.enum' +import { Dataload } from './dataload.model' export interface BossEntity { id: string @@ -7,13 +9,11 @@ export interface BossEntity { description: string duration: Duration } -export interface Boss { - id: string - userConsumption: number - title: string - description: string +export interface Boss extends BossEntity { duration: Duration threshold: number state: UserBossState startDate: DateTime | null + fluidTypes: FluidType[] + userConsumption: number } diff --git a/src/models/index.ts b/src/models/index.ts index ab6b25d84fbeb5ffa908cbd570a2d171aff80706..2ecb88edeea4fd5d10a956cdd0bdca5ddbfe62a8 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -14,7 +14,6 @@ export * from './profile.model' export * from './relation.model' export * from './report.model' export * from './season.model' -export * from './boss.model' export * from './timePeriod.model' export * from './trigger.model' export * from './userInstanceSettings.model' diff --git a/src/models/season.model.ts b/src/models/season.model.ts index cc12d10cff0d1e26e02d5843b8c0939399881c3e..64491431d883572ee3b0a029ba6e90655acdf0bd 100644 --- a/src/models/season.model.ts +++ b/src/models/season.model.ts @@ -15,7 +15,6 @@ export interface SeasonEntity { quizType: string } -// Entity of User Season export interface UserSeasonEntity { id: string title: string diff --git a/src/services/boss.service.ts b/src/services/boss.service.ts index 6ea0dff8ef07fa44666962a2bd5fbaa9dba4cb06..b10a5e28cab69dc7c9bacfad6ee59743e1d8553b 100644 --- a/src/services/boss.service.ts +++ b/src/services/boss.service.ts @@ -19,13 +19,11 @@ export default class BossService { } private setValidPeriod( - seasonFluidStatus: FluidStatus[], + fluidStatus: FluidStatus[], userBoss: Boss ): TimePeriod { - // for each to know which fluid has the most ancient valid data - // la date la plus ancienne = end, end - duration.day = start let lastDate: DateTime = DateTime.local() - seasonFluidStatus.forEach(fluid => { + fluidStatus.forEach(fluid => { if (fluid.lastDataDate !== null && fluid.lastDataDate < lastDate) { lastDate = fluid.lastDataDate } @@ -41,7 +39,6 @@ export default class BossService { } public async getConsumptionInfo(userBoss: Boss): Promise<number> { - // Get Max energy const fluidService = new FluidService(this._client) const consumptionService = new ConsumptionService(this._client) const performanceService = new PerformanceService() @@ -132,7 +129,7 @@ export default class BossService { return updatedUserBoss } - public formatToUserBoss(boss: BossEntity): Boss { + public parseBossEntityToBoss(boss: BossEntity): Boss { const userBoss: Boss = { id: boss.id, title: boss.title, @@ -141,6 +138,7 @@ export default class BossService { threshold: 0, state: UserBossState.LOCKED, startDate: null, + fluidTypes: [], userConsumption: 0, } return userBoss @@ -177,7 +175,7 @@ export default class BossService { ) if (bossEntityIndex >= 0) { const bossEntity: BossEntity = bossEntityList[bossEntityIndex] - boss = this.formatToUserBoss(bossEntity) + boss = this.parseBossEntityToBoss(bossEntity) } } return boss diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts index 003d533193c7ad165e7d7c8d806600d807d9786d..d10d6af17f7fbf0bd1d1848a26a6322a28c60086 100644 --- a/src/services/initialization.service.ts +++ b/src/services/initialization.service.ts @@ -19,7 +19,7 @@ import { } from 'doctypes' import { FluidType } from 'enum/fluid.enum' -import { FluidStatus, Profile } from 'models' +import { FluidStatus, Profile, UserSeason } from 'models' import EcogestureService from 'services/ecogesture.service' import SeasonService from 'services/season.service' @@ -33,14 +33,12 @@ import KonnectorStatusService from 'services/konnectorStatus.service' import KonnectorService from 'services/konnector.service' import AccountService from 'services/account.service' import FluidService from 'services/fluid.service' +import BossService from 'services/boss.service' import { hashFile } from 'utils/hash' import { getActualReportDate } from 'utils/date' import { TimeStep } from 'enum/timeStep.enum' -import { UserSeason } from 'models/season.model' -import BossService from './boss.service' - export default class InitializationService { private readonly _client: Client