blob: a28225c49c8f24e2832fea88f94f2f2f227d8e1c [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, { Component } from "react";
import axios from "axios";
import { parseString } from "xml2js";
import styled from "styled-components";
import teamData from "src/resources/data/team.json";
const TeamListStyle = styled.div`
width: 100%;
overflow: auto;
> table {
font-family: "Inconsolata", monospace;
font-size: 14px;
display: inline-table;
table-layout: auto;
color: #13161f;
width: 98%;
padding: 0;
box-shadow: 0 0 0 1px #529d8b;
background-color: transparent;
border-spacing: 0;
border-collapse: collapse;
border-style: hidden;
border-radius: 2px;
overflow-y: hidden;
overflow-x: initial;
margin: 5px 10px;
}
> table tr {
display: table-row;
vertical-align: inherit;
border-color: inherit;
}
> table tr > td {
padding: 10px;
line-height: 2;
font-weight: 200;
white-space: pre;
}
> table > thead {
color: #7d899c;
background: #f5f6f7;
}
> table > tbody tr {
display: table-row;
border-top: 1px solid #529d8b;
}
> table > thead > tr > th {
font-weight: 400;
padding: 10px;
text-align: left;
}
`;
export default class TeamList extends Component {
constructor(props) {
super(props);
this.state = {
displayData: teamData || [],
isLoading: false
};
}
render() {
const { displayData, isLoading } = this.state;
return (
<TeamListStyle>
<table>
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Organization</th>
<th>Roles</th>
<th>Time Zone</th>
</tr>
</thead>
<tbody>
{isLoading ? (
<tr>
<td colSpan="6">loading...</td>
</tr>
) : displayData.length === 0 ? (
"Not found"
) : (
displayData.map((data, i) => {
return (
<tr key={data.id.toString()}>
<td>{data.id.toString()}</td>
<td>{data.name.toString()}</td>
<td>{data.email.toString()}</td>
<td>{data.organization.toString()}</td>
<td>{data.roles.map(r => r.role.toString())}</td>
<td>{data.timezone.toString()}</td>
</tr>
);
})
)}
</tbody>
</table>
</TeamListStyle>
);
}
}