2020-05-22 21:27:19 +00:00
|
|
|
/*
|
|
|
|
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
import React from "react";
|
|
|
|
|
|
|
|
import { _t, _td } from "../languageHandler";
|
|
|
|
import GenericToast from "../components/views/toasts/GenericToast";
|
|
|
|
import ToastStore from "../stores/ToastStore";
|
2021-06-29 12:11:58 +00:00
|
|
|
import { messageForResourceLimitError } from "../utils/ErrorUtils";
|
2020-05-22 21:27:19 +00:00
|
|
|
|
|
|
|
const TOAST_KEY = "serverlimit";
|
|
|
|
|
2023-01-12 13:25:14 +00:00
|
|
|
export const showToast = (
|
|
|
|
limitType: string,
|
|
|
|
onHideToast: () => void,
|
|
|
|
adminContact?: string,
|
|
|
|
syncError?: boolean,
|
|
|
|
): void => {
|
2020-05-22 21:27:19 +00:00
|
|
|
const errorText = messageForResourceLimitError(limitType, adminContact, {
|
2023-09-25 17:12:41 +00:00
|
|
|
"monthly_active_user": _td("error|mau"),
|
2023-09-22 15:39:40 +00:00
|
|
|
"hs_blocked": _td("error|hs_blocked"),
|
2023-09-25 17:12:41 +00:00
|
|
|
"": _td("error|resource_limits"),
|
2020-05-22 21:27:19 +00:00
|
|
|
});
|
|
|
|
const contactText = messageForResourceLimitError(limitType, adminContact, {
|
2023-09-25 17:12:41 +00:00
|
|
|
"": _td("error|admin_contact_short"),
|
2020-05-22 21:27:19 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
ToastStore.sharedInstance().addOrReplaceToast({
|
|
|
|
key: TOAST_KEY,
|
2023-08-23 09:25:33 +00:00
|
|
|
title: _t("common|warning"),
|
2020-05-22 21:27:19 +00:00
|
|
|
props: {
|
2021-07-19 21:43:11 +00:00
|
|
|
description: (
|
|
|
|
<React.Fragment>
|
|
|
|
{errorText} {contactText}
|
|
|
|
</React.Fragment>
|
|
|
|
),
|
2023-08-31 10:22:10 +00:00
|
|
|
acceptLabel: _t("action|ok"),
|
2021-02-23 12:51:47 +00:00
|
|
|
onAccept: () => {
|
2021-06-29 12:11:58 +00:00
|
|
|
hideToast();
|
2021-02-24 18:20:58 +00:00
|
|
|
if (onHideToast) onHideToast();
|
2021-02-23 12:51:47 +00:00
|
|
|
},
|
2020-05-22 21:27:19 +00:00
|
|
|
},
|
|
|
|
component: GenericToast,
|
2020-05-22 21:29:09 +00:00
|
|
|
priority: 70,
|
2020-05-22 21:27:19 +00:00
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2023-01-12 13:25:14 +00:00
|
|
|
export const hideToast = (): void => {
|
2020-05-22 21:27:19 +00:00
|
|
|
ToastStore.sharedInstance().dismissToast(TOAST_KEY);
|
|
|
|
};
|