import React, { Component } from "react"; import moment from "moment"; import JSONTreeOriginal from "react-json-tree"; import { Tag, Drawer, Button, Table, Spin } from "antd"; import { ZoomInOutlined } from '@ant-design/icons'; import { LogItem } from "@chirpstack/chirpstack-api-grpc-web/api/internal_pb"; interface IProps { logs: LogItem[]; } interface IState { drawerOpen: boolean; body: any; }; class LogTable extends Component { constructor(props: IProps) { super(props); this.state = { drawerOpen: false, body: null, }; } onDrawerClose = () => { this.setState({ drawerOpen: false, }); } onDrawerOpen = (body: any) => { return () => { this.setState({ body: body, drawerOpen: true, }); }; } render() { let items = this.props.logs.map((l, i) => l.toObject()); let body = JSON.parse(this.state.body); const theme = { scheme: 'google', author: 'seth wright (http://sethawright.com)', base00: '#000000', base01: '#282a2e', base02: '#373b41', base03: '#969896', base04: '#b4b7b4', base05: '#c5c8c6', base06: '#e0e0e0', base07: '#ffffff', base08: '#CC342B', base09: '#F96A38', base0A: '#FBA922', base0B: '#198844', base0C: '#3971ED', base0D: '#3971ED', base0E: '#A36AC7', base0F: '#3971ED', }; return(
{return true}} /> {items.length !== 0 &&
} { let ts = new Date(0); ts.setUTCSeconds(obj.time!.seconds); return moment(ts).format("YYYY-MM-DD HH:mm:ss"); }, }, { title: "Type", dataIndex: "description", key: "description", width: 200, render: (text, obj) => , }, { title: "Properties", dataIndex: "properties", key: "properties", render: (text, obj) => obj.propertiesMap.map((p, i) => { if (p[1] !== "") { return
{p[0]}: {p[1]}
} return null; }), }, ]} /> ); } } export default LogTable;