local q=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local Q=q:WaitForChild("\077\111\100\117\108\101\115")local R=require(Q.src.utils.Logger)local j=require(Q.Roact)local E=require(Q.src.utils.Dict)local x=require(Q.RoactMaterial)local F=j.createElement local function J(q)local Q=E.join({Size=UDim2.new(0,40,0,40),onClicked=q.onClick;[j.Children]=F(x.Icon,{Icon=q.icon;Size=UDim2.new(0,30,0,30),Position=UDim2.new(0,5,0,5);IconColor3=Color3.new(1,1,1)})},q)local R=F(x.Button,Q)return R end return J
local ReplicatedStorage = game:GetService('ReplicatedStorage')
local Modules = ReplicatedStorage:WaitForChild('Modules')
local logger = require(Modules.src.utils.Logger)

local Roact = require(Modules.Roact)
local Dict = require(Modules.src.utils.Dict)
local RoactMaterial = require(Modules.RoactMaterial)

local createElement = Roact.createElement

local function IconButton(props)
	local joinedProps = Dict.join(
		{
			Size = UDim2.new(0, 40, 0, 40),
			onClicked = props.onClick,
			[Roact.Children] = createElement(RoactMaterial.Icon, {
				Icon = props.icon,
				Size = UDim2.new(0, 30, 0, 30),
				Position = UDim2.new(0, 5, 0, 5),
				IconColor3 = Color3.new(1, 1, 1),
			}),
		},
		props
	)

	local menuButton = createElement(RoactMaterial.Button, joinedProps)
	return menuButton
end

return IconButton