Skip to content

Commit

Permalink
fix: Map api data to custom type compatible with EDS data grid.
Browse files Browse the repository at this point in the history
  • Loading branch information
mheggelund committed Feb 16, 2024
1 parent a07c9d3 commit d85839a
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 56 deletions.
32 changes: 16 additions & 16 deletions src/api/generated/models/GetVariogramResultsDto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ import type { CoordinateDto } from './CoordinateDto';
import type { GetVariogramResultsVariogramResultFileDto } from './GetVariogramResultsVariogramResultFileDto';

export type GetVariogramResultsDto = {
computeCaseId: string;
variogramResultId: string;
identifier: number;
variogramResultFiles: Array<GetVariogramResultsVariogramResultFileDto>;
rmajor: number;
rminor: number;
azimuth: number;
rvertical: number;
sigma: number;
quality: number;
family?: string | null;
archelFilter?: string | null;
indicator?: string | null;
attribute?: string | null;
box: Array<CoordinateDto>;
computeCaseId: string;
variogramResultId: string;
identifier: number;
variogramResultFiles: Array<GetVariogramResultsVariogramResultFileDto>;
rmajor: number;
rminor: number;
azimuth: number;
rvertical: number;
sigma: number;
quality: number;
family?: string;
archelFilter?: string;
indicator?: string;
customIndicator?: string;
attribute?: string;
box: Array<CoordinateDto>;
};

Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ export const Table = styled.div`
> div {
> table {
min-width: 1050px !important;
min-width: 1150px;
}
> div {
margin-top: 2rem;
min-width: 1050px !important;
min-width: 1150px;
}
@media (max-width: 1500px) {
@media (max-width: 1750px) {
> table {
min-width: 100% !important;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ import { GetVariogramResultsDto } from '../../../../../../api/generated';
import { useFetchCases } from '../../../../../../hooks/useFetchCases';
import * as Styled from './VariogramResultTable.styled';

interface ResultObjectType {
method: string;
parameter: string;
archelFilter: string;
modelArea: string;
variogramModel: string;
quality: string | number;
}

const NumberOfDecimals = 3;

export const VariogramResultTable = ({
Expand All @@ -12,77 +21,81 @@ export const VariogramResultTable = ({
resultList: GetVariogramResultsDto[];
}) => {
const caseList = useFetchCases();
const roundResultString = (value?: number) => {
const roundResultString = (value: number) => {
if (value) {
return value.toFixed(NumberOfDecimals);
}
} else return value;
};

const resultElementsList: ResultObjectType[] = resultList.map((e) => {
const method = caseList.data?.data.filter(
(c) => c.computeCaseId === e.computeCaseId,
)[0].computeMethod.name;
let parameter = '';
if (method === 'Indicator') {
parameter = e.indicator ? e.indicator : '';
} else if (method === 'Net-To-Gross') {
parameter = e.customIndicator ? e.customIndicator : '';
} else if (method === 'ContiniousParameter') {
parameter = e.attribute ? e.attribute : '';
}

const modelArea = caseList.data?.data.filter(
(c) => c.computeCaseId === e.computeCaseId,
)[0].modelArea.name;

const element: ResultObjectType = {
method: method ? method : '',
parameter: parameter,
archelFilter: e.archelFilter ? e.archelFilter : '',
modelArea: modelArea ? modelArea : '',
variogramModel: e.family ? e.family : '',
quality: roundResultString(e.quality)
? roundResultString(e.quality)
: e.quality,
};
return element;
});

return (
<Styled.Table>
<EdsDataGrid
enableSorting
enablePagination
enableColumnFiltering
emptyMessage="Empty
:("
emptyMessage="No results to show"
columnResizeMode="onChange"
rows={resultList}
rows={resultElementsList}
pageSize={50}
columns={[
{
accessorKey: 'method',
id: 'method',
header: 'Compute method',
cell: ({ row }) => (
<div>
{
caseList.data?.data.filter(
(c) => c.computeCaseId === row.original.computeCaseId,
)[0].computeMethod.name
}
</div>
),
id: 'method',
},
{
accessorKey: 'attribute',
accessorKey: 'parameter',
header: 'Parameter',
id: 'attribute',
id: 'parameter',
},
{
accessorKey: 'archelFilter',
header: 'Archel Filter',
id: 'archelFilter',
enableColumnFilter: false,
},
{
accessorKey: 'modelArea',
header: 'Model area',
header: 'Archel Filter',
id: 'modelArea',
cell: ({ row }) => (
<div>
{
caseList.data?.data.filter(
(c) => c.computeCaseId === row.original.computeCaseId,
)[0].modelArea.name
}
</div>
),
},
{
accessorKey: 'family',
accessorKey: 'variogramModel',
header: 'Variogram model',
id: 'family',
enableColumnFilter: false,
id: 'variogramModel',
},
{
accessorKey: 'quality',
header: 'Quailty factor',
header: 'Variogram model',
id: 'quality',
enableColumnFilter: false,
cell: ({ row }) => (
<div>{roundResultString(row.original.quality)}</div>
),
},
]}
/>
Expand Down

0 comments on commit d85839a

Please sign in to comment.