diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2017-06-29 01:18:06 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2017-06-29 01:18:06 +0200 |
| commit | 50904f4b010c417d558174005a7b4c5868e7d8d9 (patch) | |
| tree | 2fb9bad10e09ff66ccc5313289a62367843326a3 /client/components | |
| parent | a190d638c608f4352e3f01d72ed419a5ab5129ed (diff) | |
sketch folder stuff
Diffstat (limited to 'client/components')
| -rw-r--r-- | client/components/App.jsx | 7 | ||||
| -rw-r--r-- | client/components/Folders/FolderForm.jsx | 47 | ||||
| -rw-r--r-- | client/components/Folders/Folders.jsx | 30 | ||||
| -rw-r--r-- | client/components/Modal.jsx | 17 |
4 files changed, 99 insertions, 2 deletions
diff --git a/client/components/App.jsx b/client/components/App.jsx index 0b1557f..bbb50d6 100644 --- a/client/components/App.jsx +++ b/client/components/App.jsx @@ -1,20 +1,23 @@ import { h, Component } from 'preact' -import { isMobile } from '../util' -import db from '../db' +import { isMobile } from '../vendor/util' +// import db from '../db' import { Link, withRouter } from 'react-router-dom' import Header from './Header.jsx' +import Folders from './Folders/Folders.jsx' class App extends Component { constructor(props) { super() this.state = { + folders: null, } } render() { return ( <div> <Header /> + <Folders /> </div> ) } diff --git a/client/components/Folders/FolderForm.jsx b/client/components/Folders/FolderForm.jsx new file mode 100644 index 0000000..3a3c54e --- /dev/null +++ b/client/components/Folders/FolderForm.jsx @@ -0,0 +1,47 @@ +import { h, Component } from 'preact' +import { Link } from 'react-router-dom' + +import client from '../../client.js' + +export default class FolderForm extends Component { + constructor(props) { + super() + this.state = { + name: '', + } + this.updateState = this.updateState.bind(this) + this.handleSubmit = this.handleSubmit.bind(this) + } + updateState(event){ + const name = event.target.name + let value = event.target.value + console.log(name, value) + this.setState({ + [name]: value, + error: null, + }) + } + handleSubmit(event) { + event.preventDefault() + client.folders.create( this.state ).then( (data) => { + + }) + } + render() { + return ( + <div class='folderForm'> + <div> + <h1>Create a new folder</h1> + <div> + <label for='folders_folder_name'>Folder name</label> + <input type='text' id='folders_folder_name' name='name' value={this.state.name} onChange={this.updateState} /> + </div> + <div> + <label></label> + <button onClick={() => this.create()>Create</button> + </div> + </div> + </div> + ) + } +} diff --git a/client/components/Folders/Folders.jsx b/client/components/Folders/Folders.jsx new file mode 100644 index 0000000..7c27311 --- /dev/null +++ b/client/components/Folders/Folders.jsx @@ -0,0 +1,30 @@ +import { h, Component } from 'preact' +import { Link } from 'react-router-dom' + +import Modal from '../Modal.jsx' +import FolderForm from './FolderForm.jsx' + +export default class Folders extends Component { + constructor(props) { + super() + this.state = { + adding: false, + } + } + openModal() { + this.setState({ adding: true }) + } + closeModal() { + this.setState({ adding: false }) + } + render() { + return ( + <div class='folders'> + <button onClick={() => this.openModal()}>+</button> + <Modal visible={this.state.adding} onClose={() => this.closeModal()}> + <FolderForm /> + </Modal> + </div> + ) + } +} diff --git a/client/components/Modal.jsx b/client/components/Modal.jsx new file mode 100644 index 0000000..3681ce4 --- /dev/null +++ b/client/components/Modal.jsx @@ -0,0 +1,17 @@ +import { h, Component } from 'preact' + +export default class Modal extends Component { + constructor(props) { + super() + } + render() { + const className = this.props.visible ? 'modal visible' : 'modal' + return ( + <div class={className}> + <div class='inner'> + {this.props.children} + </div> + </div> + ) + } +} |
