Skip to content

Commit

Permalink
Task 3 done
Browse files Browse the repository at this point in the history
  • Loading branch information
OlgaBilynska committed May 30, 2023
1 parent c10605e commit 14049bc
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions src/js/03-feedback.js
Original file line number Diff line number Diff line change
@@ -1 +1,52 @@
import throttle from "lodash.throttle";

const STORAGE_KEY = 'feedback-form-state';

const formData = {};
if (STORAGE_KEY) {
const parsedData = JSON.parse(localStorage.getItem(STORAGE_KEY));
formData.email = parsedData.email;
formData.message = parsedData.message;
}

const formEl = document.querySelector('.feedback-form');
const inputEl = document.querySelector('input[name="email"]');
const messageEl = document.querySelector('textarea[name="message"]');

formEl.addEventListener('submit', onFormSubmit);
formEl.addEventListener('input', throttle(onFormInput, 500));

useLocalStorage();

function onFormInput(event) {
formData[event.target.name] = event.target.value;
localStorage.setItem(STORAGE_KEY, JSON.stringify(formData));
}

function onFormSubmit(e) {
e.preventDefault();
if (inputEl.value.trim() === '' || messageEl.value.trim() === '') {
alert('Fill out all the fields of the form!');
} else {
e.currentTarget.reset();
localStorage.removeItem(STORAGE_KEY);
formData.email = '';
formData.message = '';
}
}

function useLocalStorage() {
const savedData = localStorage.getItem(STORAGE_KEY);

if (savedData) {
console.log(savedData);
const parsedData = JSON.parse(savedData);

if (parsedData.email) {
inputEl.value = parsedData.email;
}
if (parsedData.message) {
messageEl.value = parsedData.message;
}
}
}

0 comments on commit 14049bc

Please sign in to comment.