From f1dbe60f72356267b5e1040274948dc3935e38be Mon Sep 17 00:00:00 2001 From: Roman Acevedo Date: Sat, 30 Mar 2024 15:57:17 +0100 Subject: [PATCH] feat(effect): you can now link an existing effect to a choice --- README.md | 4 +-- packages/renderer/src/App.svelte | 2 +- .../admin-view/ChoiceEditionSidebar.svelte | 34 ++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e5c54de..f1af21c 100644 --- a/README.md +++ b/README.md @@ -23,5 +23,5 @@ generated from https://github.com/cawa-93/vite-electron-builder - link another event from event - ~create an effect from event~ - ~create an effect from a choice~ - - link an effect to event - - link an effect to choice + - ~link an effect to event~ + - ~link an effect to choice~ diff --git a/packages/renderer/src/App.svelte b/packages/renderer/src/App.svelte index ae660d5..8ccf2a3 100644 --- a/packages/renderer/src/App.svelte +++ b/packages/renderer/src/App.svelte @@ -90,7 +90,7 @@ modifyChain(chain.chainFileAbsolutePath, chain.chain, e)} /> {:else} - modifyChain(chain.chainFileAbsolutePath, chain.chain, e)} /> {/if} {/if} diff --git a/packages/renderer/src/admin-view/ChoiceEditionSidebar.svelte b/packages/renderer/src/admin-view/ChoiceEditionSidebar.svelte index c4c5ff8..c7ddb67 100644 --- a/packages/renderer/src/admin-view/ChoiceEditionSidebar.svelte +++ b/packages/renderer/src/admin-view/ChoiceEditionSidebar.svelte @@ -8,12 +8,24 @@ import EffectCreationForm from '/@/admin-view/EffectCreationForm.svelte'; import type {CreateEffect} from '/@/file-synchronization/CreateEffect'; import Button from '/@/admin-view/Button.svelte'; + import LinkEffectForm from '/@/admin-view/LinkEffectForm.svelte'; + import type {LinkEffect} from '/@/file-synchronization/LinkEffect'; + import type {Effect} from '/@/model/Effect'; export let selectedContentToEdit: ChoiceToDisplay; + export let chainEffects: Record; + $: availableEffects = getAvailableEffects(chainEffects); + const getAvailableEffects = (chainEffects: Record): Record => { + let res: Record = {}; + Object.entries(chainEffects) + .filter(([name, effect]) => !selectedContentToEdit.effects.find(x => x.id === name)) + .forEach(([name, effect]) => res[name] = effect); + return res; + }; enum CreationFormDisplayed { - none, createEvent, createEffect + none, createEvent, createEffect, linkEffect } let currentCreationFormDisplayed = CreationFormDisplayed.none; @@ -52,7 +64,16 @@ currentCreationFormDisplayed = CreationFormDisplayed.none; }; + const onEffectLink = (linkEffect: LinkEffect) => { + console.log('linking effect: ' + linkEffect.effectName); + dispatch('save', { + type: 'linkEffect', + content: linkEffect, + }); + currentCreationFormDisplayed = CreationFormDisplayed.none; + }; +

Admin sidebar

@@ -67,6 +88,12 @@ parentId={selectedContentToEdit.id} on:createEffect={(msg) => onEffectCreation(msg.detail)} > + {:else if currentCreationFormDisplayed === CreationFormDisplayed.linkEffect} + onEffectLink(msg.detail)} + > {:else if currentCreationFormDisplayed === CreationFormDisplayed.none}

Modifying choice:

@@ -84,6 +111,11 @@ Create a new effect
+ {/if}