From 905a1117e1850c678ef900d41a34b0cf76104e06 Mon Sep 17 00:00:00 2001 From: Sabine Lim Date: Sun, 14 May 2023 03:18:39 +1000 Subject: [PATCH] Derived --- Basalt/plugins/xml.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Basalt/plugins/xml.lua b/Basalt/plugins/xml.lua index fd77bfd..8d35d2a 100644 --- a/Basalt/plugins/xml.lua +++ b/Basalt/plugins/xml.lua @@ -167,6 +167,8 @@ local function registerFunctionEvent(self, data, event, renderContext) end end +local effectStack = {} + local clearEffectDependencies = function(effect) for _, dependency in ipairs(effect.dependencies) do for index, backlink in ipairs(dependency) do @@ -178,10 +180,8 @@ local clearEffectDependencies = function(effect) effect.dependencies = {}; end -local effectStack = {} - return { - basalt = function() + basalt = function(basalt) local object = { reactive = function(initialValue) local value = initialValue @@ -217,6 +217,14 @@ return { end effect.execute = execute effect.execute() + end, + + derived = function(computeFn) + local getValue, setValue = basalt.reactive(); + basalt.effect(function() + setValue(computeFn()) + end) + return getValue; end } return object