element-portable/src/components/views/dialogs/InfoDialog.tsx
David Langley 491f0cd08a
Change license (#13)
* Copyright headers 1

* Licence headers 2

* Copyright Headers 3

* Copyright Headers 4

* Copyright Headers 5

* Copyright Headers 6

* Copyright headers 7

* Add copyright headers for html and config file

* Replace license files and update package.json

* Update with CLA

* lint
2024-09-09 13:57:16 +00:00

65 lines
2 KiB
TypeScript

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2021 The Matrix.org Foundation C.I.C.
Copyright 2019 Bastian Masanek, Noxware IT <matrix@noxware.de>
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
import React, { ReactNode } from "react";
import classNames from "classnames";
import { _t } from "../../../languageHandler";
import BaseDialog from "./BaseDialog";
import DialogButtons from "../elements/DialogButtons";
interface IProps {
top?: ReactNode;
title?: string;
description?: ReactNode;
className?: string;
button?: boolean | string;
hasCloseButton?: boolean;
fixedWidth?: boolean;
onKeyDown?(event: KeyboardEvent | React.KeyboardEvent): void;
onFinished(): void;
}
export default class InfoDialog extends React.Component<IProps> {
public static defaultProps: Partial<IProps> = {
title: "",
description: "",
hasCloseButton: false,
};
private onFinished = (): void => {
this.props.onFinished();
};
public render(): React.ReactNode {
return (
<BaseDialog
className="mx_InfoDialog"
onFinished={this.props.onFinished}
top={this.props.top}
title={this.props.title}
contentId="mx_Dialog_content"
hasCancel={this.props.hasCloseButton}
onKeyDown={this.props.onKeyDown}
fixedWidth={this.props.fixedWidth}
>
<div className={classNames("mx_Dialog_content", this.props.className)} id="mx_Dialog_content">
{this.props.description}
</div>
{this.props.button !== false && (
<DialogButtons
primaryButton={this.props.button || _t("action|ok")}
onPrimaryButtonClick={this.onFinished}
hasCancel={false}
/>
)}
</BaseDialog>
);
}
}