local d={}local t=require(script:FindFirstAncestor("\080\108\117\103\105\110\070\114\097\109\101\119\111\114\107"))local l local m local S function d.Get(d)return l.createReducer({IsRunning=false},{[m.RoduxActionType.STUDIO.IS_RUNNING]=function(d,t)local l=t.data.isRunning local m={}for d,t in pairs(d)do m[d]=t end m.IsRunning=l return m end})end function d.FrameworkInit(d)l=t:Require("\082\111\100\117\120")m=t:Require("\083\111\099\107\101\116\067\111\110\115\116\097\110\116\115")S=t:Require("\084\097\098\108\101\085\116\105\108")end function d.FrameworkStart(d) end return d
---
---Reducer for actions pertaining to studio
---
---@class SocketRoduxStoreStudioReducer
---
local SocketRoduxStoreStudioReducer = {}

--------------------------------------------------
-- Types
-- ...

--------------------------------------------------
-- Dependencies
local PluginFramework = require(script:FindFirstAncestor("PluginFramework")) ---@type Framework
local Rodux ---@type Rodux
local SocketConstants ---@type SocketConstants
local TableUtil ---@type TableUtil

--------------------------------------------------
-- Constants
-- ...

--------------------------------------------------
-- Members

---
---@return RoduxReducer
---
function SocketRoduxStoreStudioReducer:Get()
    return Rodux.createReducer({
        IsRunning = false,
    }, {
        ---Declare if we are in a running state or not
        ---@param state RoduxState
        ---@param action RoduxAction
        [SocketConstants.RoduxActionType.STUDIO.IS_RUNNING] = function(state, action)
            -- Read Action
            local isRunning = action.data.isRunning ---@type boolean

            -- Recreate state
            local newState = {}
            for k, v in pairs(state) do
                newState[k] = v
            end

            newState.IsRunning = isRunning

            return newState
        end,
    })
end

---@private
function SocketRoduxStoreStudioReducer:FrameworkInit()
    Rodux = PluginFramework:Require("Rodux")
    SocketConstants = PluginFramework:Require("SocketConstants")
    TableUtil = PluginFramework:Require("TableUtil")
end

---@private
function SocketRoduxStoreStudioReducer:FrameworkStart() end

return SocketRoduxStoreStudioReducer
