mapped all services to our new me.do. prop

This commit is contained in:
Samuel Andert 2023-08-03 16:47:26 +02:00
parent 55b701a859
commit c9be693408
3 changed files with 24 additions and 18 deletions

View File

@ -8,11 +8,12 @@
let childStore;
$: if (me.do) {
childStore = me.do.subscribeComposer('@ComposerBob');
childStore = me.do.core.subscribeComposer('@ComposerBob');
}
$: {
if ($childStore && $childStore.machine.state) {
console.log('ALICE machine service: ' + JSON.stringify(me.do.machine));
me.do.machine.send($childStore.machine.state);
}
}

View File

@ -4,9 +4,9 @@
export let machineService;
const handleButton = () => {
console.log('learn ready machine: ' + JSON.stringify(machineService));
console.log('BOB machine service: ' + JSON.stringify(me.do.machine));
console.log('Sending TOGGLE event to the machine');
machineService.send('TOGGLE');
me.do.machine.send('TOGGLE');
};
</script>

View File

@ -35,6 +35,12 @@
let machineService;
let services: Record<string, any> = {
core: coreServices,
machine: null
// otherFutureService: null,
};
$: {
layoutStyle = computeLayoutStyle(composer?.layout);
@ -47,28 +53,30 @@
}
if (composer?.machine) {
const machine = Machine({ ...composer.machine, id: composer.id });
machineService = interpret(machine).onTransition((state) => {
let composerMachineService = interpret(machine).onTransition((state) => {
getComposerStore(composer.id).update((storeValue) => ({
...storeValue,
machine: { state: state.value }
}));
});
machineService.start();
composer.machineService = machineService;
composerMachineService.start();
composer.me.do.machine = composerMachineService;
composer.machineService = composerMachineService;
}
if (composer?.children) {
composer.children.forEach((child) => {
if (child.machine) {
const childMachine = Machine({ ...child.machine, id: child.id });
machineService = interpret(childMachine).onTransition((state) => {
let childMachineService = interpret(childMachine).onTransition((state) => {
getComposerStore(child.id).update((storeValue) => ({
...storeValue,
machine: { state: state.value }
}));
});
machineService.start();
child.machineService = machineService;
childMachineService.start();
child.me.do.machine = childMachineService;
child.machineService = childMachineService;
}
});
}
@ -109,15 +117,16 @@
}
return FallBack;
}
async function loadComponentAndService(component: IComposer) {
const componentName = component.component || 'FallBack';
let services = {
core: coreServices,
machine: component.machineService || null
// otherFutureService: null,
};
component.me = {
id: component.id,
do: {
...loadedServices.core,
machine: component.machineService || null
}
do: services
};
return await getComponent(componentName);
}
@ -133,8 +142,6 @@
id={composer.id}
store={getComposerStore(composer.id)}
machine={composer.machine}
services={loadedServices}
machineService={child.machineService}
me={composer.me}
/>
{/await}
@ -150,8 +157,6 @@
id={child.id}
store={getComposerStore(child.id)}
machine={child.machine}
services={loadedServices}
machineService={child.machineService}
me={child.me}
/>
{#if child.children && child.children.length}