From b20144db8ec18630cf21cdc4e47c5681f2a67aa0 Mon Sep 17 00:00:00 2001
From: hmhealey <harrisonmhealey@gmail.com>
Date: Thu, 19 Nov 2015 11:59:59 -0500
Subject: Converted GetLinkModal to React-Bootstrap and added
 GetTeamInviteLinkModal

---
 web/react/components/get_link_modal.jsx | 144 +++++++++++++++-----------------
 1 file changed, 67 insertions(+), 77 deletions(-)

(limited to 'web/react/components/get_link_modal.jsx')

diff --git a/web/react/components/get_link_modal.jsx b/web/react/components/get_link_modal.jsx
index 2bd2c42d6..df5d6b8e1 100644
--- a/web/react/components/get_link_modal.jsx
+++ b/web/react/components/get_link_modal.jsx
@@ -1,32 +1,28 @@
 // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
 // See License.txt for license information.
 
-import UserStore from '../stores/user_store.jsx';
+const Modal = ReactBootstrap.Modal;
 
 export default class GetLinkModal extends React.Component {
     constructor(props) {
         super(props);
 
-        this.handleClick = this.handleClick.bind(this);
-        this.onShow = this.onShow.bind(this);
         this.onHide = this.onHide.bind(this);
 
-        this.state = {copiedLink: false};
-    }
-    onShow(e) {
-        var button = e.relatedTarget;
-        this.setState({title: $(button).attr('data-title'), value: $(button).attr('data-value')});
+        this.copyLink = this.copyLink.bind(this);
+
+        this.state = {
+            copiedLink: false
+        };
     }
+
     onHide() {
         this.setState({copiedLink: false});
+
+        this.props.onHide();
     }
-    componentDidMount() {
-        if (this.refs.modal) {
-            $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow);
-            $(ReactDOM.findDOMNode(this.refs.modal)).on('hide.bs.modal', this.onHide);
-        }
-    }
-    handleClick() {
+
+    copyLink() {
         var copyTextarea = $(ReactDOM.findDOMNode(this.refs.textarea));
         copyTextarea.select();
 
@@ -41,8 +37,18 @@ export default class GetLinkModal extends React.Component {
             this.setState({copiedLink: false});
         }
     }
+
     render() {
-        var currentUser = UserStore.getCurrentUser();
+        let helpText = null;
+        if (this.props.helpText) {
+            helpText = (
+                <p>
+                    {this.props.helpText}
+                    <br />
+                    <br />
+                </p>
+            );
+        }
 
         let copyLink = null;
         if (document.queryCommandSupported('copy')) {
@@ -51,75 +57,59 @@ export default class GetLinkModal extends React.Component {
                     data-copy-btn='true'
                     type='button'
                     className='btn btn-primary pull-left'
-                    onClick={this.handleClick}
-                    data-clipboard-text={this.state.value}
+                    onClick={this.copyLink}
                 >
-                    Copy Link
+                    {'Copy Link'}
                 </button>
             );
         }
 
         var copyLinkConfirm = null;
         if (this.state.copiedLink) {
-            copyLinkConfirm = <p className='alert alert-success copy-link-confirm'><i className='fa fa-check'></i> Link copied to clipboard.</p>;
+            copyLinkConfirm = <p className='alert alert-success copy-link-confirm'><i className='fa fa-check'></i>{' Link copied to clipboard.'}</p>;
         }
 
-        if (currentUser != null) {
-            return (
-                <div
-                    className='modal fade'
-                    ref='modal'
-                    id='get_link'
-                    tabIndex='-1'
-                    role='dialog'
-                    aria-hidden='true'
-                >
-                    <div className='modal-dialog'>
-                        <div className='modal-content'>
-                            <div className='modal-header'>
-                                <button
-                                    type='button'
-                                    className='close'
-                                    data-dismiss='modal'
-                                    aria-label='Close'
-                                >
-                                    <span aria-hidden='true'>&times;</span>
-                                </button>
-                                <h4
-                                    className='modal-title'
-                                    id='myModalLabel'
-                                >
-                                    {this.state.title} Link
-                                </h4>
-                            </div>
-                            <div className='modal-body'>
-                                <p>
-                                Send teammates the link below for them to sign-up to this team site.
-                                <br /><br />
-                                </p>
-                                <textarea
-                                    className='form-control no-resize min-height'
-                                    readOnly='true'
-                                    ref='textarea'
-                                    value={this.state.value}
-                                />
-                                </div>
-                                <div className='modal-footer'>
-                                <button
-                                    type='button'
-                                    className='btn btn-default'
-                                    data-dismiss='modal'
-                                >
-                                    Close
-                                </button>
-                                {copyLink}
-                                {copyLinkConfirm}
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            );
-        }
-        return <div/>;
+        return (
+            <Modal
+                show={this.props.show}
+                onHide={this.onHide}
+            >
+                <Modal.Header closeButton={true}>
+                    {this.props.title}
+                </Modal.Header>
+                <Modal.Body>
+                    {helpText}
+                    <textarea
+                        className='form-control no-resize min-height'
+                        readOnly='true'
+                        ref='textarea'
+                        value={this.props.link}
+                    />
+                </Modal.Body>
+                <Modal.Footer>
+                    <button
+                        type='button'
+                        className='btn btn-default'
+                        onClick={this.onHide}
+                    >
+                        {'Close'}
+                    </button>
+                    {copyLink}
+                    {copyLinkConfirm}
+                </Modal.Footer>
+            </Modal>
+        );
     }
 }
+
+GetLinkModal.propTypes = {
+    show: React.PropTypes.bool.isRequired,
+    onHide: React.PropTypes.func.isRequired,
+    title: React.PropTypes.string.isRequired,
+    helpText: React.PropTypes.string,
+    link: React.PropTypes.string.isRequired
+};
+
+GetLinkModal.defaultProps = {
+    helpText: null
+};
-- 
cgit v1.2.3-1-g7c22

