summaryrefslogtreecommitdiff
path: root/client/components/Tasks
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-07-04 02:11:44 +0200
committerJules Laplace <julescarbon@gmail.com>2017-07-04 02:11:44 +0200
commit2263f412817d6d2d36372e7617feb0d97fa57af8 (patch)
treec5bc7fd177636a295a508c12e1cc2d703c252056 /client/components/Tasks
parent0075896decfe2ebf81c2610f4367929c0d51b1d8 (diff)
break out browser and tasks
Diffstat (limited to 'client/components/Tasks')
-rw-r--r--client/components/Tasks/TaskForm.jsx50
-rw-r--r--client/components/Tasks/TaskFormView.jsx72
-rw-r--r--client/components/Tasks/Tasks.jsx38
3 files changed, 160 insertions, 0 deletions
diff --git a/client/components/Tasks/TaskForm.jsx b/client/components/Tasks/TaskForm.jsx
new file mode 100644
index 0000000..89771ad
--- /dev/null
+++ b/client/components/Tasks/TaskForm.jsx
@@ -0,0 +1,50 @@
+import { h, Component } from 'preact'
+import { Link } from 'react-router-dom'
+
+import client from '../../client.js'
+
+export default class TaskForm 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,
+ })
+ }
+
+ updateAlpha(event){
+ const name = event.target.name
+ let value = event.target.value
+ console.log(name, value)
+ this.setState({
+ alphaValue: value,
+ alpha: '1e' + value,
+ error: null,
+ })
+ }
+
+ handleSubmit(event) {
+ event.preventDefault()
+ let rec = Object.assign({}, this.state)
+ delete rec.error
+ this.props.onClose()
+ client.folder.create( rec ).then( (data) => {
+ this.props.addFolder( data )
+ })
+ }
+
+ render() {
+ return ( <TaskFormView currentTask={this.state} /> )
+ }
+}
diff --git a/client/components/Tasks/TaskFormView.jsx b/client/components/Tasks/TaskFormView.jsx
new file mode 100644
index 0000000..078f7c7
--- /dev/null
+++ b/client/components/Tasks/TaskFormView.jsx
@@ -0,0 +1,72 @@
+import { h, Component } from 'preact'
+import { Link } from 'react-router-dom'
+
+import client from '../../client.js'
+
+export default class TaskForm 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,
+ })
+ }
+ updateAlpha(event){
+ const name = event.target.name
+ let value = event.target.value
+ console.log(name, value)
+ this.setState({
+ alphaValue: value,
+ alpha: '1e' + value,
+ error: null,
+ })
+ }
+ handleSubmit(event) {
+ event.preventDefault()
+ let rec = Object.assign({}, this.state)
+ delete rec.error
+ this.props.onClose()
+ client.folder.create( rec ).then( (data) => {
+ this.props.addFolder( data )
+ })
+ }
+ render() {
+ return (
+ <div class='form'>
+ <div>
+ <div>
+ <img />
+ {this.state.content}
+ </div>
+ <label>content</label>
+ <button onclick={() => this.setState({ content: null })}>x</button>
+ </div>
+ <div>
+ <div>
+ {this.state.style}
+ </div>
+ <label>style</label>
+ <button onclick={() => this.setState({ style: null })}>x</button>
+ </div>
+ <div>
+ <input type='range' min='0' max='100' value={this.state.alphaValue}
+ onChange={(e) => this.updateAlpha(e)}
+ />
+ {this.state.alphaString}
+ <label>alpha</label>
+ <button onClick={this.handleSubmit}>Create</button>
+ </div>
+ </div>
+ )
+ }
+}
diff --git a/client/components/Tasks/Tasks.jsx b/client/components/Tasks/Tasks.jsx
new file mode 100644
index 0000000..b72cd79
--- /dev/null
+++ b/client/components/Tasks/Tasks.jsx
@@ -0,0 +1,38 @@
+import { h, Component } from 'preact'
+import { Link } from 'react-router-dom'
+
+import TaskForm from './TaskForm.jsx'
+
+import client from '../../client.js'
+
+export default class Tasks extends Component {
+ constructor(props) {
+ super()
+ this.state = {
+ adding: false,
+ }
+ client.task.index().then( tasks => this.setState({ tasks }) )
+ }
+ render() {
+ const tasks = (this.props.tasks || []).map( (task, i) => {
+ return (
+ <div key={i} onClick={() => this.toggle(task)}>
+ <span class='name'>{task.name}</span>
+ </div>
+ )
+ })
+ return (
+ <div class='column'>
+ <div class='window'>
+ <div class='heading'>
+ <b>tasks</b>
+ </div>
+ <TaskForm />
+ <div class='list'>
+ {tasks}
+ </div>
+ </div>
+ </div>
+ )
+ }
+}