miniBarChart.stories.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import React from 'react';
  2. import MiniBarChart from 'app/components/charts/miniBarChart';
  3. import theme from 'app/utils/theme';
  4. export default {
  5. title: 'DataVisualization/Charts/MiniBarChart',
  6. };
  7. export const _MiniBarChart = () => {
  8. const startTime = 1601992800;
  9. const interval = 3600;
  10. const all = [
  11. 0,
  12. 1,
  13. 2,
  14. 4,
  15. 9,
  16. 6,
  17. 17,
  18. 6,
  19. 25,
  20. 8,
  21. 23,
  22. 28,
  23. 19,
  24. 17,
  25. 17,
  26. 29,
  27. 11,
  28. 20,
  29. 15,
  30. 12,
  31. 19,
  32. 13,
  33. 1,
  34. 4,
  35. 0,
  36. ];
  37. const current = [
  38. 0,
  39. 0,
  40. 0,
  41. 0,
  42. 0,
  43. 0,
  44. 0,
  45. 0,
  46. 0,
  47. 0,
  48. 0,
  49. 0,
  50. 0,
  51. 0,
  52. 0,
  53. 0,
  54. 0,
  55. 0,
  56. 0,
  57. 0,
  58. 5,
  59. 4,
  60. 0,
  61. 2,
  62. 0,
  63. ];
  64. return (
  65. <React.Fragment>
  66. <div className="section">
  67. <h2>Stacked MiniBarChart</h2>
  68. <h3>With markers as per issue details</h3>
  69. <MiniBarChart
  70. width={294}
  71. height={70}
  72. isGroupedByDate
  73. showTimeInTooltip
  74. series={[
  75. {
  76. seriesName: 'All environments',
  77. data: all.map((value, i) => ({
  78. name: (startTime + interval * i) * 1000,
  79. value,
  80. })),
  81. },
  82. {
  83. seriesName: 'Release abc123',
  84. data: current.map((value, i) => ({
  85. name: (startTime + interval * i) * 1000,
  86. value,
  87. })),
  88. },
  89. ]}
  90. markers={[
  91. {
  92. barGap: '-100%',
  93. name: 'First Seen',
  94. value: (startTime + interval) * 1000,
  95. color: theme.pink300,
  96. },
  97. {
  98. name: 'Last Seen',
  99. value: (startTime + interval * 23) * 1000,
  100. color: theme.green300,
  101. },
  102. ]}
  103. />
  104. </div>
  105. <div className="section">
  106. <h3>No markers and emphasis colors</h3>
  107. <MiniBarChart
  108. width={160}
  109. height={24}
  110. isGroupedByDate
  111. showTimeInTooltip
  112. emphasisColors={[theme.purple300]}
  113. series={[
  114. {
  115. seriesName: 'Events',
  116. data: all.map((value, i) => ({
  117. name: (startTime + interval * i) * 1000,
  118. value,
  119. })),
  120. },
  121. ]}
  122. />
  123. </div>
  124. <div className="section">
  125. <h3>With yAxis labels and stacked results</h3>
  126. <MiniBarChart
  127. height={150}
  128. labelYAxisExtents
  129. isGroupedByDate
  130. showTimeInTooltip
  131. stacked
  132. series={[
  133. {
  134. seriesName: 'Accepted',
  135. data: all.map((value, i) => ({
  136. name: (startTime + interval * i) * 1000,
  137. value,
  138. })),
  139. },
  140. {
  141. seriesName: 'Rejected',
  142. data: current.map((value, i) => ({
  143. name: (startTime + interval * i) * 1000,
  144. value,
  145. })),
  146. },
  147. ]}
  148. />
  149. </div>
  150. </React.Fragment>
  151. );
  152. };
  153. _MiniBarChart.storyName = 'MiniBarChart';