Guest User

Untitled

a guest
Apr 13th, 2019
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.69 KB | None | 0 0
  1. import React, { Component } from "react";
  2. import { Link } from "react-router-dom";
  3. import BootstrapTable from "react-bootstrap-table-next";
  4. import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
  5. import paginationFactory from "react-bootstrap-table2-paginator";
  6.  
  7. const columns = [
  8. {
  9. dataField: "user",
  10. text: "USER",
  11. headerClasses: "table-header-column",
  12. classes: "data-col dt-user"
  13. },
  14. {
  15. dataField: "email",
  16. text: "EMAIL",
  17. classes: "data-col dt-email email-column",
  18. headerClasses: "table-header-column email-column"
  19. },
  20. {
  21. dataField: "status",
  22. text: "VERIFIED STATUS",
  23. classes: "data-col dt-email",
  24. headerClasses: "table-header-column ",
  25. align: "left"
  26. },
  27. {
  28. dataField: "last_login",
  29. text: "LAST LOGIN",
  30. classes: "data-col dt-login",
  31. headerClasses: "table-header-column dt-login"
  32. },
  33. {
  34. dataField: "active",
  35. classes: "data-col dt-status",
  36. headerClasses: "table-header-column"
  37. },
  38. {
  39. dataField: "menu",
  40. classes: "data-col text-right",
  41. headerClasses: "table-header-column"
  42. }
  43. ];
  44.  
  45. const userData = [
  46. {
  47. user: { name: "Abu Bin Ishtiyak", id: "UD102001" },
  48. email: "info@softnio.com",
  49. verified: {
  50. email: 0,
  51. kyc: 1
  52. },
  53. last_login: "2018-08-24 10:20 PM",
  54. status: "active"
  55. },
  56. {
  57. user: { name: "Helena Walz", id: "UD102005" },
  58. email: "info@shericedigangi.com",
  59. verified: {
  60. email: 1,
  61. kyc: 0
  62. },
  63. last_login: "2018-08-24 09:20 AM",
  64. status: "active"
  65. },
  66. {
  67. user: { name: "Sherice Digangi", id: "UD102023" },
  68. email: "info@shericedigangi.com",
  69. verified: {
  70. email: 1,
  71. kyc: 1
  72. },
  73. last_login: "2018-08-11 12:20 PM",
  74. status: "suspended"
  75. },
  76. {
  77. user: { name: "Darren Square", id: "UD102028" },
  78. email: "info@darrensq.com",
  79. verified: {
  80. email: 1,
  81. kyc: 0
  82. },
  83. last_login: "2018-11-15 05:20 AM",
  84. status: "active"
  85. },
  86. {
  87. user: { name: "Darren Square", id: "UD102028" },
  88. email: "info@darrensq.com",
  89. verified: {
  90. email: 1,
  91. kyc: 0
  92. },
  93. last_login: "2018-11-15 05:20 AM",
  94. status: "active"
  95. },
  96. {
  97. user: { name: "Darren Square", id: "UD102028" },
  98. email: "info@darrensq.com",
  99. verified: {
  100. email: 1,
  101. kyc: 0
  102. },
  103. last_login: "2018-11-15 05:20 AM",
  104. status: "active"
  105. },
  106. {
  107. user: { name: "Darren Square", id: "UD102028" },
  108. email: "info@darrensq.com",
  109. verified: {
  110. email: 1,
  111. kyc: 0
  112. },
  113. last_login: "2018-11-15 05:20 AM",
  114. status: "active"
  115. }
  116. ];
  117.  
  118. class UserList extends Component {
  119. constructor(props) {
  120. super(props);
  121.  
  122. this.state = {
  123. userData: [],
  124. isMenu: false
  125. };
  126. }
  127.  
  128. componentDidMount() {
  129. this.setState(
  130. {
  131. userData
  132. },
  133. () => {
  134. this.getRows();
  135. }
  136. );
  137. }
  138.  
  139. openMenu = () => {
  140. this.setState({
  141. isMenu: true
  142. });
  143. };
  144.  
  145. getRows = () => {
  146. let rows = [];
  147. this.state.userData.map((item, id) => {
  148. rows.push({
  149. user: (
  150. <React.Fragment>
  151. <span className="lead">{item.user.name}</span>
  152. <span className="sub user-id">{item.user.id}</span>
  153. </React.Fragment>
  154. ),
  155. email: <span className="sub sub-s2 sub-email">{item.email}</span>,
  156. status: (
  157. <ul className="data-vr-list">
  158. <li>
  159. {item.verified.email === 1 ? (
  160. <div className="data-state data-state-sm data-state-approved" />
  161. ) : (
  162. <div className="data-state data-state-sm data-state-pending" />
  163. )}
  164. Email
  165. </li>
  166. <li>
  167. {item.verified.email === 1 ? (
  168. <div className="data-state data-state-sm data-state-approved" />
  169. ) : (
  170. <div className="data-state data-state-sm data-state-pending" />
  171. )}
  172. KYC
  173. </li>
  174. </ul>
  175. ),
  176. last_login: (
  177. <span className="sub sub-s2 sub-time">{item.last_login}</span>
  178. ),
  179. active:
  180. item.status === "active" ? (
  181. <span className="dt-status-md badge badge-outline badge-success badge-md">
  182. Active
  183. </span>
  184. ) : item.status === "suspended" ? (
  185. <span className="badge badge-outline badge-md badge-danger">
  186. Suspended
  187. </span>
  188. ) : (
  189. <span className="badge badge-outline badge-md badge-warning">
  190. Pending
  191. </span>
  192. ),
  193. menu: (
  194. <div className="relative d-inline-block">
  195. {/* <button onClick={this.openMenu} /> */}
  196. <button
  197. className="btn btn-light-alt btn-xs btn-icon"
  198. onClick={this.openMenu}
  199. >
  200. <span className="ti ti-more-alt" />
  201. </button>
  202. </div>
  203. )
  204. });
  205. });
  206.  
  207. this.setState({ data: rows });
  208. };
  209.  
  210. render() {
  211. console.log(this.state.isMenu);
  212. const customTotal = (from, to, size) => (
  213. <span className="react-bootstrap-table-pagination-total">
  214. {from}-{to} of {size}
  215. </span>
  216. );
  217.  
  218. const options = {
  219. sizePerPage: 5,
  220. hideSizePerPage: true,
  221. hidePageListOnlyOnePage: true,
  222. nextPageText: "NEXT",
  223.  
  224. prePageText: "PREV",
  225. showTotal: true,
  226. paginationTotalRenderer: customTotal
  227. };
  228.  
  229. const rowClasses = (row, rowIndex) => {
  230. let classes = null;
  231.  
  232. if (rowIndex % 2 == 0) {
  233. classes = "data-item odd";
  234. } else classes = "data-item even";
  235.  
  236. return classes;
  237. };
  238. // this.addProducts(5);
  239. return (
  240. <div className="page-content">
  241. <div className="container">
  242. <div className="card content-area">
  243. <div className="card-innr">
  244. <div className="card-head">
  245. <h4 className="card-title">User List</h4>
  246. </div>
  247. <div>
  248. {this.state.data && this.state.data.length > 0 && (
  249. <BootstrapTable
  250. classes="data-table dt-init user-list"
  251. rowClasses={rowClasses}
  252. keyField="user"
  253. pagination={paginationFactory(options)}
  254. data={this.state.data}
  255. columns={columns}
  256. bordered={false}
  257. />
  258. )}
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. </div>
  264. );
  265. }
  266. }
  267.  
  268. export default UserList;
Add Comment
Please, Sign In to add comment