Vulcan/packages/nova-base-components/lib/common/NewPostButton.jsx

42 lines
1.2 KiB
React
Raw Normal View History

2016-03-25 10:45:28 +09:00
import React, { PropTypes, Component } from 'react';
import { Button } from 'react-bootstrap';
import Router from '../router.js'
2016-03-25 10:45:28 +09:00
import Core from "meteor/nova:core";
const Messages = Core.Messages;
2016-03-30 10:52:40 +09:00
const ModalTrigger = Core.ModalTrigger;
import ReactForms from "meteor/nova:forms";
const NewDocument = ReactForms.NewDocument;
2016-03-25 10:45:28 +09:00
const NewPostButton = (props, context) => {
2016-03-30 10:52:40 +09:00
({CanCreatePost} = Telescope.components);
2016-03-25 10:45:28 +09:00
return (
<ModalTrigger component={<Button bsStyle="primary">New Post</Button>}>
<CanCreatePost user={context.currentUser}>
2016-03-27 18:17:20 +09:00
<div className="new-post-form">
<h3 className="modal-form-title">New Post</h3>
<NewDocument
collection={Posts}
currentUser={context.currentUser}
methodName="posts.new"
successCallback={(post)=>{
Messages.flash("Post created.", "success");
Router.go('posts.single', post);
}}
2016-03-29 17:28:14 +09:00
labelFunction={Telescope.utils.camelToSpaces}
2016-03-27 18:17:20 +09:00
/>
</div>
2016-03-25 10:45:28 +09:00
</CanCreatePost>
</ModalTrigger>
)
}
NewPostButton.contextTypes = {
currentUser: React.PropTypes.object
};
module.exports = NewPostButton;
export default NewPostButton;