diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-04-30 19:55:51 -0300 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-04-30 19:56:19 -0300 |
| commit | b320d174be0b114b70cae64112f3e584033d9e93 (patch) | |
| tree | f257e000a81fb489dd3a0ede9aa27ad2df31c6c4 /src/data/things/flash/Flash.js | |
| parent | 6c4c1eb9e963aa71a65a7d6f1b2cbdfa0f4416de (diff) | |
content, data: FlashSide.isolateActs, previous{Flash,Act}, etc preview
Diffstat (limited to 'src/data/things/flash/Flash.js')
| -rw-r--r-- | src/data/things/flash/Flash.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/data/things/flash/Flash.js b/src/data/things/flash/Flash.js index 1f290b3f..b06b0452 100644 --- a/src/data/things/flash/Flash.js +++ b/src/data/things/flash/Flash.js @@ -1,4 +1,5 @@ import {input, V} from '#composite'; +import {atOffset} from '#sugar'; import Thing from '#thing'; import {anyOf, isColor, isDirectory, isNumber, isString} from '#validators'; @@ -138,6 +139,36 @@ export class Flash extends Thing { withPropertyFromObject('act', V('side')), exposeDependency('#act.side'), ], + + previousFlash: { + flags: {expose: true}, + expose: { + dependencies: ['this', 'act', 'side'], + compute: ({this: flash, act, side}) => + (flash !== act.flashes.at(0) + ? atOffset(act.flashes, act.flashes.indexOf(flash), -1) + : side.isolateActs + ? null + : act.previousAct + ? act.previousAct.flashes.at(-1) + : null), + }, + }, + + nextFlash: { + flags: {expose: true}, + expose: { + dependencies: ['this', 'act', 'side'], + compute: ({this: flash, act, side}) => + (flash !== act.flashes.at(-1) + ? atOffset(act.flashes, act.flashes.indexOf(flash), +1) + : side.isolateActs + ? null + : act.nextAct + ? act.nextAct.flashes.at(0) + : null), + }, + }, }); static [Thing.getSerializeDescriptors] = ({ |