// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

import {PureComponent} from 'react';
import PropTypes from 'prop-types';
import {intlShape} from 'react-intl';

import Preferences from 'mattermost-redux/constants/preferences';

export default class ClockDisplayBase extends PureComponent {
    static propTypes = {
        theme: PropTypes.object.isRequired,
        militaryTime: PropTypes.string.isRequired,
        userId: PropTypes.string.isRequired,
        actions: PropTypes.shape({
            savePreferences: PropTypes.func.isRequired,
        }).isRequired,
    };
    static contextTypes = {
        intl: intlShape.isRequired,
    };

    constructor(props) {
        super(props);

        this.state = {
            newMilitaryTime: props.militaryTime,
        };
    }

    setMilitaryTime = (value) => {
        this.setState({
            newMilitaryTime: value,
        });

        this.saveClockDisplayPreference(value);
    };

    saveClockDisplayPreference = (newMilitaryTime) => {
        const {userId, actions: {savePreferences}} = this.props;

        const timePreference = {
            user_id: userId,
            category: Preferences.CATEGORY_DISPLAY_SETTINGS,
            name: 'use_military_time',
            value: newMilitaryTime,
        };

        savePreferences(userId, [timePreference]);
    }
}
