From b05c317c656b74d773f3977aaf0e2e8e83b1380b Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 9 Feb 2016 15:22:24 -0500 Subject: Replaced Permalink popover with a Permalink modal --- web/react/components/get_post_link_modal.jsx | 76 ++++++++++++++++++++++++++ web/react/components/post_info.jsx | 81 ++-------------------------- 2 files changed, 81 insertions(+), 76 deletions(-) create mode 100644 web/react/components/get_post_link_modal.jsx (limited to 'web/react/components') diff --git a/web/react/components/get_post_link_modal.jsx b/web/react/components/get_post_link_modal.jsx new file mode 100644 index 000000000..b7b2a8e7c --- /dev/null +++ b/web/react/components/get_post_link_modal.jsx @@ -0,0 +1,76 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Constants from '../utils/constants.jsx'; +import GetLinkModal from './get_link_modal.jsx'; +import ModalStore from '../stores/modal_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; + +import {intlShape, injectIntl, defineMessages} from 'mm-intl'; + +const holders = defineMessages({ + title: { + id: 'get_post_link_modal.title', + defaultMessage: 'Copy Permalink' + }, + help: { + id: 'get_post_link_modal.help', + defaultMessage: 'The link below allows authorized users to see your post.' + } +}); + +class GetPostLinkModal extends React.Component { + constructor(props) { + super(props); + + this.handleToggle = this.handleToggle.bind(this); + + this.hide = this.hide.bind(this); + + this.state = { + show: false, + post: {} + }; + } + + componentDidMount() { + ModalStore.addModalListener(Constants.ActionTypes.TOGGLE_GET_POST_LINK_MODAL, this.handleToggle); + } + + componentWillUnmount() { + ModalStore.removeModalListener(Constants.ActionTypes.TOGGLE_GET_POST_LINK_MODAL, this.handleToggle); + } + + handleToggle(value, args) { + this.setState({ + show: value, + post: args.post + }); + } + + hide() { + this.setState({ + show: false + }); + } + + render() { + const {formatMessage} = this.props.intl; + + return ( + + ); + } +} + +GetPostLinkModal.propTypes = { + intl: intlShape.isRequired +}; + +export default injectIntl(GetPostLinkModal); diff --git a/web/react/components/post_info.jsx b/web/react/components/post_info.jsx index b1bc8ca14..6d82423d5 100644 --- a/web/react/components/post_info.jsx +++ b/web/react/components/post_info.jsx @@ -2,7 +2,6 @@ // See License.txt for license information. import UserStore from '../stores/user_store.jsx'; -import TeamStore from '../stores/team_store.jsx'; import * as Utils from '../utils/utils.jsx'; import TimeSince from './time_since.jsx'; import * as EventHelpers from '../dispatcher/event_helpers.jsx'; @@ -11,18 +10,11 @@ import Constants from '../utils/constants.jsx'; import {FormattedMessage} from 'mm-intl'; -const Overlay = ReactBootstrap.Overlay; -const Popover = ReactBootstrap.Popover; - export default class PostInfo extends React.Component { constructor(props) { super(props); - this.state = { - copiedLink: false, - show: false - }; - this.handlePermalinkCopy = this.handlePermalinkCopy.bind(this); + this.handlePermalink = this.handlePermalink.bind(this); this.removePost = this.removePost.bind(this); } createDropdown() { @@ -72,7 +64,7 @@ export default class PostInfo extends React.Component { > this.setState({target: e.target, show: !this.state.show})} + onClick={this.handlePermalink} > - - - ) : (); - - const permalinkOverlay = ( - -
- - -
-
- ); - - const containerPadding = 20; - return (
  • @@ -273,17 +213,6 @@ export default class PostInfo extends React.Component { {dropdown} {comments} - ReactDOM.findDOMNode(this.refs.dotMenu)} - onHide={() => this.setState({show: false})} - placement='left' - container={this} - containerPadding={containerPadding} - rootClose={true} - > - {permalinkOverlay} - {this.createRemovePostButton(post)}
-- cgit v1.2.3-1-g7c22