diff --git a/packages/base-components/lib/common/Flash.jsx b/packages/base-components/lib/common/Flash.jsx index 05db2c736..45d345a0b 100644 --- a/packages/base-components/lib/common/Flash.jsx +++ b/packages/base-components/lib/common/Flash.jsx @@ -1,11 +1,14 @@ +import React, { PropTypes, Component } from 'react'; + import Core from "meteor/nova:core"; + const Messages = Core.Messages; -const Flash = React.createClass({ +class Flash extends Component{ componentDidMount() { Messages.markAsSeen(this.props.message._id); - }, + } render() { return ( @@ -14,6 +17,6 @@ const Flash = React.createClass({ ) } -}); +} module.exports = Flash; \ No newline at end of file diff --git a/packages/base-components/lib/common/Header.jsx b/packages/base-components/lib/common/Header.jsx index f70294061..c91739b96 100644 --- a/packages/base-components/lib/common/Header.jsx +++ b/packages/base-components/lib/common/Header.jsx @@ -1,7 +1,7 @@ import NoSSR from 'react-no-ssr'; -const Header = props => { +const Header = ({currentUser}) => { ({Logo, ListContainer, CategoriesList, FlashContainer, ModalButton, NewDocContainer, CanCreatePost} = Telescope.components); @@ -21,9 +21,9 @@ const Header = props => { - {props.currentUser ?

My Account

: ""} + {currentUser ?

My Account

: ""} - + {FlowRouter.go('posts.single', post);}}/> diff --git a/packages/base-components/lib/common/Layout.jsx b/packages/base-components/lib/common/Layout.jsx index f978e10e0..a93741ce9 100644 --- a/packages/base-components/lib/common/Layout.jsx +++ b/packages/base-components/lib/common/Layout.jsx @@ -1,7 +1,6 @@ const Layout = props => { - const Header = Telescope.getComponent("Header"); - const Footer = Telescope.getComponent("Footer"); + ({Header, Footer} = Telescope.components); return (
diff --git a/packages/base-components/lib/common/Logo.jsx b/packages/base-components/lib/common/Logo.jsx index f83465139..be64c1c5b 100644 --- a/packages/base-components/lib/common/Logo.jsx +++ b/packages/base-components/lib/common/Logo.jsx @@ -1,15 +1,15 @@ -const Logo = props => { - if (props.logoUrl) { +const Logo = ({logoUrl, siteTitle}) => { + if (logoUrl) { return (

- {props.siteTitle} + {siteTitle}

) } else { return ( -

{props.siteTitle}

+

{siteTitle}

) } } diff --git a/packages/base-components/lib/permissions/CanCreatePost.jsx b/packages/base-components/lib/permissions/CanCreatePost.jsx index de04f7a0b..82cb89902 100644 --- a/packages/base-components/lib/permissions/CanCreatePost.jsx +++ b/packages/base-components/lib/permissions/CanCreatePost.jsx @@ -1,19 +1,15 @@ -const CanCreatePost = React.createClass({ - - propTypes: { - user: React.PropTypes.object - }, - - render() { - if (!this.props.user){ - return

Please log in.

; - } else if (Users.can.post(this.props.user)) { - return this.props.children; - } else { - return

Sorry, you do not have permissions to post at this time

; - } +const CanCreatePost = ({user, children}) => { + if (!user){ + return

Please log in.

; + } else if (Users.can.post(user)) { + return children; + } else { + return

Sorry, you do not have permissions to post at this time

; } +}; -}); +CanCreatePost.propTypes = { + user: React.PropTypes.object +} module.exports = CanCreatePost; \ No newline at end of file diff --git a/packages/base-components/lib/permissions/CanEditPost.jsx b/packages/base-components/lib/permissions/CanEditPost.jsx index bd462fe4d..6283a1513 100644 --- a/packages/base-components/lib/permissions/CanEditPost.jsx +++ b/packages/base-components/lib/permissions/CanEditPost.jsx @@ -1,20 +1,16 @@ -const CanEditPost = React.createClass({ - - propTypes: { - user: React.PropTypes.object, - post: React.PropTypes.object - }, - - render() { - if (Users.can.edit(this.props.user, this.props.post)) { - return this.props.children; - } else if (!this.props.user){ - return

Please log in.

; - } else { - return

Sorry, you do not have permissions to edit this post at this time

; - } +const CanEditPost = ({user, post, children}) => { + if (Users.can.edit(user, post)) { + return children; + } else if (!user){ + return

Please log in.

; + } else { + return

Sorry, you do not have permissions to edit this post at this time

; } +}; -}); +CanEditPost.propTypes = { + user: React.PropTypes.object, + post: React.PropTypes.object +} module.exports = CanEditPost; \ No newline at end of file diff --git a/packages/base-components/lib/permissions/CanEditUser.jsx b/packages/base-components/lib/permissions/CanEditUser.jsx index 1da303871..10deb7286 100644 --- a/packages/base-components/lib/permissions/CanEditUser.jsx +++ b/packages/base-components/lib/permissions/CanEditUser.jsx @@ -1,20 +1,16 @@ -const CanEditUser = React.createClass({ - - propTypes: { - user: React.PropTypes.object, - userToEdit: React.PropTypes.object - }, - - render() { - if (!this.props.user){ - return

Please log in.

; - } else if (Users.can.edit(this.props.user, this.props.userToEdit)) { - return this.props.children; - } else { - return

Sorry, you do not have permissions to edit this user at this time

; - } +const CanEditUser = ({user, userToEdit, children}) => { + if (!user){ + return

Please log in.

; + } else if (Users.can.edit(user, userToEdit)) { + return children; + } else { + return

Sorry, you do not have permissions to edit this user at this time

; } +}; -}); +CanEditUser.propTypes = { + user: React.PropTypes.object, + userToEdit: React.PropTypes.object +} module.exports = CanEditUser; \ No newline at end of file diff --git a/packages/base-components/lib/permissions/CanView.jsx b/packages/base-components/lib/permissions/CanView.jsx index 8d63a591e..d0d8d40fd 100644 --- a/packages/base-components/lib/permissions/CanView.jsx +++ b/packages/base-components/lib/permissions/CanView.jsx @@ -1,19 +1,15 @@ -const CanView = React.createClass({ - - propTypes: { - user: React.PropTypes.object - }, - - render() { - if (Users.can.view(this.props.user)) { - return this.props.children; - } else if (!this.props.user){ - return

Please log in.

; - } else { - return

Sorry, you do not have permissions to post at this time

; - } +const CanView = ({user, children}) => { + if (Users.can.view(user)) { + return children; + } else if (!user){ + return

Please log in.

; + } else { + return

Sorry, you do not have permissions to post at this time

; } +}; -}); +CanView.propTypes = { + user: React.PropTypes.object +} module.exports = CanView; \ No newline at end of file diff --git a/packages/base-components/lib/permissions/CanViewPost.jsx b/packages/base-components/lib/permissions/CanViewPost.jsx index 6fd72457d..acb9c2c92 100644 --- a/packages/base-components/lib/permissions/CanViewPost.jsx +++ b/packages/base-components/lib/permissions/CanViewPost.jsx @@ -1,20 +1,16 @@ -const CanViewPost = React.createClass({ - - propTypes: { - user: React.PropTypes.object, - post: React.PropTypes.object - }, - - render() { - if (Users.can.viewPost(this.props.user, this.props.document)) { - return this.props.children; - } else if (!this.props.user){ - return

Please log in.

; - } else { - return

Sorry, you do not have permissions to post at this time

; - } +const CanViewPost = ({user, post, children}) => { + if (Users.can.viewPost(this.props.user, this.props.document)) { + return this.props.children; + } else if (!this.props.user){ + return

Please log in.

; + } else { + return

Sorry, you do not have permissions to post at this time

; } +}; -}); +CanViewPost.propTypes = { + user: React.PropTypes.object, + post: React.PropTypes.object +} module.exports = CanViewPost; \ No newline at end of file diff --git a/packages/base-components/lib/posts/Post.jsx b/packages/base-components/lib/posts/Post.jsx index 78f30f643..1959fdd84 100644 --- a/packages/base-components/lib/posts/Post.jsx +++ b/packages/base-components/lib/posts/Post.jsx @@ -1,8 +1,8 @@ -const Post = (props) => { +const Post = ({document}) => { ({ListContainer, CommentList, CommentNew, PostCategories, SocialShare} = Telescope.components); - const post = props.document; + const post = document; const htmlBody = {__html: post.htmlBody}; return ( diff --git a/packages/base-components/lib/posts/list/PostCategories.jsx b/packages/base-components/lib/posts/list/PostCategories.jsx index d81a316be..0be56ef99 100644 --- a/packages/base-components/lib/posts/list/PostCategories.jsx +++ b/packages/base-components/lib/posts/list/PostCategories.jsx @@ -1,9 +1,9 @@ -const PostCategories = props => { +const PostCategories = ({categories}) => { return (

Categories

) diff --git a/packages/base-components/lib/posts/list/PostCommenters.jsx b/packages/base-components/lib/posts/list/PostCommenters.jsx index 2826fbb0c..cbff4a21c 100644 --- a/packages/base-components/lib/posts/list/PostCommenters.jsx +++ b/packages/base-components/lib/posts/list/PostCommenters.jsx @@ -1,9 +1,9 @@ -const PostCommenters = props => { +const PostCommenters = ({commenters}) => { return (

Comments by

    - {props.commenters.map(commenter =>
  • {Users.getDisplayName(commenter)}
  • )} + {commenters.map(commenter =>
  • {Users.getDisplayName(commenter)}
  • )}
) diff --git a/packages/base-components/lib/posts/list/PostItem.jsx b/packages/base-components/lib/posts/list/PostItem.jsx index 113411de7..ffeb08de7 100644 --- a/packages/base-components/lib/posts/list/PostItem.jsx +++ b/packages/base-components/lib/posts/list/PostItem.jsx @@ -1,23 +1,20 @@ -const PostItem = React.createClass({ - - propTypes: { - post: React.PropTypes.object.isRequired, // the current comment - currentUser: React.PropTypes.object, // the current user - }, +import React, { PropTypes, Component } from 'react'; + +class PostItem extends Component { renderCategories() { ({PostCategories} = Telescope.components); return this.props.post.categoriesArray ? : ""; - }, + } renderCommenters() { ({PostCommenters} = Telescope.components); return this.props.post.commentersArray ? : ""; - }, + } renderActions() { @@ -34,7 +31,7 @@ const PostItem = React.createClass({ {Users.can.edit(this.props.currentUser, this.props.post) ? component : ""}
) - }, + } render() { @@ -53,6 +50,11 @@ const PostItem = React.createClass({ ) } -}); +}; + +PostItem.propTypes = { + post: React.PropTypes.object.isRequired, // the current comment + currentUser: React.PropTypes.object, // the current user +} module.exports = PostItem; \ No newline at end of file diff --git a/packages/base-components/lib/posts/list/PostList.jsx b/packages/base-components/lib/posts/list/PostList.jsx index c73d759ad..3e0755341 100644 --- a/packages/base-components/lib/posts/list/PostList.jsx +++ b/packages/base-components/lib/posts/list/PostList.jsx @@ -1,18 +1,18 @@ -const PostList = props => { +const PostList = ({results, currentUser, hasMore, ready, count, totalCount, loadMore}) => { ({PostItem, LoadMore, PostsLoading, NoPosts, NoMorePosts, PostViews} = Telescope.components); - if (!!props.results.length) { + if (!!results.length) { return (
- {props.results.map(post => )} + {results.map(post => )}
- {props.hasMore ? (props.ready ? : ) : } + {hasMore ? (ready ? : ) : }
) - } else if (!props.ready) { + } else if (!ready) { return (
diff --git a/packages/base-components/lib/users/UsersEdit.jsx b/packages/base-components/lib/users/UsersEdit.jsx index dd16ee77f..740146d2d 100644 --- a/packages/base-components/lib/users/UsersEdit.jsx +++ b/packages/base-components/lib/users/UsersEdit.jsx @@ -1,23 +1,20 @@ -const UsersEdit = React.createClass({ +const UsersEdit = ({document, currentUser}) => { + + const user = this.props.document; + const label = `Edit profile for ${Users.getDisplayName(user)}`; + + ({CanEditUser, EditDocContainer} = Telescope.components); + + return ( + + + + ) +} - propTypes: { - document: React.PropTypes.object.isRequired, - currentUser: React.PropTypes.object.isRequired - }, - - render() { - - const user = this.props.document; - const label = `Edit profile for ${Users.getDisplayName(user)}`; - - ({CanEditUser, EditDocContainer} = Telescope.components); - - return ( - - - - ) - } -}); +UsersEdit.propTypes = { + document: React.PropTypes.object.isRequired, + currentUser: React.PropTypes.object.isRequired +} module.exports = UsersEdit; \ No newline at end of file diff --git a/packages/base-components/lib/users/UsersSingle.jsx b/packages/base-components/lib/users/UsersSingle.jsx index 5b7e28f41..251d9c285 100644 --- a/packages/base-components/lib/users/UsersSingle.jsx +++ b/packages/base-components/lib/users/UsersSingle.jsx @@ -1,18 +1,13 @@ -const UsersSingle = React.createClass({ - - propTypes: { - document: React.PropTypes.object.isRequired, - currentUser: React.PropTypes.object.isRequired - }, +const UsersSingle = ({document, currentUser}) => { + const user = document; + return ( +

Profile for {Users.getDisplayName(user)}

+ ) +} - render() { - - const user = this.props.document; - - return ( -

Profile for {Users.getDisplayName(user)}

- ) - } -}); +UsersSingle.propTypes = { + document: React.PropTypes.object.isRequired, + currentUser: React.PropTypes.object.isRequired +} module.exports = UsersSingle; \ No newline at end of file diff --git a/packages/nova-core/lib/components/ModalButton.jsx b/packages/nova-core/lib/components/ModalButton.jsx index 22a124762..3075fe48d 100644 --- a/packages/nova-core/lib/components/ModalButton.jsx +++ b/packages/nova-core/lib/components/ModalButton.jsx @@ -1,3 +1,5 @@ +import React, { PropTypes, Component } from 'react'; + import Modal from 'react-modal'; const customStyles = { @@ -11,29 +13,29 @@ const customStyles = { } }; -const ModalButton = React.createClass({ +class ModalButton extends Component { - propTypes: { - label: React.PropTypes.string.isRequired, - className: React.PropTypes.string - }, + constructor() { + super(); + this.openModal = this.openModal.bind(this); + this.closeModal = this.closeModal.bind(this); + this.state = { + modalIsOpen: false + }; + } - getInitialState: function() { - return { modalIsOpen: false }; - }, - - openModal: function(event) { + openModal(event) { event.preventDefault(); this.setState({modalIsOpen: true}); - }, + } - closeModal: function() { + closeModal(event) { + event.preventDefault(); this.setState({modalIsOpen: false}); - }, + } render() { - // ({PostNewContainer} = Telescope.components); const Component = this.props.component; // see http://stackoverflow.com/a/32371612/649299 @@ -69,7 +71,12 @@ const ModalButton = React.createClass({
) } -}); +}; + +ModalButton.propTypes = { + label: React.PropTypes.string.isRequired, + className: React.PropTypes.string +} module.exports = ModalButton; export default ModalButton; \ No newline at end of file diff --git a/packages/nova-core/lib/containers/AppContainer.jsx b/packages/nova-core/lib/containers/AppContainer.jsx index 358c3f7f4..f1a642397 100644 --- a/packages/nova-core/lib/containers/AppContainer.jsx +++ b/packages/nova-core/lib/containers/AppContainer.jsx @@ -1,3 +1,5 @@ +import React, { PropTypes, Component } from 'react'; + const AppContainer = React.createClass({ mixins: [ReactMeteorData], diff --git a/packages/nova-demo/demo-component.jsx b/packages/nova-demo/demo-component.jsx index fa495590e..b60164d04 100644 --- a/packages/nova-demo/demo-component.jsx +++ b/packages/nova-demo/demo-component.jsx @@ -1,3 +1,4 @@ + import NoSSR from 'react-no-ssr'; import Core from 'meteor/nova:core'; diff --git a/packages/nova-share/lib/common/social_share.jsx b/packages/nova-share/lib/common/social_share.jsx index 43fdfd3eb..c46945b5d 100644 --- a/packages/nova-share/lib/common/social_share.jsx +++ b/packages/nova-share/lib/common/social_share.jsx @@ -1,28 +1,29 @@ -const SocialShare = React.createClass({ +import React, { PropTypes, Component } from 'react'; - propTypes: { - url: React.PropTypes.string.isRequired, - title: React.PropTypes.string.isRequired, - }, +class SocialShare extends Component { - getInitialState: function() { - return {showShare: false}; - }, + constructor() { + super(); + this.toggleView = this.toggleView.bind(this); + this.state = { + showShare: false + } + } viaTwitter() { return !!Settings.get('twitterAccount') ? 'via='+Settings.get('twitterAccount') : ''; - }, + } toggleView() { this.setState({ showShare: !this.state.showShare }); return; - }, + } insertIcon(name) { return {__html: Telescope.utils.getIcon(name)}; - }, + } render() { let shareDisplay = this.state.showShare ? 'active' : 'hidden'; @@ -38,6 +39,11 @@ const SocialShare = React.createClass({ ) } -}); +} + +SocialShare.propTypes = { + url: React.PropTypes.string.isRequired, + title: React.PropTypes.string.isRequired, +} module.exports = SocialShare;