Clients/Client2020/ExtraContent/LuaPackages/AppTempCommon/LuaApp/Style/AppStyleProvider.lua

34 lines
1.1 KiB
Lua

--[[
The is a wrapper for the style provider for apps.
props:
style : table - Includes the name of the theme and font being used.
{
themeName : string - The name of the theme being used.
fontName : string - The name of the font being used.
}
]]
local CorePackages = game:GetService("CorePackages")
local ArgCheck = require(CorePackages.ArgCheck)
local Roact = require(CorePackages.Roact)
local UIBlox = require(CorePackages.UIBlox)
local StyleProvider = UIBlox.Style.Provider
local StylePalette = require(script.Parent.StylePalette)
local AppStyleProvider = Roact.Component:extend("AppStyleProvider")
function AppStyleProvider:render()
local style = self.props.style
ArgCheck.isNotNil(style, "style prop for AppStyleProvider")
local themeName = style.themeName
local fontName = style.fontName
local stylePalette = StylePalette.new()
stylePalette:updateTheme(themeName)
stylePalette:updateFont(fontName)
local appStyle = stylePalette:currentStyle()
return Roact.createElement(StyleProvider,{
style = appStyle,
}, self.props[Roact.Children])
end
return AppStyleProvider