import React from 'react'; import { MetricRunInfoDeltaType } from '@bundle-stats/utils'; import { getWrapperDecorator } from '../../stories'; import { MetricsTable } from '.'; const RUNS = [ { internalBuildNumber: 2, label: 'Job #2', }, { internalBuildNumber: 1, label: Job #1, }, ]; const ITEMS_SINGLE_RUN = [ { key: 'webpack.assets.totalSizeByTypeALL', label: 'Total Size', biggerIsBetter: false, changed: false, runs: [ { value: 873421, displayValue: '852.95KB', }, ], }, { key: 'lighthouse.timeToFirstByte', label: 'Time To First Byte', biggerIsBetter: false, changed: false, runs: [ { value: 1231, displayValue: '1.231s', }, ], }, { key: 'lighthouse.score', label: 'Score', biggerIsBetter: true, changed: false, runs: [ { value: 80, displayValue: '80', }, ], }, { key: 'webpack.assets.totalSizeByTypeJS', label: 'JS', biggerIsBetter: false, changed: false, runs: [ { value: 344232, displayValue: '336.16KB', }, ], }, { key: 'lighthouse.domSize', label: 'DOM Size', biggerIsBetter: false, changed: false, runs: [ { value: 80, displayValue: '80', }, ], }, ]; const ITEMS_MULTIPLE_RUNS = [ { key: 'webpack.assets.totalSizeByTypeALL', label: 'Total Size', biggerIsBetter: false, changed: true, runs: [ { value: 873421, displayValue: '852.95KB', delta: 751090, displayDelta: '+700KB', deltaPercentage: 613.98, displayDeltaPercentage: '+613.98%', deltaType: 'HIGH_NEGATIVE' as MetricRunInfoDeltaType, }, { value: 122331, displayValue: '119.46KB', }, ], }, { key: 'lighthouse.timeToFirstByte', label: 'Time To First Byte', biggerIsBetter: false, changed: true, runs: [ { value: 1000, displayValue: '1s', delta: 20, displayDelta: '+20ms', deltaPercentage: 2.0408163, displayDeltaPercentage: '+2.04%', deltaType: 'LOW_NEGATIVE' as MetricRunInfoDeltaType, }, { value: 980, displayValue: '980ms', }, ], }, { key: 'lighthouse.score', label: 'Score', biggerIsBetter: true, changed: true, runs: [ { value: 80, displayValue: '80', delta: 10, displayDelta: '+10', deltaPercentage: 14.2857143, displayDeltaPercentage: '+14.29%', deltaType: 'POSITIVE' as MetricRunInfoDeltaType, }, { value: 70, displayValue: '70', }, ], }, { key: 'lighthouse.accessibilityScore', label: 'Accessibility score', biggerIsBetter: true, changed: true, runs: [ { value: 80, displayValue: '80', delta: 2, displayDelta: '+2', deltaPercentage: 2.5641026, displayDeltaPercentage: '+2.56%', deltaType: 'LOW_POSITIVE' as MetricRunInfoDeltaType, }, { value: 78, displayValue: '78', }, ], }, { key: 'webpack.assets.totalSizeByTypeJS', label: 'JS', biggerIsBetter: false, changed: true, runs: [ { value: 344232, displayValue: '336.16KB', delta: 344232, displayDelta: '+100%', deltaPercentage: 100, displayDeltaPercentage: '+100%', deltaType: 'HIGH_NEGATIVE' as MetricRunInfoDeltaType, }, null, ], }, { key: 'lighthouse.domSize', label: 'DOM Size', biggerIsBetter: false, changed: false, runs: [ { value: 80, displayValue: '80', delta: 0, displayDelta: '0', deltaPercentage: 0, displayDeltaPercentage: '0%', deltaType: 'NO_CHANGE' as MetricRunInfoDeltaType, }, { value: 80, displayValue: '80', }, ], }, ]; export default { title: 'Components/MetricsTable', component: MetricsTable, decorators: [getWrapperDecorator()], }; export const Default = () => ; export const MultipleRuns = () => ; export const WithHeaderSum = () => ( ); export const Empty = () => ;