mirror of
https://github.com/littensy/charm.git
synced 2026-10-20 17:44:08 +00:00
fix: resolve type errors for new luau version
Some checks are pending
CI / analyze (push) Waiting to run
Some checks are pending
CI / analyze (push) Waiting to run
This commit is contained in:
parent
b05f3a9de6
commit
73fbfb2685
6 changed files with 13 additions and 13 deletions
|
|
@ -39,10 +39,10 @@ local syncCallback: ((client: any, payloads: { SyncPayload }) -> ())?
|
|||
support custom implementations of reactive proxies.
|
||||
]]
|
||||
local function toRaw<T>(value: T): T
|
||||
value = value :: types.ReactiveProxy<T>
|
||||
if type(value) == "table" and type(value.__target) == "table" and type(value.__track) == "function" then
|
||||
value.__track()
|
||||
return toRaw(value.__target)
|
||||
local proxy = value :: types.ReactiveProxy<T>
|
||||
if type(proxy) == "table" and type(proxy.__target) == "table" and type(proxy.__track) == "function" then
|
||||
proxy.__track()
|
||||
return toRaw(proxy.__target)
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ test("should flatten functions", function()
|
|||
local input = {
|
||||
a = Charm.atom(0),
|
||||
b = { c = Charm.atom(0) },
|
||||
d = { e = { f = utils.signalToAtom(Charm.signal(0)) } },
|
||||
d = { e = { f = utils.signalToAtom<<number>>(Charm.signal(0)) } },
|
||||
}
|
||||
|
||||
local result = utils.flatten<<{ [string]: Charm.Atom<number> }>>(input)
|
||||
|
|
|
|||
|
|
@ -486,7 +486,7 @@ local function signal<T>(initialValue: T, equals: Equals<T>?): (Getter<T>, Sette
|
|||
end
|
||||
|
||||
-- Check if the new value is different from the pending value
|
||||
if if equals then not equals(node.pendingValue, value) else node.pendingValue ~= value then
|
||||
if if equals then not equals(node.pendingValue, value :: T) else node.pendingValue ~= value then
|
||||
if flags.frozen then
|
||||
deepFreeze(value)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ end
|
|||
]]
|
||||
local function toRaw<T>(value: T): T
|
||||
if isReactive(value) then
|
||||
value = value :: ReactiveProxy<T>
|
||||
value.__track()
|
||||
return toRaw(value.__target)
|
||||
local proxy = value :: ReactiveProxy<T>
|
||||
proxy.__track()
|
||||
return toRaw(proxy.__target)
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
|
@ -115,7 +115,7 @@ end
|
|||
@return A reactive proxy if the value is a table
|
||||
]]
|
||||
local function toReactive<T>(value: T, trackParent: (() -> ())?): T
|
||||
return if type(value) == "table" then reactive(value, trackParent) else value
|
||||
return if type(value) == "table" then reactive(value, trackParent) :: T else value :: T
|
||||
end
|
||||
|
||||
function ReactiveProxy.__index(self: ReactiveProxy, key: any): any
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ local React = require("./React")
|
|||
@return The current state.
|
||||
]]
|
||||
local function useSignalState<T>(getter: () -> T, dependencies: {}?): T
|
||||
local value, setValue = React.useState(getter)
|
||||
local value: T, setValue = React.useState(getter)
|
||||
|
||||
React.useLayoutEffect(function(): () -> ()
|
||||
return Charm.listen(getter, setValue :: (T, T?) -> ())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[tools]
|
||||
wally = "UpliftGames/wally@0.3.2"
|
||||
rojo = "rojo-rbx/rojo@7.7.0-rc.1"
|
||||
rojo = "rojo-rbx/rojo@7.7.0"
|
||||
stylua = "johnnymorganz/stylua@2.5.2"
|
||||
luau-lsp = "johnnymorganz/luau-lsp@1.68.1"
|
||||
luau-lsp = "johnnymorganz/luau-lsp@1.70.1"
|
||||
lute = "luau-lang/lute@1.0.0"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue