messageDialog.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import * as React from "react";
  2. import { GlobalState } from '../globalState';
  3. interface IMessageDialogComponentProps {
  4. globalState: GlobalState
  5. }
  6. export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, { message: string, isError: boolean }> {
  7. constructor(props: IMessageDialogComponentProps) {
  8. super(props);
  9. this.state = {message: "", isError: false};
  10. this.props.globalState.onErrorMessageDialogRequiredObservable.add((message: string) => {
  11. this.setState({message: message, isError: true});
  12. });
  13. }
  14. render() {
  15. if (!this.state.message) {
  16. return null;
  17. }
  18. return (
  19. <div className="dialog-container">
  20. <div className="dialog">
  21. <div className="dialog-message">
  22. {
  23. this.state.message
  24. }
  25. </div>
  26. <div className="dialog-buttons">
  27. <div className={"dialog-button-ok" + (this.state.isError ? " error" : "")} onClick={() => this.setState({message: ""})}>
  28. OK
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. );
  34. }
  35. }