diff --git a/app/main.jsx b/app/main.jsx
index f72f73c..d58144a 100644
--- a/app/main.jsx
+++ b/app/main.jsx
@@ -1,13 +1,21 @@
import React from 'react'
import injectTapEventPlugin from "react-tap-event-plugin"
injectTapEventPlugin()
-import ThemeManager from 'material-ui/lib/styles/theme-manager'
+import getMuiTheme from 'material-ui/lib/styles/getMuiTheme'
import ReactDOM from 'react-dom'
import LibraryNav from 'LibraryNav'
import Styles from 'material-ui/lib/styles'
import Rethink from 'rethinkdbdash'
+import Edit from 'material-ui/lib/svg-icons/editor/mode-edit'
+import Delete from 'material-ui/lib/svg-icons/action/delete'
+import Divider from 'material-ui/lib/divider'
import moment from 'moment'
+import mui from 'material-ui'
+const {
+ Popover,
+ Menu,
+ MenuItem} = mui
const DefaultRawTheme = Styles.LightRawTheme
@@ -28,23 +36,19 @@ function createTables(){
r.tableCreate('accounts').run().error(function(){})
}
+
class Main extends React.Component {
- constructor(props){
- super(props)
+ constructor(props, context){
+ super(props, context)
createTables()
- this.state = {entries: []}
- }
-
- static get childContextTypes(){
- return {muiTheme: React.PropTypes.object}
- }
-
- getChildContext() {
- return {
- muiTheme: ThemeManager.getMuiTheme(DefaultRawTheme)
+ this.state = {
+ entries: [],
+ contextMenuOpen: false,
+ contextMenuItems: this.context.contextMenuItems
}
}
+
entriesTapped = () => {
r.table('notes').getAll('jyapayne@gmail.com', {index: 'account_id'}).run().then(
function(notes){
@@ -53,20 +57,76 @@ class Main extends React.Component {
)
};
+ handleRequestClose = () => {
+ this.setState({
+ contextMenuOpen: false,
+ })
+ };
+
+ tapped = () => {
+ console.log('tapped')
+ console.log(this.context.contextMenuItems)
+ };
+
render() {
return (
-
+
+
+
+
+
+
+
+
)
}
}
+class S extends React.Component {
+ static get childContextTypes(){
+ return {muiTheme: React.PropTypes.object,
+ contextMenuItems: React.PropTypes.array}
+ }
+
+ getChildContext() {
+ return {
+ muiTheme: getMuiTheme(DefaultRawTheme),
+ contextMenuItems: []
+ }
+ }
+
+ render(){
+ return
+ }
+
+}
+
+
+Main.contextTypes = {
+ contextMenuItems: React.PropTypes.array.isRequired
+};
+
ReactDOM.render(
- ,
+ ,
document.getElementById('main')
);
diff --git a/app/modules/EntrySelector.jsx b/app/modules/EntrySelector.jsx
index 16f8dc4..847ef93 100644
--- a/app/modules/EntrySelector.jsx
+++ b/app/modules/EntrySelector.jsx
@@ -1,7 +1,7 @@
import React from 'react'
import mui from 'material-ui'
-import ThemeManager from 'material-ui/lib/styles/theme-manager'
+import getMuiTheme from 'material-ui/lib/styles/getMuiTheme'
import List from 'material-ui/lib/lists/list'
import ListItem from 'material-ui/lib/lists/list-item'
@@ -46,7 +46,7 @@ export default class EntrySelector extends React.Component {
getChildContext() {
return {
- muiTheme: ThemeManager.getMuiTheme(DefaultRawTheme)
+ muiTheme: getMuiTheme(DefaultRawTheme)
}
}
diff --git a/app/modules/LibraryNav.jsx b/app/modules/LibraryNav.jsx
index d751a80..f4774df 100644
--- a/app/modules/LibraryNav.jsx
+++ b/app/modules/LibraryNav.jsx
@@ -1,7 +1,7 @@
import React from 'react'
import mui from 'material-ui'
-import ThemeManager from 'material-ui/lib/styles/theme-manager'
+import getMuiTheme from 'material-ui/lib/styles/getMuiTheme'
import styles from 'material-ui/lib/styles'
import List from 'material-ui/lib/lists/list'
@@ -11,6 +11,7 @@ import NoteBook from 'material-ui/lib/svg-icons/action/class'
import History from 'material-ui/lib/svg-icons/action/history'
import AddCircleOutline from 'material-ui/lib/svg-icons/content/add-circle-outline'
import Folder from 'material-ui/lib/svg-icons/file/folder'
+import Edit from 'material-ui/lib/svg-icons/editor/mode-edit'
import Delete from 'material-ui/lib/svg-icons/action/delete'
import Divider from 'material-ui/lib/divider'
import { SelectableContainerEnhance } from 'material-ui/lib/hoc/selectable-enhance'
@@ -24,9 +25,11 @@ const {AppBar,
EnhancedButton,
NavigationClose,
Menu,
+ MenuItem,
Mixins,
RaisedButton,
FlatButton,
+ Popover,
Badge,
TextField,
Dialog,
@@ -66,35 +69,41 @@ const DefaultRawTheme = Styles.LightRawTheme
export default class LibraryNav extends React.Component {
- constructor(props){
- super(props)
+ constructor(props, context){
+ super(props, context)
+ console.log(this.state)
this.state = {
open: false,
navItems: [
{
'name': 'Entries',
'icon':
,
- 'notes': 10
+ 'notes': 10,
+ 'clicked': this.props.entriesTapped || this.entriesTapped
},
{
'name': 'Starred',
'icon': ,
- 'notes': 1
+ 'notes': 1,
+ 'clicked': this.props.starredTapped || this.starredTapped
},
{
'name': 'Recents',
'icon': ,
- 'notes': 10
+ 'notes': 10,
+ 'clicked': this.props.recentsTapped || this.recentsTapped
},
{
'name': 'Trash',
'icon': ,
- 'notes': 0
+ 'notes': 0,
+ 'clicked': this.props.trashTapped || this.trashTapped
},
{
'name': 'All Notes',
'icon': ,
- 'notes': 0
+ 'notes': 0,
+ 'clicked': this.props.allNotesTapped || this.allNotesTapped
},
],
@@ -109,9 +118,10 @@ export default class LibraryNav extends React.Component {
return {muiTheme: React.PropTypes.object}
}
+
getChildContext() {
return {
- muiTheme: ThemeManager.getMuiTheme(DefaultRawTheme)
+ muiTheme: getMuiTheme(DefaultRawTheme)
}
}
@@ -142,32 +152,81 @@ export default class LibraryNav extends React.Component {
newNotebookTyped = (i) => {
};
+ menuItemClicked = (i, ev) => {
+ var nativeEvent = ev.nativeEvent
+ if(nativeEvent.button == 2){
+ //Right click
+
+ }
+ };
+
+ noteBookTapped = (i, ev) => {
+ var nativeEvent = ev.nativeEvent
+ if(nativeEvent.button == 2){
+ //Right click
+ var x = nativeEvent.pageX
+ var y = nativeEvent.pageY
+ this.context.contextMenuItems = [
+ } />,
+ ,
+ } />
+ ]
+
+ this.setState({
+ popTop: y,
+ popLeft: x,
+ open: true
+ })
+ }
+
+ };
+
+ handleRequestClose = () => {
+ this.setState({
+ open: false,
+ })
+ };
+
render(){
return (
-
-
- {this.state.navItems.map(function(item, i){
- return }
- value={i}
- className="noselect"/>;
- })}
-
-
-
- NoteBooks
-
-
-
-
}>
+
+
+
+
+
+
+ {this.state.navItems.map((item, i) => {
+ return }
+ value={i}
+ onTouchTap={this.menuItemClicked.bind(this, i)}
+ className="noselect"/>;
+ })}
+
+
+
+ NoteBooks
+
+
+
+
}>
{this.state.notebooks.map((notebook, i) =>{
var l = null
@@ -194,16 +253,21 @@ export default class LibraryNav extends React.Component {
key={i}
primaryText={notebook.title}
className="noselect"
+ onTouchTap={this.noteBookTapped.bind(this, i)}
leftIcon={}
rightIcon={}
/>
}
return l
})}
-
+
-
+
)
}
}
+LibraryNav.contextTypes = {
+ contextMenuItems: React.PropTypes.array.isRequired
+};
+