mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
29 lines (25 loc) • 1.14 kB
text/typescript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {getCurrentUser} from 'selectors/entities/users';
import {getUserTimezone} from 'selectors/entities/timezone';
import {updateMe} from './users';
import {DispatchFunc, GetStateFunc} from 'types/actions';
export function autoUpdateTimezone(deviceTimezone: string) {
return async (dispatch: DispatchFunc, getState: GetStateFunc) => {
const currentUer = getCurrentUser(getState());
const currentTimezone = getUserTimezone(getState(), currentUer.id);
const newTimezoneExists = currentTimezone.automaticTimezone !== deviceTimezone;
if (currentTimezone.useAutomaticTimezone && newTimezoneExists) {
const timezone = {
useAutomaticTimezone: 'true',
automaticTimezone: deviceTimezone,
manualTimezone: currentTimezone.manualTimezone,
};
const updatedUser = {
...currentUer,
timezone,
};
updateMe(updatedUser)(dispatch, getState);
}
};
}