diff --git a/assets/jsons/bs-versions.json b/assets/jsons/bs-versions.json index 85bd9ff8..5d566c60 100644 --- a/assets/jsons/bs-versions.json +++ b/assets/jsons/bs-versions.json @@ -533,5 +533,13 @@ "ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/c328e407367e9914abaf92f609501877ee5abb63.png", "ReleaseDate": "1680623885", "year": "2023" + }, + { + "BSVersion": "1.29.4", + "BSManifest": "6291266771922375922", + "ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/3708194993422325380", + "ReleaseImg": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/32055887/9c3d476c03e4a2ac72ca5df016b7c94d242b41cb.png", + "ReleaseDate": "1683644991", + "year": "2023" } ] \ No newline at end of file diff --git a/src/renderer/components/modal/modal-types/models/delete-models-modal.component.tsx b/src/renderer/components/modal/modal-types/models/delete-models-modal.component.tsx new file mode 100644 index 00000000..cb78accc --- /dev/null +++ b/src/renderer/components/modal/modal-types/models/delete-models-modal.component.tsx @@ -0,0 +1,36 @@ +import React, { useState } from 'react' +import { ModalComponent, ModalExitCode } from 'renderer/services/modale.service' +import { BsmLocalModel } from 'shared/models/models/bsm-local-model.interface' +import BeatConflict from '../../../../../../assets/images/apngs/beat-conflict.png' +import { BsmImage } from 'renderer/components/shared/bsm-image.component' +import { BsmCheckbox } from 'renderer/components/shared/bsm-checkbox.component' +import { BsmButton } from 'renderer/components/shared/bsm-button.component' +import { useTranslation } from 'renderer/hooks/use-translation.hook' + +export const DeleteModelsModal: ModalComponent = ({resolver, data}) => { + + const t = useTranslation(); + const [remember, setRemember] = useState(false); + + const isMultiple = data.models.length > 1; + console.log(isMultiple); + + return ( +
+

TODO TITLE

+ +

TODO DESK

+ {data.linked &&

TODO LINKED

} + {!isMultiple && ( +
+ setRemember(val)}/> + {t("modals.misc.remember-my-choice")} +
+ )} +
+ resolver({exitCode: ModalExitCode.CANCELED})} withBar={false} text="misc.cancel"/> + resolver({exitCode: ModalExitCode.COMPLETED})} withBar={false} text="misc.delete"/> +
+ + ) +} diff --git a/src/renderer/services/models-management/models-manager.service.ts b/src/renderer/services/models-management/models-manager.service.ts index 9cef601c..058490c2 100644 --- a/src/renderer/services/models-management/models-manager.service.ts +++ b/src/renderer/services/models-management/models-manager.service.ts @@ -15,6 +15,7 @@ import { ProgressionInterface } from "shared/models/progress-bar"; import { ArchiveProgress } from "shared/models/archive.interface"; import { NotificationService } from "../notification.service"; import { ConfigurationService } from "../configuration.service"; +import { DeleteModelsModal } from "renderer/components/modal/modal-types/models/delete-models-modal.component"; export class ModelsManagerService { @@ -113,21 +114,26 @@ export class ModelsManagerService { } public async deleteModels(models: BsmLocalModel[], version?: BSVersion): Promise{ - - const types = Array.from(new Set(models.map(m => m.type))); - - const modelsLinked = await (async () => { // USE AND COMPUTE ONLY IF NEEDED (askModal) - for(const type of types){ - if(!(await this.isModelsLinked(version, type))){ continue; } - return true; - } - return false; - })(); - const askModal = models.length > 1 || !this.config.get(ModelsManagerService.REMEMBER_CHOICE_DELETE_MODEL_KEY); - // ADD MODAL HERE + console.log(models); + + if(askModal){ + + const types = Array.from(new Set(models.map(m => m.type))); + + const linked = await (async () => { + for(const type of types){ + if(!(await this.isModelsLinked(version, type))){ continue; } + return true; + } + return false; + })(); + + const res = await this.modalService.openModal(DeleteModelsModal, { models, linked }); + if(res.exitCode !== ModalExitCode.COMPLETED){ return false; } + } const showProgressBar = this.progressBar.require();