admin-reducer.js 1.83 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2016 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

define('screens/player/runtime/impl/admin-reducer', [
    'screens/player/runtime/admin'
], function(Admin) {
    'use strict';

    var DEFAULT_TAB = 'system';

    function adminuiReducer(adminui, action) {
        switch (action.type) {
            case Admin.ACTIONS.SHOW: {
                adminui = _.merge({}, adminui, {
                    visible: 'show',
                    tabName: action.payload && action.payload.tabName
                });

                break;
            }
            case Admin.ACTIONS.HIDE: {
                adminui = _.merge({}, adminui, {visible: 'hide'});
                break;
            }
        }
        return adminui || {
                visible: 'hide',
                tabName: DEFAULT_TAB
            };
    }

    return adminuiReducer;
});

/* istanbul ignore next */
require([
    'screens/player/runtime/impl/admin-reducer',
    'screens/player/shared/serviceadmin',
    'screens/player/store/store',
    'screens/player/runtime/admin'
], function(reducer, ServiceAdmin, Store, Admin) {
    'use strict';

    ServiceAdmin.onServiceHighestRankedStart(Store.serviceName, function(store) {
        store.addReducer(reducer, Admin.NAMESPACE);
    });
});