|
| 1 | +const testimonials = [ |
| 2 | + { |
| 3 | + author: { |
| 4 | + name: 'Gabriel Moore', |
| 5 | + image: 'author-01.jpg', |
| 6 | + }, |
| 7 | + text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Maiores, repellendus? Impedit mollitia nesciunt itaque optio incidunt enim quae, molestiae, accusamus ratione illum eum sapiente tempore fugiat quam, expedita vel perferendis!', |
| 8 | + date: '23rd May', |
| 9 | + }, |
| 10 | + { |
| 11 | + author: { |
| 12 | + name: 'Billy Bailey', |
| 13 | + image: 'author-02.jpg', |
| 14 | + }, |
| 15 | + text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Maiores, repellendus? Impedit mollitia nesciunt itaque optio incidunt enim quae, molestiae, accusamus ratione illum eum sapiente tempore fugiat quam, expedita vel perferendis!', |
| 16 | + date: '25th May', |
| 17 | + }, |
| 18 | + { |
| 19 | + author: { |
| 20 | + name: 'Jackie Oliver', |
| 21 | + image: 'author-03.jpg', |
| 22 | + }, |
| 23 | + text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Maiores, repellendus? Impedit mollitia nesciunt itaque optio incidunt enim quae, molestiae, accusamus ratione illum eum sapiente tempore fugiat quam, expedita vel perferendis!', |
| 24 | + date: '02nd June', |
| 25 | + }, |
| 26 | + { |
| 27 | + author: { |
| 28 | + name: 'Pauline Carter', |
| 29 | + image: 'author-04.jpg', |
| 30 | + }, |
| 31 | + text: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Maiores, repellendus? Impedit mollitia nesciunt itaque optio incidunt enim quae, molestiae, accusamus ratione illum eum sapiente tempore fugiat quam, expedita vel perferendis!', |
| 32 | + date: '09th June', |
| 33 | + }, |
| 34 | +]; |
| 35 | + |
| 36 | +const makeTestimonialCard = testimonial => { |
| 37 | + return `<div class="testimonial-card"> |
| 38 | + <img src="${testimonial.author.image}"> |
| 39 | + <h2>${testimonial.author.name} </h2> |
| 40 | + <p>${testimonial.text}</p> |
| 41 | + <date>Written on ${testimonial.date}</date> |
| 42 | + </div>` |
| 43 | +}; |
| 44 | + |
| 45 | +let currentTestimonial = 0; |
| 46 | + |
| 47 | +const nextTestimonial = () => { |
| 48 | + if (currentTestimonial < testimonials.length - 1) { |
| 49 | + currentTestimonial += 1; |
| 50 | + updatePage(); |
| 51 | + } |
| 52 | +} |
| 53 | +const prevTestimonial = () => { |
| 54 | + if (currentTestimonial > 0) { |
| 55 | + currentTestimonial -= 1; |
| 56 | + updatePage(); |
| 57 | + } |
| 58 | +} |
| 59 | + |
| 60 | +const updatePage = () => { |
| 61 | + let markup = makeTestimonialCard(testimonials[currentTestimonial]); |
| 62 | + |
| 63 | + if (testimonials.length > 1) { |
| 64 | + markup += `<nav> |
| 65 | + <button onclick="prevTestimonial()">Previous</button> |
| 66 | + <button onclick="nextTestimonial()">Next</button> |
| 67 | + </nav>` |
| 68 | + } |
| 69 | + |
| 70 | + const container = document.getElementById('testimonials-container'); |
| 71 | + |
| 72 | + container.innerHTML = markup; |
| 73 | +} |
| 74 | + |
| 75 | +updatePage(); |
| 76 | + |
| 77 | + |
0 commit comments