|
| 1 | +import React, { Component } from "react"; |
| 2 | +import "./App.css"; |
| 3 | + |
| 4 | +import Ticket from "./components/Ticket"; |
| 5 | +import Ball from "./components/Ball"; |
| 6 | +import Input from "./components/Input"; |
| 7 | + |
| 8 | +const ticket1 = { |
| 9 | + values: [ |
| 10 | + [5, 16, 42, 49, 65], |
| 11 | + [7, 23, 44, 46, 72], |
| 12 | + [11, 26, 43, 50, 64], |
| 13 | + [14, 29, 35, 48, 66], |
| 14 | + [6, 24, 41, 60, 69] |
| 15 | + ], |
| 16 | + number: "0642953" |
| 17 | +}; |
| 18 | + |
| 19 | +const ticket2 = { |
| 20 | + values: [ |
| 21 | + [7, 27, 39, 51, 66], |
| 22 | + [11, 20, 33, 49, 68], |
| 23 | + [8, 18, 45, 57, 75], |
| 24 | + [13, 21, 36, 53, 65], |
| 25 | + [10, 30, 37, 52, 72] |
| 26 | + ], |
| 27 | + number: "0657387" |
| 28 | +}; |
| 29 | + |
| 30 | +class App extends Component { |
| 31 | + state = { |
| 32 | + rolledValues: [], |
| 33 | + value: "" |
| 34 | + }; |
| 35 | + |
| 36 | + crossOutNumber = number => { |
| 37 | + console.log("Entered", number); |
| 38 | + }; |
| 39 | + |
| 40 | + handleEnteredNumber = e => { |
| 41 | + const inputValue = e.target.value; |
| 42 | + const regexDigits = /\D/; |
| 43 | + const regexTwoDigits = /(^[\d]{2})[\d]/; |
| 44 | + const value = inputValue |
| 45 | + .replace(regexDigits, "") |
| 46 | + .replace(regexTwoDigits, "$1"); |
| 47 | + this.setState({ value }); |
| 48 | + }; |
| 49 | + |
| 50 | + handleEnteredNumberCrossout = e => { |
| 51 | + e.preventDefault(); |
| 52 | + const value = this.state.value; |
| 53 | + this.crossOutNumber(value); |
| 54 | + if ( |
| 55 | + value.length >= 1 && |
| 56 | + value >= 1 && |
| 57 | + value <= 75 && |
| 58 | + !this.state.rolledValues.includes(value) |
| 59 | + ) { |
| 60 | + this.state.rolledValues.push(this.state.value); |
| 61 | + } |
| 62 | + this.setState({ value: "" }); |
| 63 | + }; |
| 64 | + |
| 65 | + render() { |
| 66 | + const { rolledValues } = this.state; |
| 67 | + return ( |
| 68 | + <div className="App"> |
| 69 | + <div className="App__tickets"> |
| 70 | + <Ticket rolledValues={this.state.rolledValues} {...ticket1} /> |
| 71 | + <Ticket rolledValues={this.state.rolledValues} {...ticket2} /> |
| 72 | + </div> |
| 73 | + <div |
| 74 | + style={ |
| 75 | + { |
| 76 | + // position: "fixed", |
| 77 | + // width: "100%", |
| 78 | + // bottom: 0 |
| 79 | + } |
| 80 | + } |
| 81 | + > |
| 82 | + <div className="App__header"> |
| 83 | + <form onSubmit={this.handleEnteredNumberCrossout}> |
| 84 | + <label htmlFor="ticketNumber">Įveskite skaičių: </label> |
| 85 | + <Input |
| 86 | + id="ticketNumber" |
| 87 | + value={this.state.value} |
| 88 | + onChange={this.handleEnteredNumber} |
| 89 | + /> |
| 90 | + </form> |
| 91 | + </div> |
| 92 | + <div className="App__rolled-balls-bar"> |
| 93 | + {rolledValues.length ? ( |
| 94 | + rolledValues.map((value, index) => ( |
| 95 | + <Ball key={index} value={value} /> |
| 96 | + )) |
| 97 | + ) : ( |
| 98 | + <div>Nėra išridentų kamuoliukų</div> |
| 99 | + )} |
| 100 | + </div> |
| 101 | + </div> |
| 102 | + </div> |
| 103 | + ); |
| 104 | + } |
| 105 | +} |
| 106 | + |
| 107 | +export default App; |
0 commit comments