From bd8fb44a94a3884625e5a526c4659520df39f9d7 Mon Sep 17 00:00:00 2001
From: Joni Laukka <joni.laukka.overflow@gmail.com>
Date: Thu, 20 Jun 2019 12:41:42 +0300
Subject: [PATCH] tasklist opens on portal

---
 public/index.html                |  1 +
 src/App.css                      |  7 +++++++
 src/components/Header.js         |  2 ++
 src/components/TaskItem.js       | 15 +++++++++++++++
 src/components/TaskList.js       | 18 ++++++++++++++++++
 src/components/TaskListButton.js | 30 ++++++++++++++++++++++++++++++
 6 files changed, 73 insertions(+)
 create mode 100644 src/components/TaskItem.js
 create mode 100644 src/components/TaskList.js
 create mode 100644 src/components/TaskListButton.js

diff --git a/public/index.html b/public/index.html
index dd1ccfd..8fad1fb 100644
--- a/public/index.html
+++ b/public/index.html
@@ -23,6 +23,7 @@
   </head>
   <body>
     <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="tasklist"></div>
     <div id="root"></div>
     <!--
       This HTML file is a template.
diff --git a/src/App.css b/src/App.css
index b0f08dd..f791179 100644
--- a/src/App.css
+++ b/src/App.css
@@ -138,3 +138,10 @@ div.login button:hover {
   background-color: darkblue;
   cursor: pointer;
 }
+
+.tasklist{
+  position: absolute;
+  margin-top: 50px;
+  z-index: 2020;
+  background-color: #ffffff80;
+}
diff --git a/src/components/Header.js b/src/components/Header.js
index 7079906..3cb15b0 100644
--- a/src/components/Header.js
+++ b/src/components/Header.js
@@ -2,6 +2,7 @@ import React from 'react';
 
 import LoginForm from './LoginForm';
 import RegisterForm from './RegisterForm';
+import TaskListButton from './TaskListButton';
 
 class Header extends React.Component {
   state = {
@@ -78,6 +79,7 @@ class Header extends React.Component {
           )}
           {this.state.username && <button>{this.state.username}</button>}
           <button onClick={this.props.handleLayerChange}>change layer</button>
+          <TaskListButton />
         </div>
         {this.state.register && (
           <RegisterForm
diff --git a/src/components/TaskItem.js b/src/components/TaskItem.js
new file mode 100644
index 0000000..7e1c968
--- /dev/null
+++ b/src/components/TaskItem.js
@@ -0,0 +1,15 @@
+import React from 'react';
+
+class TaskItem extends React.Component{
+    render(){
+        return(
+            <p>
+                <label>Name: {this.props.text}</label>
+                <br />
+                <label>Description: {this.props.description}</label>
+            </p>
+        );
+    }
+}
+
+export default TaskItem;
\ No newline at end of file
diff --git a/src/components/TaskList.js b/src/components/TaskList.js
new file mode 100644
index 0000000..d67b16c
--- /dev/null
+++ b/src/components/TaskList.js
@@ -0,0 +1,18 @@
+import ReactDOM from 'react-dom';
+import React from 'react';
+import TaskItem from './TaskItem';
+
+class TaskList extends React.Component{
+    render(){
+        return ReactDOM.createPortal(
+            <div className='tasklist'>
+                <TaskItem text='asd' description='asudhaiud'/>
+                <TaskItem text='asd2' description='q7213761923769821'/>
+                <TaskItem text='asd3' description='tehtävä3'/>
+            </div>,
+            document.getElementById('tasklist')
+        );
+    }
+}
+
+export default TaskList;
\ No newline at end of file
diff --git a/src/components/TaskListButton.js b/src/components/TaskListButton.js
new file mode 100644
index 0000000..4ed49c5
--- /dev/null
+++ b/src/components/TaskListButton.js
@@ -0,0 +1,30 @@
+import React, { Fragment } from 'react';
+import TaskList from './TaskList';
+
+class TaskListButton extends React.Component{
+    constructor(props){
+        super(props);
+        this.state = {
+            open: false
+        }
+
+        this.handleClick = this.handleClick.bind(this);
+    }
+
+    handleClick = (e) => {
+        this.setState({
+            open: !this.state.open
+        });
+    }
+
+    render(){
+        return(
+            <Fragment>
+                <button onClick={this.handleClick}>Tasks</button>
+                {this.state.open && <TaskList />}
+            </Fragment>
+        );
+    }
+}
+
+export default TaskListButton;
\ No newline at end of file
-- 
GitLab