From 0ea341128963a8f7d61cabc191c13041d5fab9ee Mon Sep 17 00:00:00 2001
From: Joni Laukka <joni.laukka.overflow@gmail.com>
Date: Mon, 15 Jul 2019 15:45:41 +0300
Subject: [PATCH] Playerlist promotion wip

---
 src/components/PlayerlistFaction.js    |  9 ++++---
 src/components/PlayerlistPlayerCard.js | 35 ++++++++++++++++++++++++++
 src/components/PlayerlistView.js       |  8 +++++-
 3 files changed, 48 insertions(+), 4 deletions(-)
 create mode 100644 src/components/PlayerlistPlayerCard.js

diff --git a/src/components/PlayerlistFaction.js b/src/components/PlayerlistFaction.js
index 13638fd..1d12d6a 100644
--- a/src/components/PlayerlistFaction.js
+++ b/src/components/PlayerlistFaction.js
@@ -1,4 +1,5 @@
 import React from "react";
+import PlayerlistPlayerCard from "./PlayerlistPlayerCard";
 
 export default class PlayerlistFaction extends React.Component {
   state = {
@@ -26,9 +27,11 @@ export default class PlayerlistFaction extends React.Component {
 
     let members = this.state.factionMembers.map(member => {
       return (
-        <div key={member.gamepersonId}>
-          {member.person.name} : {member.role}
-        </div>
+        <PlayerlistPlayerCard
+          key={member.gamepersonId}
+          player={member}
+          role={this.props.role}
+        />
       );
     });
 
diff --git a/src/components/PlayerlistPlayerCard.js b/src/components/PlayerlistPlayerCard.js
new file mode 100644
index 0000000..c29944e
--- /dev/null
+++ b/src/components/PlayerlistPlayerCard.js
@@ -0,0 +1,35 @@
+import React, { Fragment } from "react";
+
+export default class PlayerlistPlayerCard extends React.Component {
+  state = {
+    edit: false
+  };
+
+  render() {
+    console.log(this.props.player);
+    return (
+      <div>
+        {this.props.player.person.name} :{" "}
+        {this.state.edit && (
+          <select>
+            <option value="soldier">Soldier</option>
+            <option value="factionleader">Faction Leader</option>
+            <option value="admin">Admin</option>
+          </select>
+        )}
+        {!this.state.edit && this.props.player.role}
+        {this.props.role === "admin" && !this.state.edit && (
+          <button onClick={() => this.setState({ edit: !this.state.edit })}>
+            Edit
+          </button>
+        )}
+        {this.state.edit && (
+          <Fragment>
+            <button>Save</button>
+            <button>Cancel</button>
+          </Fragment>
+        )}
+      </div>
+    );
+  }
+}
diff --git a/src/components/PlayerlistView.js b/src/components/PlayerlistView.js
index 3c98fdd..e6014ad 100644
--- a/src/components/PlayerlistView.js
+++ b/src/components/PlayerlistView.js
@@ -46,7 +46,13 @@ export default class PlayerlistView extends React.Component {
     }
 
     let factionlistItems = this.state.factions.map(faction => {
-      return <PlayerlistFaction faction={faction} />;
+      return (
+        <PlayerlistFaction
+          key={faction.factionId}
+          faction={faction}
+          role={this.props.role}
+        />
+      );
     });
 
     return <div className="fade-main">{factionlistItems}</div>;
-- 
GitLab