Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. import React, { useState } from "react";
  2. import { render } from "react-dom";
  3. import Dropdown from "./components/Dropdown/Dropdown";
  4. import InlineDropdowns from "./components/InlineDropdowns/InlineDropdowns";
  5. import "./reset.css";
  6. import "./App.css";
  7.  
  8. function App() {
  9. const [selectedMonth, setSelectedMonth] = useState("");
  10. const [selectedYear, setSelectedYear] = useState("");
  11.  
  12.  
  13. const handleMonthChange = event => {
  14. const selectedValue = event.target.value;
  15. setSelectedMonth(selectedValue);
  16. };
  17.  
  18. const handleYearChange = event => {
  19. const selectedValue = event.target.value;
  20. setSelectedYear(selectedValue);
  21. };
  22.  
  23. function optionDisabler(value) {
  24. const currentDate = new Date();
  25. const currentMonth = currentDate.getMonth();
  26.  
  27. if (selectedYear && selectedYear === currentDate.getFullYear().toString()) {
  28. if (parseInt(value) > currentMonth) {
  29. return true;
  30. }
  31. }
  32.  
  33. return false;
  34. }
  35.  
  36. function getValidYears() {
  37. const startYear = 2014;
  38. const currentYear = new Date().getFullYear();
  39. const validYears = [];
  40.  
  41. for (var i = 0; i <= currentYear - startYear; i++) {
  42. validYears.push({ id: startYear + i, name: startYear + i });
  43. }
  44.  
  45. return validYears.reverse();
  46. }
  47.  
  48. const months = [
  49. { id: "01", name: "Jan" },
  50. { id: "02", name: "Feb" },
  51. { id: "03", name: "Mar" },
  52. { id: "04", name: "Apr" },
  53. { id: "05", name: "May" },
  54. { id: "06", name: "Jun" },
  55. { id: "07", name: "Jul" },
  56. { id: "08", name: "Aug" },
  57. { id: "09", name: "Sep" },
  58. { id: "10", name: "Oct" },
  59. { id: "11", name: "Nov" },
  60. { id: "12", name: "Dec" }
  61. ];
  62.  
  63. return (
  64. <>
  65. <aside>
  66. <h1 className="app__title">MyApp</h1>
  67.  
  68. <form>
  69. <InlineDropdowns label="Date">
  70. <Dropdown
  71. options={months}
  72. onChange={handleMonthChange}
  73. value={selectedMonth}
  74. optionDisabler={optionDisabler}
  75. />
  76.  
  77. <Dropdown
  78. options={getValidYears()}
  79. onChange={handleYearChange}
  80. value={selectedYear}
  81. />
  82. </InlineDropdowns>
  83. </form>
  84. </aside>
  85. <section>
  86. <h2 className="section__title">Placeholder</h2>
  87. </section>
  88. </>
  89. );
  90. }
  91.  
  92. render(<App />, document.getElementById("root"));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement