summaryrefslogtreecommitdiffstats
path: root/webapp/utils/license_utils.jsx
blob: a44cfb9d4bc433cfad36c4a1c5d5af4f1b245a72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

import LocalizationStore from 'stores/localization_store.jsx';

const LICENSE_EXPIRY_NOTIFICATION = 1000 * 60 * 60 * 24 * 60; // 60 days
const LICENSE_GRACE_PERIOD = 1000 * 60 * 60 * 24 * 15; // 15 days

export function isLicenseExpiring() {
    if (window.mm_license.IsLicensed !== 'true') {
        return false;
    }

    const timeDiff = parseInt(global.window.mm_license.ExpiresAt, 10) - Date.now();
    return timeDiff <= LICENSE_EXPIRY_NOTIFICATION;
}

export function isLicenseExpired() {
    if (window.mm_license.IsLicensed !== 'true') {
        return false;
    }

    const timeDiff = parseInt(global.window.mm_license.ExpiresAt, 10) - Date.now();
    return timeDiff < 0;
}

export function isLicensePastGracePeriod() {
    if (window.mm_license.IsLicensed !== 'true') {
        return false;
    }

    const timeDiff = Date.now() - parseInt(global.window.mm_license.ExpiresAt, 10);
    return timeDiff > LICENSE_GRACE_PERIOD;
}

export function displayExpiryDate() {
    const date = new Date(parseInt(global.window.mm_license.ExpiresAt, 10));
    return date.toLocaleString(LocalizationStore.getLocale(), {year: 'numeric', month: 'long', day: 'numeric'});
}