Construire / Stilizare Front-end
1. Definirea scopului aplicației
Vom crea o aplicație web care va trimite mail-uri care conțin mesaje traduse în una sau mai multe limbi straine. De asemenea, aplicația va stoca mesajele inițiale și le va afișa într-o listă.
Mesajele sunt stocate într-o baza de date în Cloud gestionată de Google Cloud Platform, mesajele sunt traduse din back-end cu ajutorul serviciului Cloud Translation API, iar mail-urile sunt trimise cu prin intermediului serviciului cloud pus la dispoziție de Sendgrid.
2. Definirea componentelor React principale
Pentru a păstra aplicația cât mai simplă, aceasta va avea doar 3 componente principale: o componenta pentru Antet (Header.jsx), o componenta care gestionează afișare listei de mesaje (MessagesList.jsx) și o componentă care gestionează trimiterea de mesaje (MessagesSubmit.jsx)
În folderul "components" vom crea 3 fișiere .jsx pentru cele 3 componente

2.1. Header.jsx
Creăm un Antet simplu (Header.jsx)
2.2. MessagesList.jsx
Creăm componenta MessagesList.jsx cu date hardcoded în constanta "messages"
Observăm că folosim o componentă importată din pachetul "heroicons/react" (UserIcon). Așadar, npm install @heroicons/react
Mesajele pe care ne dorim să le afișăm sunt stocate într-o bază de date externă și le putem accesa prin intermediul Back-end-ului. Pentru a putea actualiza interfața aplicației în momentul sosirii datelor, vom folosi funcțiile useEffect și useState puse la dispoziție de React Hooks.
Astfel, în interiorul componentei MessagesList() definim un state și îl modificăm cu datele cerute la momentul creării componentei de către browser.
Observăm că am stocat calea către serverul Back-end în fisierul .env
Atenție! Fiecare variabilă de configurare din .env în React trebuie să aibă prefixul REACT_APP (exemplu mai jos)
Codul complet al componentei MessagesList.jsx
2.3. MessagesSubmit.jsx
Componenta MessagesSubmit.jsx constă într-un formular și mai multe butoane care vor trimite câte un apel către Back-end pentru a traduce mesajul introdus și a trimite un mail.
Limbile disponibile le-am stocat într-un array în fișierul de constante. De asemenea, am stocat adresa de pe care se vor trimite mail-urile tot în fișierul de constante
Planul curent oferit de Sendgrid ne permite să trimitem mail-uri dinspre o singură adresă (adresa cu care am creat contul de Sendgrid). De aceea senderMail este o constantă stocată în utils/constants.js
Codul complet al componentei MessagesSubmit.jsx
2.4. Wrapping up in MainPage.jsx
Acum că avem cele 3 componente principale, le putem atașa în MainPage.jsx cu un minim de stilizare
3. Rezultat

Suntem acum pregătiți să publicăm aplicațiile
Last updated