heroes-of-nerevelon/lib/simple_ui/core/stateful_element.lua

19 lines
866 B
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local SingleChildElement = require "lib.simple_ui.core.single_child_element"
--- @generic T : table
--- @class StatefulElement<T> : SingleChildElement
--- @field initState? fun(self: StatefulElement<T>): T Создает исходное состояние элемента, когда он попадает в дерево в первый раз.
--- @field getState? fun(self: StatefulElement<T>): T Возвращает состояние элемента. Можно переопределить, чтобы хранить его где хочется.
local element = setmetatable({}, SingleChildElement)
element.__index = element
element.type = "StatefulElement"
element.state = {}
--- @return StatefulElement<T>
--- @param values {key: any, child: UIElement?}
function element:new(values)
return SingleChildElement.new(self, values)
end
return element