Skip to content

Commit 013409d

Browse files
authored
Merge pull request #24 from grapp-dev/fix/combine-latest
fix: ensure that the `signal_values` provided are resolved correctly when using `combine_latest`
2 parents 67cb2f7 + 2a9559b commit 013409d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

docs/pages/docs/signal.mdx

+1
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ And here's the final result:
268268
name="combine_latest"
269269
args={[
270270
['...', 'SignalValue[]'],
271+
['combinator_fn', 'fun(...): T']
271272
]}
272273
returns="SignalValue"
273274
/>

lua/nui-components/signal/value.lua

+12-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,18 @@ function SignalValue:skip(n)
5959
end
6060

6161
function SignalValue:combine_latest(...)
62-
self._private.observable = self._private.observable:combine_latest(...)
62+
local signal_values = { ... }
63+
64+
local sources = fn.imap(signal_values, function(signal_value, index)
65+
if type(signal_value) ~= "function" and not (index == #signal_values) then
66+
return signal_value:get_observable()
67+
end
68+
69+
return signal_value
70+
end)
71+
72+
self._private.observable = self._private.observable:combine_latest(fn.unpack(sources))
73+
6374
return self
6475
end
6576

0 commit comments

Comments
 (0)