diff options
Diffstat (limited to 'web/react/components')
-rw-r--r-- | web/react/components/channel_header.jsx | 2 | ||||
-rw-r--r-- | web/react/components/create_comment.jsx | 7 | ||||
-rw-r--r-- | web/react/components/create_post.jsx | 7 | ||||
-rw-r--r-- | web/react/components/post_body.jsx | 78 | ||||
-rw-r--r-- | web/react/components/post_list.jsx | 10 | ||||
-rw-r--r-- | web/react/components/post_right.jsx | 31 | ||||
-rw-r--r-- | web/react/components/search_results.jsx | 12 | ||||
-rw-r--r-- | web/react/components/sidebar.jsx | 6 |
8 files changed, 40 insertions, 113 deletions
diff --git a/web/react/components/channel_header.jsx b/web/react/components/channel_header.jsx index 4d64e2b94..90a776791 100644 --- a/web/react/components/channel_header.jsx +++ b/web/react/components/channel_header.jsx @@ -156,7 +156,7 @@ module.exports = React.createClass({ } var channel = this.state.channel; - var description = utils.textToJsx(channel.description, {singleline: true, noMentionHighlight: true, noTextFormatting: true}); + var description = utils.textToJsx(channel.description, {singleline: true, noMentionHighlight: true}); var popoverContent = React.renderToString(<MessageWrapper message={channel.description}/>); var channelTitle = channel.display_name; var currentId = UserStore.getCurrentId(); diff --git a/web/react/components/create_comment.jsx b/web/react/components/create_comment.jsx index a0a018025..78e06c532 100644 --- a/web/react/components/create_comment.jsx +++ b/web/react/components/create_comment.jsx @@ -184,7 +184,6 @@ module.exports = React.createClass({ </div> ); } - var allowTextFormatting = config.AllowTextFormatting; var postError = null; if (this.state.postError) { @@ -205,10 +204,6 @@ module.exports = React.createClass({ if (postError) { postFooterClassName += ' has-error'; } - var extraInfo = <MsgTyping channelId={this.props.channelId} parentId={this.props.rootId} />; - if (this.state.messageText.split(' ').length > 1 && allowTextFormatting) { - extraInfo = <span className='msg-format-help'>_<em>italics</em>_ *<strong>bold</strong>* `<code className='code-info'>code</code>`</span>; - } return ( <form onSubmit={this.handleSubmit}> @@ -229,7 +224,7 @@ module.exports = React.createClass({ onFileUpload={this.handleFileUploadComplete} onUploadError={this.handleUploadError} /> </div> - {extraInfo} + <MsgTyping channelId={this.props.channelId} parentId={this.props.rootId} /> <div className={postFooterClassName}> <input type='button' className='btn btn-primary comment-btn pull-right' value='Add Comment' onClick={this.handleSubmit} /> {postError} diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index 3e1faba7d..9ca1d5388 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -224,7 +224,6 @@ module.exports = React.createClass({ </div> ); } - var allowTextFormatting = config.AllowTextFormatting; var postError = null; if (this.state.postError) { @@ -245,10 +244,6 @@ module.exports = React.createClass({ if (postError) { postFooterClassName += ' has-error'; } - var extraInfo = <MsgTyping channelId={this.state.channel_id} parentId='' />; - if (this.state.messageText.split(' ').length > 1 && allowTextFormatting) { - extraInfo = <span className='msg-typing'>_<em>italics</em>_ *<strong>bold</strong>* `<code className='code-info'>code</code>`</span>; - } return ( <form id='create_post' ref='topDiv' role='form' onSubmit={this.handleSubmit}> @@ -273,7 +268,7 @@ module.exports = React.createClass({ {postError} {serverError} {preview} - {extraInfo} + <MsgTyping channelId={this.state.channelId} parentId=''/> </div> </div> </form> diff --git a/web/react/components/post_body.jsx b/web/react/components/post_body.jsx index fab6833e6..860c96d84 100644 --- a/web/react/components/post_body.jsx +++ b/web/react/components/post_body.jsx @@ -4,69 +4,59 @@ var FileAttachmentList = require('./file_attachment_list.jsx'); var UserStore = require('../stores/user_store.jsx'); var utils = require('../utils/utils.jsx'); -var formatText = require('../../static/js/marked/lib/marked.js'); module.exports = React.createClass({ componentWillReceiveProps: function(nextProps) { var linkData = utils.extractLinks(nextProps.post.message); - this.setState({links: linkData.links, message: linkData.text}); + this.setState({ links: linkData["links"], message: linkData["text"] }); }, getInitialState: function() { var linkData = utils.extractLinks(this.props.post.message); - return {links: linkData.links, message: linkData.text}; + return { links: linkData["links"], message: linkData["text"] }; }, render: function() { var post = this.props.post; var filenames = this.props.post.filenames; var parentPost = this.props.parentPost; var inner = utils.textToJsx(this.state.message); - var allowTextFormatting = config.AllowTextFormatting; - var comment = ''; - var postClass = ''; + var comment = ""; + var reply = ""; + var postClass = ""; if (parentPost) { var profile = UserStore.getProfile(parentPost.user_id); - var apostrophe = ''; - var name = '...'; + var apostrophe = ""; + var name = "..."; if (profile != null) { if (profile.username.slice(-1) === 's') { apostrophe = "'"; } else { apostrophe = "'s"; } - name = <a className='theme' onClick={utils.searchForTerm.bind(this, profile.username)}>{profile.username}</a>; + name = <a className="theme" onClick={function(){ utils.searchForTerm(profile.username); }}>{profile.username}</a>; } - var message = ''; - if (parentPost.message) { - message = utils.replaceHtmlEntities(parentPost.message); + var message = "" + if(parentPost.message) { + message = utils.replaceHtmlEntities(parentPost.message) } else if (parentPost.filenames.length) { message = parentPost.filenames[0].split('/').pop(); if (parentPost.filenames.length === 2) { - message += ' plus 1 other file'; + message += " plus 1 other file"; } else if (parentPost.filenames.length > 2) { - message += ' plus ' + (parentPost.filenames.length - 1) + ' other files'; + message += " plus " + (parentPost.filenames.length - 1) + " other files"; } } - if (allowTextFormatting) { - message = formatText(message, {sanitize: true, mangle: false, gfm: true, breaks: true, tables: false, smartypants: true, renderer: utils.customMarkedRenderer({disable: true})}); - comment = ( - <p className='post-link'> - <span>Commented on {name}{apostrophe} message: <a className='theme' onClick={this.props.handleCommentClick} dangerouslySetInnerHTML={{__html: message}} /></span> - </p> - ); - } else { - comment = ( - <p className='post-link'> - <span>Commented on {name}{apostrophe} message: <a className='theme' onClick={this.props.handleCommentClick}>{message}</a></span> - </p> - ); - } + comment = ( + <p className="post-link"> + <span>Commented on {name}{apostrophe} message: <a className="theme" onClick={this.props.handleCommentClick}>{message}</a></span> + </p> + ); - postClass += ' post-comment'; + postClass += " post-comment"; } var embed; @@ -74,26 +64,18 @@ module.exports = React.createClass({ embed = utils.getEmbed(this.state.links[0]); } - var innerHolder = <p key={post.id + '_message'} className={postClass}><span>{inner}</span></p>; - if (allowTextFormatting) { - innerHolder = <div key={post.id + '_message'} className={postClass}><span>{inner}</span></div>; - } - - var fileAttachmentHolder = ''; - if (filenames && filenames.length > 0) { - fileAttachmentHolder = (<FileAttachmentList - filenames={filenames} - modalId={'view_image_modal_' + post.id} - channelId={post.channel_id} - userId={post.user_id} />); - } - return ( - <div className='post-body'> - {comment} - {innerHolder} - {fileAttachmentHolder} - {embed} + <div className="post-body"> + { comment } + <p key={post.id+"_message"} className={postClass}><span>{inner}</span></p> + { filenames && filenames.length > 0 ? + <FileAttachmentList + filenames={filenames} + modalId={"view_image_modal_" + post.id} + channelId={post.channel_id} + userId={post.user_id} /> + : "" } + { embed } </div> ); } diff --git a/web/react/components/post_list.jsx b/web/react/components/post_list.jsx index ad7f4a8bf..83f806b79 100644 --- a/web/react/components/post_list.jsx +++ b/web/react/components/post_list.jsx @@ -197,10 +197,7 @@ module.exports = React.createClass({ var post = post_list.posts[msg.props.post_id]; post.message = msg.props.message; - post.lastEditDate = Date.now(); - post_list.posts[post.id] = post; - this.setState({ post_list: post_list }); PostStore.storePosts(msg.channel_id, post_list); @@ -433,13 +430,8 @@ module.exports = React.createClass({ // it is the last comment if it is last post in the channel or the next post has a different root post var isLastComment = utils.isComment(post) && (i === 0 || posts[order[i-1]].root_id != post.root_id); - var postKey = post.id; - if (post.lastEditDate) { - postKey += post.lastEditDate; - } - var postCtl = ( - <Post ref={post.id} sameUser={sameUser} sameRoot={sameRoot} post={post} parentPost={parentPost} key={postKey} + <Post ref={post.id} sameUser={sameUser} sameRoot={sameRoot} post={post} parentPost={parentPost} key={post.id} posts={posts} hideProfilePic={hideProfilePic} isLastComment={isLastComment} /> ); diff --git a/web/react/components/post_right.jsx b/web/react/components/post_right.jsx index 19e4cf67a..ad8b54012 100644 --- a/web/react/components/post_right.jsx +++ b/web/react/components/post_right.jsx @@ -56,7 +56,6 @@ RhsHeaderPost = React.createClass({ RootPost = React.createClass({ render: function() { - var allowTextFormatting = config.AllowTextFormatting; var post = this.props.post; var message = utils.textToJsx(post.message); var isOwner = UserStore.getCurrentId() == post.user_id; @@ -77,11 +76,6 @@ RootPost = React.createClass({ channelName = (channel.type === 'D') ? "Private Message" : channel.display_name; } - var messageHolder = <p>{message}</p>; - if (allowTextFormatting) { - messageHolder = <div>{message}</div>; - } - return ( <div className={"post post--root " + currentUserCss}> <div className="post-right-channel__name">{ channelName }</div> @@ -107,7 +101,7 @@ RootPost = React.createClass({ </li> </ul> <div className="post-body"> - {messageHolder} + <p>{message}</p> { post.filenames && post.filenames.length > 0 ? <FileAttachmentList filenames={post.filenames} @@ -125,7 +119,6 @@ RootPost = React.createClass({ CommentPost = React.createClass({ render: function() { - var allowTextFormatting = config.AllowTextFormatting; var post = this.props.post; var commentClass = "post"; @@ -145,11 +138,6 @@ CommentPost = React.createClass({ var message = utils.textToJsx(post.message); var timestamp = UserStore.getCurrentUser().update_at; - var messageHolder = <p>{message}</p>; - if (allowTextFormatting) { - messageHolder = <div>{message}</div>; - } - return ( <div className={commentClass + " " + currentUserCss}> <div className="post-profile-img__container"> @@ -172,7 +160,7 @@ CommentPost = React.createClass({ </li> </ul> <div className="post-body"> - {messageHolder} + <p>{message}</p> { post.filenames && post.filenames.length > 0 ? <FileAttachmentList filenames={post.filenames} @@ -285,22 +273,11 @@ module.exports = React.createClass({ root_post = post_list.posts[selected_post.root_id]; } - var rootPostKey = root_post.id - if (root_post.lastEditDate) { - rootPostKey += root_post.lastEditDate; - } - var posts_array = []; for (var postId in post_list.posts) { var cpost = post_list.posts[postId]; if (cpost.root_id == root_post.id) { - var cpostKey = cpost.id - if (cpost.lastEditDate) { - cpostKey += cpost.lastEditDate; - } - - cpost.cpostKey = cpostKey; posts_array.push(cpost); } } @@ -323,10 +300,10 @@ module.exports = React.createClass({ <div className="sidebar-right__body"> <RhsHeaderPost fromSearch={this.props.fromSearch} isMentionSearch={this.props.isMentionSearch} /> <div className="post-right__scroll"> - <RootPost key={rootPostKey} post={root_post} commentCount={posts_array.length}/> + <RootPost post={root_post} commentCount={posts_array.length}/> <div className="post-right-comments-container"> { posts_array.map(function(cpost) { - return <CommentPost ref={cpost.id} key={cpost.cpostKey} post={cpost} selected={ (cpost.id == selected_post.id) } /> + return <CommentPost ref={cpost.id} key={cpost.id} post={cpost} selected={ (cpost.id == selected_post.id) } /> })} </div> <div className="post-create__container"> diff --git a/web/react/components/search_results.jsx b/web/react/components/search_results.jsx index 8f6bd861a..643ad112b 100644 --- a/web/react/components/search_results.jsx +++ b/web/react/components/search_results.jsx @@ -84,8 +84,6 @@ var SearchItem = React.createClass({ channelName = (channel.type === 'D') ? "Private Message" : channel.display_name; } - var searchItemKey = Date.now().toString(); - return ( <div className="search-item-container post" onClick={this.handleClick}> <div className="search-channel__name">{ channelName }</div> @@ -101,7 +99,7 @@ var SearchItem = React.createClass({ </time> </li> </ul> - <div key={this.props.key + searchItemKey} className="search-item-snippet"><span>{message}</span></div> + <div className="search-item-snippet"><span>{message}</span></div> </div> </div> ); @@ -133,7 +131,6 @@ module.exports = React.createClass({ if (this.isMounted()) { var newState = getStateFromStores(); if (!utils.areStatesEqual(newState, this.state)) { - newState.last_edit_time = Date.now(); this.setState(newState); } } @@ -155,11 +152,6 @@ module.exports = React.createClass({ var noResults = (!results || !results.order || !results.order.length); var searchTerm = PostStore.getSearchTerm(); - var searchItemKey = ""; - if (this.state.last_edit_time) { - searchItemKey += this.state.last_edit_time.toString(); - } - return ( <div className="sidebar--right__content"> <div className="search-bar__container sidebar--right__search-header">{searchForm}</div> @@ -170,7 +162,7 @@ module.exports = React.createClass({ { noResults ? <div className="sidebar--right__subheader">No results</div> : results.order.map(function(id) { var post = results.posts[id]; - return <SearchItem key={searchItemKey + post.id} post={post} term={searchTerm} isMentionSearch={this.props.isMentionSearch} /> + return <SearchItem key={post.id} post={post} term={searchTerm} isMentionSearch={this.props.isMentionSearch} /> }, this) } diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx index 988ef4a9c..80e3632c7 100644 --- a/web/react/components/sidebar.jsx +++ b/web/react/components/sidebar.jsx @@ -11,7 +11,6 @@ var BrowserStore = require('../stores/browser_store.jsx'); var utils = require('../utils/utils.jsx'); var SidebarHeader = require('./sidebar_header.jsx'); var SearchBox = require('./search_bar.jsx'); -var formatText = require('../../static/js/marked/lib/marked.js'); var Constants = require('../utils/constants.jsx'); var ActionTypes = Constants.ActionTypes; @@ -210,11 +209,6 @@ module.exports = React.createClass({ utils.notifyMe(title, username + ' did something new', channel); } } else { - var allowTextFormatting = config.AllowTextFormatting; - if (allowTextFormatting) { - notifyText = formatText(notifyText, {sanitize: false, mangle: false, gfm: true, breaks: true, tables: false, smartypants: true, renderer: utils.customMarkedRenderer({disable: true})}); - } - notifyText = utils.replaceHtmlEntities(notifyText); utils.notifyMe(title, username + ' wrote: ' + notifyText, channel); } if (!user.notify_props || user.notify_props.desktop_sound === 'true') { |