knowit / folk-webapp

3 stars 0 forks source link

Sortering av nivo charts med xScale.type: points #359

Closed mariehessen closed 1 year ago

mariehessen commented 1 year ago

Fikse sortering av nivo charts med xScale.type: points

På timer brukt per periode under oversikt på kundesiden er ikke x-aksen sortert som man kan se på bildet under. Det er grunnen til at grafene ser rar ut.

Uke: image

Måned: image

mariehessen commented 1 year ago

testdataen i dev har et litt rart oppsett, så denne settes på vent til vi kan sjekke med bedre data

henrikav commented 1 year ago

Status: Denne feilen finnes også i produksjon. Grunnen er tilsynelatende at det er feil rekkefølge på noen punkter i x-aksen.

larsgus commented 1 year ago

Problemet her er om vi har data som ser ut som dette:

const data = {
  type: 'LineChart',
  data: [
    {
      id: 'Customer B',
      data: [
        { x: '202303', y: 1 },
        { x: '202304', y: 2 },
      ],
    },
    {
      id: 'Customer A',
      data: [
        { x: '202301', y: 4 },
        { x: '202302', y: 9 },
        { x: '202303', y: 3 },
        { x: '202304', y: 8 },
        { x: '202305', y: 8 },
      ],
    },
  ],
}

Customer B blir lagt inn i grafen først, og 202303 og 202304 blir da registrert først. Når vi senere sender inn ukene til Customer A vil ikke grafen skjønne at verdiene 202301 og 202302 skal settes inn før de eksisterende verdiene på x-aksen fordi vi bruker type: point for xScale. Om vi skulle fått grafen til å skjønne at x er en tidsserie kunne vi bruke type:time. Et annet alternativ er å sørge for at alle kunder har alle uker.