deviceinfo-reducer.js 1.71 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2017 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/firmware/deviceinfo/impl/deviceinfo-reducer', [
    'underscore',
    'screens/player/firmware/deviceinfo/deviceinfo'
], function(_, DeviceInfo) {
    'use strict';

    var defaultProps = {
        info: 'n/a',
        model: 'n/a',
        os: 'n/a',
        uuid: 'n/a',
        osVersion: 'n/a',
        webView: 'n/a'
    };

    return function(state, action) {
        switch (action.type) {
            case DeviceInfo.ACTIONS.UPDATE:
                return _.assign({}, defaultProps, state, action.payload);
            default:
                return state || defaultProps;
        }
    };
});

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

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