19 lines
866 B
Lua
19 lines
866 B
Lua
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
|