shared.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import React, { FC } from "react";
  2. import * as classes from "./tables.module.css";
  3. import {
  4. redScale,
  5. blueScale,
  6. orangeScale,
  7. greenScale,
  8. yellowScale,
  9. grayScale,
  10. } from "../../utils";
  11. interface tableHeaderProps {
  12. //Change this name
  13. daysToMatchCurrentTemperature?: boolean;
  14. averageAccumulated?: boolean;
  15. mainColumnHeader?: string;
  16. }
  17. export const TableHeader: FC<tableHeaderProps> = ({
  18. daysToMatchCurrentTemperature = false,
  19. averageAccumulated = false,
  20. mainColumnHeader = "Temporada",
  21. }) => {
  22. return (
  23. <thead style={{ minHeight: "90px" }}>
  24. <th className={`${classes.cell} ${classes.dateCell}`}>
  25. {mainColumnHeader}
  26. </th>
  27. <td style={{ padding: "0" }} className={classes.cell}>
  28. <div className="d-block h-100">
  29. <div className="h-75">
  30. <div className="row">
  31. <td colSpan={100}>% Horas segun temperatura</td>
  32. </div>
  33. </div>
  34. <div className="h-25">
  35. <div className="row mx-0 h-100">
  36. <div
  37. className="col-4"
  38. style={{ backgroundColor: blueScale([])(1).css() }}
  39. >
  40. &lt;10&deg;
  41. </div>
  42. <div
  43. className="col-4"
  44. style={{ backgroundColor: orangeScale([])(1).css() }}
  45. >
  46. &gt;30&deg;
  47. </div>
  48. <div
  49. className="col-4"
  50. style={{
  51. backgroundColor: redScale([])(1).css(),
  52. color: "white",
  53. }}
  54. >
  55. &gt;33&deg;
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </td>
  61. <td
  62. className={classes.cell}
  63. style={{ backgroundColor: greenScale([])(1).css() }}
  64. >
  65. Grados días acumulados
  66. </td>
  67. {averageAccumulated && (
  68. <td className={classes.cell}>Grados dias promedio</td>
  69. )}
  70. {daysToMatchCurrentTemperature && (
  71. <td className={classes.cell}>Días para igualar temporada actual</td>
  72. )}
  73. <td
  74. className={classes.cell}
  75. style={{ backgroundColor: yellowScale([])(1).css() }}
  76. >
  77. Amplitud térmica
  78. </td>
  79. <td
  80. className={classes.cell}
  81. style={{ backgroundColor: grayScale([])(1).css() }}
  82. >
  83. Precipitaciones acumuladas [mm]
  84. </td>
  85. <td className={classes.cell}>Porcentaje de datos</td>
  86. </thead>
  87. );
  88. };
  89. export const TdGroup: FC = ({ children }) => {
  90. return (
  91. <td className={classes.tdGroup}>
  92. <table style={{ position: "relative" }}>
  93. <tr
  94. style={{
  95. display: "grid",
  96. gridTemplateRows: "100%",
  97. gridTemplateColumns: "repeat(3, 1fr)",
  98. position: "absolute",
  99. top: 0,
  100. left: 0,
  101. bottom: 0,
  102. right: 0,
  103. }}
  104. >
  105. {children}
  106. </tr>
  107. </table>
  108. </td>
  109. );
  110. };