From 6187faf20384b0c5a4966343b2d4ca47f8b11e45 Mon Sep 17 00:00:00 2001
From: Philip Paquette <pcpaquette@gmail.com>
Date: Wed, 26 Sep 2018 07:48:55 -0400
Subject: Release v1.0.0 - Diplomacy Game Engine - AGPL v3+ License

---
 diplomacy/web/src/gui/core/fancybox.jsx | 59 +++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 diplomacy/web/src/gui/core/fancybox.jsx

(limited to 'diplomacy/web/src/gui/core/fancybox.jsx')

diff --git a/diplomacy/web/src/gui/core/fancybox.jsx b/diplomacy/web/src/gui/core/fancybox.jsx
new file mode 100644
index 0000000..4d1013d
--- /dev/null
+++ b/diplomacy/web/src/gui/core/fancybox.jsx
@@ -0,0 +1,59 @@
+// ==============================================================================
+// Copyright (C) 2019 - Philip Paquette, Steven Bocco
+//
+//  This program is free software: you can redistribute it and/or modify it under
+//  the terms of the GNU Affero General Public License as published by the Free
+//  Software Foundation, either version 3 of the License, or (at your option) any
+//  later version.
+//
+//  This program is distributed in the hope that it will be useful, but WITHOUT
+//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+//  FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
+//  details.
+//
+//  You should have received a copy of the GNU Affero General Public License along
+//  with this program.  If not, see <https://www.gnu.org/licenses/>.
+// ==============================================================================
+import React from 'react';
+import {Button} from "./widgets";
+import PropTypes from 'prop-types';
+
+const TIMES = '\u00D7';
+
+export class FancyBox extends React.Component {
+    // open-tag (<FancyBox></FancyBox>)
+    // PROPERTIES
+    // title
+    // onClose
+    render() {
+        return (
+            <div className={'fancy-wrapper'} onClick={this.props.onClose}>
+                <div className={'fancy-box container'} onClick={(event) => {
+                    if (!event)
+                        event = window.event;
+                    if (event.hasOwnProperty('cancelBubble'))
+                        event.cancelBubble = true;
+                    if (event.stopPropagation)
+                        event.stopPropagation();
+                }}>
+                    <div className={'row fancy-bar'}>
+                        <div className={'col-11 align-self-center fancy-title'}>{this.props.title}</div>
+                        <div className={'col-1 fancy-button'}>
+                            <Button title={TIMES} color={'danger'} onClick={this.props.onClose}/>
+                        </div>
+                    </div>
+                    <div className={'row'}>
+                        <div className={'col fancy-content'}>{this.props.children}</div>
+                    </div>
+                </div>
+            </div>
+        );
+    }
+}
+
+
+FancyBox.propTypes = {
+    title: PropTypes.string.isRequired,
+    onClose: PropTypes.func.isRequired,
+    children: PropTypes.oneOfType([PropTypes.array, PropTypes.object])
+};
-- 
cgit v1.2.3

