|
|
@@ -1,36 +1,45 @@ |
|
|
|
import React from "react"; |
|
|
|
import { useState } from "react"; |
|
|
|
import KBColumn from "./components/KBColumn"; |
|
|
|
import "./App.css"; |
|
|
|
import Header from "./components/Header"; |
|
|
|
import Task from "./types/Task" |
|
|
|
|
|
|
|
type Column = { |
|
|
|
id: number; |
|
|
|
name: string; |
|
|
|
color: string; |
|
|
|
tasks: Task[]; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type State = { |
|
|
|
columns: Column[]; |
|
|
|
iterator: number; |
|
|
|
columnIterator: number; |
|
|
|
taskIterator: number; |
|
|
|
}; |
|
|
|
|
|
|
|
class App extends React.Component<{}, State> { |
|
|
|
constructor(props: any) { |
|
|
|
super(props); |
|
|
|
this.deleteColumn = this.deleteColumn.bind(this); |
|
|
|
this.addColumn = this.addColumn.bind(this) |
|
|
|
this.addColumn = this.addColumn.bind(this); |
|
|
|
this.addTask = this.addTask.bind(this); |
|
|
|
this.state = { |
|
|
|
iterator: 3, |
|
|
|
taskIterator: 1, |
|
|
|
columnIterator: 3, |
|
|
|
columns: [ |
|
|
|
{ |
|
|
|
id: 1, |
|
|
|
name: "Harry", |
|
|
|
color: "green", |
|
|
|
tasks: [] |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: 2, |
|
|
|
name: "Potter", |
|
|
|
color: "red", |
|
|
|
tasks: [] |
|
|
|
}, |
|
|
|
], |
|
|
|
}; |
|
|
@@ -42,20 +51,37 @@ class App extends React.Component<{}, State> { |
|
|
|
this.setState({ columns: filteredColumns }); |
|
|
|
console.log(this.state.columns); |
|
|
|
} |
|
|
|
|
|
|
|
addColumn() { |
|
|
|
let columnId = this.state.iterator; |
|
|
|
this.setState({ iterator: columnId + 1 }); |
|
|
|
let columnId = this.state.columnIterator; |
|
|
|
this.setState({ columnIterator: columnId + 1 }); |
|
|
|
this.state.columns.push({ |
|
|
|
id: columnId, |
|
|
|
name: "tempName" + columnId, |
|
|
|
color: "red", |
|
|
|
tasks: [] |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
addTask(){ |
|
|
|
|
|
|
|
if (this.state.columns.length > 0){ |
|
|
|
let taskId = this.state.taskIterator; |
|
|
|
this.setState({ taskIterator: taskId + 1}) |
|
|
|
this.state.columns[0].tasks.push( |
|
|
|
{ id: taskId, |
|
|
|
title: "Task "+ taskId, |
|
|
|
description: "foo", |
|
|
|
priority: 'normal' |
|
|
|
} |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
render() { |
|
|
|
return ( |
|
|
|
<div className="App"> |
|
|
|
<Header addColumn={this.addColumn}/> |
|
|
|
<Header addColumn={this.addColumn} addTask={this.addTask}/> |
|
|
|
{this.state.columns.map((column, index) => ( |
|
|
|
<KBColumn |
|
|
|
color={column.color} |
|
|
@@ -63,11 +89,11 @@ class App extends React.Component<{}, State> { |
|
|
|
key={index} |
|
|
|
onDelete={this.deleteColumn} |
|
|
|
id={column.id} |
|
|
|
tasks={column.tasks} |
|
|
|
/> |
|
|
|
))} |
|
|
|
</div> |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
export default App; |
|
|
|
export default App; |