Skip to content

Commit 7ab97bf

Browse files
committed
new document
1 parent 30a64bf commit 7ab97bf

File tree

6 files changed

+61
-12
lines changed

6 files changed

+61
-12
lines changed

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@
4040
"cookie-parser": "^1.4.3",
4141
"css-loader": "^0.28.4",
4242
"draft-js": "^0.10.1",
43+
"electron": "^1.6.11",
44+
"electron-store": "^1.2.0",
4345
"express": "^4.15.3",
4446
"express-session": "^1.15.4",
4547
"express-validator": "^3.2.1",
48+
"fs": "0.0.1-security",
4649
"history": "^4.6.3",
4750
"immutable": "^3.8.1",
4851
"material-ui": "^0.18.7",

reactApp/Components/Directory.js

+34-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import { Link } from 'react-router-dom';
2+
import { Link, Redirect} from 'react-router-dom';
33
import {List, ListItem} from 'material-ui/List';
44
import ActionInfo from 'material-ui/svg-icons/action/info';
55
import Divider from 'material-ui/Divider';
@@ -31,6 +31,7 @@ class Directory extends React.Component {
3131
isOpen: false,
3232
docName: '',
3333
docPass: '',
34+
newDocId: '',
3435
}
3536
}
3637
logout(){
@@ -57,6 +58,7 @@ class Directory extends React.Component {
5758
.catch((err)=>console.log(err))
5859
}
5960
componentDidMount(){
61+
console.log(this.props.store.get('userId'));
6062
this.ownedByAll()
6163
}
6264
filter(event, value){
@@ -151,7 +153,29 @@ class Directory extends React.Component {
151153
})
152154
}
153155
newDocument(){
154-
156+
fetch('http://localhost:3000/documents/new/' + this.props.store.get('userId'), {
157+
method: 'POST',
158+
headers: {
159+
"Content-Type": "application/json"
160+
},
161+
body: JSON.stringify({
162+
title: this.state.docName,
163+
//password: newPassword,
164+
// collaborators: newCollaborators
165+
166+
})
167+
})
168+
.then((response) => {
169+
return response.json()
170+
})
171+
.then((resp) => {
172+
console.log("DOC", resp.document);
173+
console.log("DOCID", resp.document._id);
174+
this.setState({
175+
newDocId: resp.document._id
176+
})
177+
})
178+
.catch((err)=>console.log(err))
155179
}
156180
render() {
157181
const testDoc = {
@@ -179,6 +203,13 @@ class Directory extends React.Component {
179203
primary={true}
180204
/>,
181205
];
206+
console.log(this.state.newDocId);
207+
if (this.state.newDocId){
208+
return (
209+
210+
<Redirect to={"/editor/"+this.state.newDocId} />
211+
)
212+
}
182213
return (
183214
<div>
184215
<h1 style={{textAlign: 'center', fontSize: '40px', paddingTop: '20px'}} >Document Directory</h1>
@@ -198,7 +229,7 @@ class Directory extends React.Component {
198229
open={this.state.modalOpen}
199230
onRequestClose={this.modalClose.bind(this)}
200231
>
201-
<form className="commentForm" onSubmit={this.handleSubmit}>
232+
<form className="commentForm" onSubmit={this.newDocument.bind(this)}>
202233
<input
203234
type="text"
204235
placeholder="Your Document Name"

reactApp/Components/Login.js

+9
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ export default class Login extends React.Component {
3232
};
3333

3434
}
35+
36+
componentDidMount(){
37+
if (this.props.store.get('userId')){
38+
this.setState({
39+
loggedin:true,
40+
})
41+
}
42+
}
3543
handleSubmit(){
3644
console.log("in submit");
3745
fetch('http://localhost:3000/login', {
@@ -49,6 +57,7 @@ export default class Login extends React.Component {
4957
.then((response) => response.json())
5058
.then((resp) => {
5159
console.log(resp.user);
60+
this.props.store.set('userId', resp.user._id);
5261
this.setState({email: '', password: '', loggedin: true, user: resp.user});
5362
})
5463
}

reactApp/Components/MyEditor.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ class MyEditor extends React.Component {
113113
}
114114

115115
componentDidMount() {
116+
console.log(this.props);
117+
console.log(this.props.match);
116118
console.log(this.props.match.params.docId);
117119
fetch('http://localhost:3000/documents/'+this.props.match.params.docId)
118120
.then((response) => {
@@ -121,7 +123,7 @@ class MyEditor extends React.Component {
121123
})
122124
.then((resp) => {
123125
console.log("pulled doc", resp.document);
124-
const contentState = convertFromRaw( JSON.parse(resp.document.content) );
126+
const contentState = convertFromRaw( JSON.parse(resp.document.content) ) ;
125127
var currentDocument = Object.assign({}, resp.document, {content: contentState})
126128
this.setState({saved: false, currentDocument: currentDocument, collaborators: currentDocument.collaborators, title: currentDocument.title, editorState: EditorState.createWithContent(contentState) })
127129
console.log('document collaborators ', currentDocument.collaborators);

reactApp/Components/Root.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Directory from './Directory';
66
import MyEditor from './MyEditor'
77
import Register from './Register.js'
88

9+
910
class Root extends React.Component {
1011
constructor(props){
1112
super(props);
@@ -36,14 +37,15 @@ class Root extends React.Component {
3637
render() {
3738
console.log(this.state);
3839
return (
39-
<Router history={this.props.history} >
40+
<Router history={this.props.history} store={this.props.store}>
4041

4142

4243
<Switch>
43-
<Route exact path="/" component={Login}/>
44+
{/* <Route exact path="/" component={Login}/> */}
45+
<Route exact path="/" render={(props) => <Login store={this.props.store}/>}/>
4446
<Route exact path="/register" component={Register}/>
45-
<Route exact path="/directory/" component={Directory} />
46-
<Route path="/editor/:docId" component={MyEditor} />
47+
<Route exact path="/directory/" render={(props) => <Directory store={this.props.store}/>} />
48+
<Route path="/editor/:docId" render={(props) => <MyEditor {...props} store={this.props.store}/>} />
4749
<Route path ="/" component={Login}/>
4850
</Switch>
4951
</Router>

reactApp/app.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import React from 'react';
88
import ReactDOM from 'react-dom';
9-
import { Router, Route } from 'react-router';
9+
import { Router, Route, } from 'react-router';
1010
import Root from './Components/Root.js'
1111
import createHashHistory from 'history/createHashHistory';
1212
import MyEditor from './Components/MyEditor.js'
@@ -15,6 +15,8 @@ import Login from './Components/Login.js'
1515
import {Editor, EditorState, convertFromRaw, convertToRaw} from 'draft-js';
1616
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
1717
import injectTapEventPlugin from 'react-tap-event-plugin';
18+
const Store = window.require('electron-store');
19+
const store = new Store();
1820
// var injectTapEventPlugin = require("react-tap-event-plugin");
1921
import 'bulma/css/bulma.css'
2022
import 'draft-js/dist/Draft.css';
@@ -48,9 +50,9 @@ const App = () => (
4850

4951
ReactDOM.render(
5052

51-
<MuiThemeProvider>
52-
<Root history={history}/>
53-
</MuiThemeProvider>,
53+
<MuiThemeProvider >
54+
<Root store={store} history={history}/>
55+
</MuiThemeProvider>,
5456

5557
// <App />,
5658

0 commit comments

Comments
 (0)