Advertisement
Guest User

app.ts

a guest
Dec 9th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. window.onloadstart = eventLoadStart;
  2. window.onloadend = eventOnLoad;
  3.  
  4. interface Person {
  5.   name: string;
  6.   password: string;
  7.   email: string;
  8. }
  9.  
  10. function eventLoadStart() {
  11.   if(localStorage.length == 0) {
  12.     const persons: Person[] = [];
  13.     localStorage.setItem('data', JSON.stringify(persons));
  14.   }
  15. }
  16.  
  17. function eventOnLoad() {
  18.   app();
  19. }
  20.  
  21. function app() {
  22.   const persons: Person[] = load();
  23.   const lista: HTMLElement = document.getElementById("lista");
  24.   lista.innerHTML = convertPersonsToHTML(persons);
  25. }
  26.  
  27. function load(): Person[] {
  28.   const data: string = localStorage.getItem('data');
  29.   return parsePersons(data);
  30. }
  31.  
  32. function pushLocal(person: Person) {
  33.   let persons: Person[] = parsePersons(localStorage.getItem('data'));
  34.   if(!persons) {
  35.     persons = [];
  36.   }
  37.   persons.push(person);
  38.   localStorage.setItem('data', JSON.stringify(persons));
  39. }
  40.  
  41. function parsePersons(json: string): Person[] {
  42.   let persons: Person[];
  43.   const data: any = JSON.parse(json);
  44.   persons = data as Person[];
  45.   return persons;
  46. }
  47.  
  48. function formReset() {
  49.   console.log('Reset!');
  50. }
  51.  
  52. function formSubmit() {
  53.   const formData: Person = {
  54.     name: (document.getElementById("name") as HTMLInputElement).value,
  55.     password: (document.getElementById("password") as HTMLInputElement).value,
  56.     email: (document.getElementById("email") as HTMLInputElement).value,
  57.   };
  58.   pushLocal(formData);
  59.   app();
  60. }
  61.  
  62. function seeMore() {
  63.   const email: string = "marcos@huck.com.ar";
  64.   const persons: Person[] = load();
  65.   const person: Person = persons.find(person => (person.email === email));
  66.   const details: HTMLElement = document.getElementById("detalles");
  67.   details.innerHTML = convertPersonToHTML(person);
  68. }
  69.  
  70. function convertPersonToHTML(person: Person): string {
  71.   let html: string = "<ul>";
  72.   for(let key in person) {
  73.     html += `<li>${key.toUpperCase()}: ${person[key]}</li>`;
  74.   }
  75.   html += "</ul>";
  76.   return html;
  77. }
  78.  
  79. function convertPersonsToHTML(persons: Person[]): string {
  80.   let html: string = "<ul>";
  81.   for(let item of persons) {
  82.     html += `<li>${item.name} <button onclick="seeMore()">Ver más</button></li>`;
  83.   }
  84.   html += "</ul>";
  85.   return html;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement