70 lines
1.4 KiB
JavaScript
70 lines
1.4 KiB
JavaScript
import { Component } from 'react'
|
|
import { DataGrid } from '@mui/x-data-grid'
|
|
import { Link } from '@mui/material'
|
|
|
|
export default class Table extends Component {
|
|
constructor ({ scanResults }) {
|
|
super()
|
|
this.scanResults = scanResults.map(row => ({
|
|
...row,
|
|
id: row._id
|
|
}))
|
|
this.columns = [
|
|
{
|
|
field: 'name',
|
|
headerName: 'Name',
|
|
flex: 2,
|
|
renderCell: (cellValues) => {
|
|
return (
|
|
<Link
|
|
target='_blank'
|
|
href={cellValues.row.url}
|
|
rel='noreferrer'
|
|
>
|
|
{cellValues.row.fullName}
|
|
</Link>
|
|
)
|
|
}
|
|
},
|
|
{
|
|
field: 'partsPrice',
|
|
headerName: 'Parts Price',
|
|
flex: 1
|
|
},
|
|
{
|
|
field: 'setPrice',
|
|
headerName: 'Set Price',
|
|
flex: 1
|
|
},
|
|
{
|
|
field: 'difference',
|
|
headerName: 'Difference',
|
|
flex: 1
|
|
}
|
|
]
|
|
}
|
|
|
|
static getInitialProps () {
|
|
return {
|
|
props: { scanResults: [] }
|
|
}
|
|
}
|
|
|
|
render () {
|
|
return (
|
|
<div style={{ height: '90vh', width: '100%' }}>
|
|
<DataGrid
|
|
rows={this.scanResults}
|
|
columns={this.columns}
|
|
autoPageSize
|
|
initialState={{
|
|
sorting: {
|
|
sortModel: [{ field: 'difference', sort: 'desc' }]
|
|
}
|
|
}}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
}
|