<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dev Girls Mentor</title>
    <description>The latest articles on DEV Community by Dev Girls Mentor (@devgirlsmentor).</description>
    <link>https://dev.to/devgirlsmentor</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4920%2F9db665b6-eeb7-4183-a8cf-8bfbf923ca28.png</url>
      <title>DEV Community: Dev Girls Mentor</title>
      <link>https://dev.to/devgirlsmentor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devgirlsmentor"/>
    <language>en</language>
    <item>
      <title>Dashboard - Validações e formatação</title>
      <dc:creator>NuryCaroline</dc:creator>
      <pubDate>Tue, 22 Feb 2022 18:23:17 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/dashboard-validacoes-e-formatacao-l3b</link>
      <guid>https://dev.to/devgirlsmentor/dashboard-validacoes-e-formatacao-l3b</guid>
      <description>&lt;h2&gt;
  
  
  Campos de data e hora
&lt;/h2&gt;

&lt;p&gt;Existem vários tipos de inputs como date, time, tel, email que modificam o formato do input ( cada navegador tem uma interface diferente) e deixam o HTML mais semântico. &lt;/p&gt;

&lt;p&gt;Para adicionar uma nova task temos os campos Data e Hora:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;src/components/ModalFormTasks/index.js:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
   Date
   &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"date"&lt;/span&gt; &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setDate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

 &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
   Hour
   &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"time"&lt;/span&gt; &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setHour&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;label&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E para dar uma 'descolada' do texto dos campos na lateral, vamos dar um espacinho nesses inputs:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;src/components/ModalFormTasks/styles.js:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;label&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
    &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;padding&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="nx"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Toda as modificações acima podem ser encontradas &lt;a href="https://github.com/DevGirlsMentor/dashboard/commit/fa86cdf6cb93c821ab7af516e17376bcd65440f7"&gt;aqui&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Obrigando o preenchimento de todas as informações
&lt;/h2&gt;

&lt;p&gt;Hoje temos um problema, que se o usuário não preencher as informações, mesmo assim estamos criando uma task, e assim deixando a task em branco. Para resolver isso, sempre que o usuário não preencher as informações vamos mostrar um alerta, para lembra-lo. &lt;/p&gt;

&lt;p&gt;Uma maneira simples de fazer isso é verificando se os valores estão preenchidos antes de adicionar uma nova tarefa, e caso não estejam, mostramos um alerta:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;src/components/ModalFormTasks/index.js:&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleSaveTask&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;description&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;date&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;hour&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;responsable&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nf"&gt;handleAddTask&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
     &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="p"&gt;})&lt;/span&gt;
   &lt;span class="nf"&gt;onClose&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nf"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Preencha todos os campos.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Toda as modificações acima podem ser encontradas &lt;a href="https://github.com/DevGirlsMentor/dashboard/commit/6ef388c33eaab1a0194c133485c7f0342889effb"&gt;aqui&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>challenge</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Dashboard - Criando Task</title>
      <dc:creator>NuryCaroline</dc:creator>
      <pubDate>Thu, 10 Feb 2022 11:13:17 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/dashboard-criando-task-2nin</link>
      <guid>https://dev.to/devgirlsmentor/dashboard-criando-task-2nin</guid>
      <description>&lt;h2&gt;
  
  
  Adicionar um botão fechar no modal
&lt;/h2&gt;

&lt;p&gt;Adicionar o botão no componente ModalFormTask&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;receber&lt;/span&gt; &lt;span class="s2"&gt;`onClose`&lt;/span&gt; &lt;span class="nx"&gt;como&lt;/span&gt; &lt;span class="nx"&gt;prop&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onClose&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;fechar&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;adicionar um style para o botão não ficar em cima do outro&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na page &lt;code&gt;Task/index.js&lt;/code&gt; criar um estado para abrir/fechar o modal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;showModal&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setShowModal&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;showModal&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ModalFormTasks&lt;/span&gt;
      &lt;span class="na"&gt;onClose&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setShowModal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Abrir modal ao clicar no &lt;code&gt;+&lt;/code&gt; da coluna
&lt;/h2&gt;

&lt;p&gt;No componente da coluna recebermos a prop &lt;em&gt;&lt;code&gt;onShowModal&lt;/code&gt;, e&lt;/em&gt; passamos para o botão&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;onShowModal&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconPlus&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Add"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E na chamada do componente passamos a função para abrir o modal como prop para o componente filho (Column)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"In progress"&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"yellow"&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconInProgress&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="err"&gt;**&lt;/span&gt;&lt;span class="na"&gt;onShowModal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setShowModal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="err"&gt;**&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Abrir o modal com o status pré preenchido
&lt;/h2&gt;

&lt;p&gt;Criamos um estado para o status default&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;defaultStatus&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;to do&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Criamos uma função para alem de abrir o modal, também atualizar o status default, que recebe um status como parâmetro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleOpenModalWithDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;setDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nf"&gt;setShowModal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora podemos modificar a função de &lt;code&gt;onShowModal&lt;/code&gt; para alem de abrir o modal também atualizar o status conforme o botão da coluna&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"To do"&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"pink"&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconTodo&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onShowModal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleOpenModalWithDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;to do&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"In progress"&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"yellow"&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconInProgress&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onShowModal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleOpenModalWithDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;in progress&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Done"&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"green"&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconDone&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onShowModal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleOpenModalWithDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;done&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o status default sendo preenchido conforme o click da coluna, podemos passar o status para o modal. Recebemos &lt;em&gt;&lt;code&gt;defaultStatus&lt;/code&gt;&lt;/em&gt; como prop, e adicionamos o valor no select&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;select&lt;/span&gt; &lt;span class="na"&gt;defaultValue&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;defaultStatus&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"to do"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;To do&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"in progress"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;In progress&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"done"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Done&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;option&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;select&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Modificando o form do modal para utilizar o estado
&lt;/h2&gt;

&lt;p&gt;Começamos criando os estados&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setTitle&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setDescription&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setDate&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setHour&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setResponsable&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setStatus&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;defaultStatus&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E depois adicionamos uma função para o &lt;code&gt;onChange&lt;/code&gt; de cada input&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;onChange&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currentTarget&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos adicionar um console ao clicar em salvar, para visualizar se os estados estão sendo preenchidos corretamente&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleSaveTask&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleSaveTask&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Save&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adicionar uma nova task
&lt;/h2&gt;

&lt;p&gt;Começamos criando um estado para armazenas as atividades&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setTasks&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;([])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos criar uma função bem simples para receber uma task e adiciona-la a lista&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleAddTask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;setTasks&lt;/span&gt;&lt;span class="p"&gt;([...&lt;/span&gt;&lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos passar para o modal a função para adicionar uma nova tarefa&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ModalFormTasks&lt;/span&gt;
  &lt;span class="na"&gt;onClose&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setShowModal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;defaultStatus&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;defaultStatus&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="na"&gt;handleAddTask&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleAddTask&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No modal, recebemos a nova prop, e ao clicar em salvar chamamos a função de adicionar tarefas passando as informações da nova tarefa&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;handleSaveTask&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;handleAddTask&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mostrando as tasks criadas
&lt;/h2&gt;

&lt;p&gt;Para mostrarmos as tasks criadas, vamos criar um map e passar para o componente &lt;code&gt;CardsTasks&lt;/code&gt; as informações&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"To do"&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"pink"&lt;/span&gt;
  &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconTodo&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;onShowModal&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;handleOpenModalWithDefaultStatus&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;to do&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="si"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;e temos que modificar o componente &lt;code&gt;CardsTasks&lt;/code&gt; para ser dinâmico e receber as informações como props&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ContainerCardsTasks&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;FooterCards&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;time&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;time&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ContainerAvatar&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;IconEdit&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Edit"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;FooterCards&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;ContainerCardsTasks&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Separando as tasks por status
&lt;/h2&gt;

&lt;p&gt;Para listarmos somente a tarefa de cada status em sua respectiva coluna, podemos adicionar uma função de filtro antes do map&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;to do&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt;
      &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adicionando KEY no map
&lt;/h2&gt;

&lt;p&gt;Para o React atualizar o seu componente corretamente, é uma boa prática adicionar a prop &lt;code&gt;key&lt;/code&gt; ao seu componente, quando utilizar a função &lt;code&gt;map&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;in progress&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;CardsTasks&lt;/span&gt;
      &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;date&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hour&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;responsable&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responsable&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Estou pronta para o primeiro emprego?</title>
      <dc:creator>Camila Araldi</dc:creator>
      <pubDate>Wed, 09 Feb 2022 19:24:46 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/estou-pronta-para-o-primeiro-emprego-32ki</link>
      <guid>https://dev.to/devgirlsmentor/estou-pronta-para-o-primeiro-emprego-32ki</guid>
      <description>&lt;p&gt;Há alguns dias no nosso canal do &lt;strong&gt;&lt;a href="https://discord.gg/KSFxm7vB54"&gt;discord &lt;/a&gt;&lt;/strong&gt; criamos um formulário para pessoas que estão iniciando na área de tecnologia nos enviar perguntas referentes ao tema: &lt;strong&gt;Estou pronta para o primeiro emprego?&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Com o intuito de ajudar mais pessoas que possam a vir ter dúvidas sobre este assunto, decidimos compartilhar as perguntas que recebemos e as respostas de nossas mentoras &lt;a class="mentioned-user" href="https://dev.to/nurycaroline"&gt;@nurycaroline&lt;/a&gt;, &lt;a class="mentioned-user" href="https://dev.to/laismgaudencio"&gt;@laismgaudencio&lt;/a&gt; e &lt;a class="mentioned-user" href="https://dev.to/araldicami"&gt;@araldicami&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Como lidar com a insegurança quando consegue o primeiro emprego? Aqueles pensamentos "será que vou dar conta?", "será que estou preparada?". Fora as inseguranças ao arriscar um emprego novo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: É difícil e a resposta parece bem clichê, mas respirando fundo e ignorando esses pensamentos invasores. Se você está nesse emprego é porque tem capacidade para estar. &lt;br&gt;
Uma certeza também, é que você nunca estará 100% preparada. Mas você só vai saber como é se tentar, assim como tudo na vida. Pense nas entrevistas como forma de conhecer a empresa, não somente para a empresa te conhecer. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. O que geralmente é cobrado nas entrevistas técnicas?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Depende muito da empresa e do nível da vaga. Para níveis júnior/pleno eu vejo as empresas pedindo testes práticos e um bate-papo sobre tecnologias e projetos que você já desenvolveu. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Uma dica é você ter um portfolio com projetos pessoais/desafios, isso pode fazer com que você pule a parte da teste prático além de ajudar você a desenvolver suas habilidades. Um lugar legal para montar seu portfolio é no &lt;a href="https://github.com/"&gt;Github&lt;/a&gt;. No Github também tem este repositório bem bacana &lt;a href="https://github.com/rubenmarcus/120-perguntas-frontend"&gt;https://github.com/rubenmarcus/120-perguntas-frontend&lt;/a&gt; onde reúne algumas perguntas que podem cair em entrevistas. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. Vejo muitas vagas para Dev Front-End Jr. que pedem portfolio, seja pelo próprio GitHub ou por um site pessoal. Saberiam dizer o que é avaliado nos portfolios pelos contratantes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Basicamente se sabe criar um projeto do zero, e o nível de projetos que você já desenvolveu sozinha(o).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Para o primeiro emprego, vocês acham que é melhor estudar mais a teoria (conceitos) ou a prática (escrever código)? Eu percebo que durante meus estudos, acabo focando bem mais na prática do que na teoria, porém já fui cobrada por não saber a teoria 'de letra'. Aproveito para agradecer pelo projeto de vocês que está sensacional!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Depende muito da empresa, e do "nível" de júnior que elas estão buscando (Muitas confundem as expectativas). Mas com certeza mais pratica e menos teoria. No dia a dia não vai fazer diferença se você sabe os termos técnicos, nome de todos os padrões, mas sim como você resolve um problema. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. É realmente necessário ser um usuário bem ativo no LinkedIn?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Não, mas é importante manter suas informações sempre atualizadas. Além de também evitar deixar recrutadores no "vácuo", sabemos que as vezes recebemos algumas mensagens seguidas, mas é sempre bom responder pois amanhã podemos precisar deles. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Uma dica para o LinkedIn é você realizar os testes de skills, que são mini provas dos assuntos que você adiciona nas suas competências. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;6: Alguma dica para se livrar da timidez durante as entrevistas?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Treinar em casa sozinha ou com amigos e familiares, pesquise na internet quais são as perguntas mais feitas e anote as respostas, é mais calmo quando você tem noção do que pode acontecer. Também não tenha medo de responder "não" para perguntas que você não sabe 😉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Como lidar com prazos tendo pouca experiência?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Deixando claro que você tem pouca experiência, muitas vezes os prazos que são passados são com base nos colegas que já estão a mais tempo no projeto/produto, se você acha que o prazo não é condizente deixe claro que pode atrasar e não tenha medo por ser o primeiro emprego. &lt;br&gt;
Também é legal no final da entrega você refletir do porque você atrasou a entrega e como pode melhorar na próxima estimativa de tempo. Vai muita pratica com o projeto e desenvolvimento no geral para conseguir acertar nos prazos, e mesmo assim, existem variáveis que não controlamos, por exemplo, um mau dia em casa que afeta a produtividade, dependência com terceiros. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Enviei um código com erro e gerou bugs em produção, como se comportar durante essas situações?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Mantendo a calma, e resolvendo o problema (Caso você não consiga resolver, peça ajuda) todas as pessoas que programam em algum momento passam por isso, faz parte 😊&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Qual deve ser meu relacionamento com QA e UX?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Respeito e colaboração, se houver atrito de qualquer parte, escale a pessoa superior a você.&lt;br&gt;
Para quem não sabe a função destes cargos:&lt;br&gt;
O QA vai ser quem vai garantir a qualidade da sua implementação, se esta de acordo com o que o usuário solicitou  e de como ele vai utilizar.&lt;br&gt;
O UX, é quem vai te passar qual a forma mais adequada de implementar que fique fácil e intuitivo para o usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Devo me preocupar com habilidades não técnicas?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;R: Sim, pesquise sobre soft skills e desenvolva tanto quanto as hard skills. E lembre-se, comunicação é uma chave importante no dia a dia corporativo. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11. Para as aspirantes à fullstack, é melhor se especializar em uma linguagem só (pensando na melhor absorção de conteúdo), como por exemplo o Javascript que pode ser usado tanto no front com o ReactJS, como no back com o NodeJS? Ou é uma opção viável escolher outra linguagem para back-end, como o Elixir e o C#?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: Nunca case com uma linguagem, eu indico muito javascript pra quem está começando porque acho que é mais fácil para encontrar emprego, além de ser mais fácil de apender e roda em todo lugar. E cada linguagem tem um proposito diferente, então com o tempo você vai vendo o que se encaixa melhor á você. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12. Quais são caminhos possíveis quando seu primeiro emprego não está de acordo com suas expectativas (em relação à ambiente de trabalho, cultura da empresa ou até mesmo as tecnologias usadas)? Faço essa pergunta pois acredito que seja bom visualizar o que pode acontecer após o primeiro emprego, pois pela falta de experiência, criamos muitas expectativas e nem sempre a primeira oportunidade pode se encaixar com o nosso perfil, mesmo que no início pareça que sim.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;R: É mais comum do que parece o primeiro emprego não atender as nossas expectativas, tem o mito da T.I ser um lugar perfeito e disruptivo, mas não é, algumas empresas de fato são ótimas, mas infelizmente, principalmente no Brasil não é o caso da maioria. É importante entender o contexto da empresa que você trabalha e pesquisar empresas que estejam de acordo com sua concepção de "boa", de qualquer forma experiências ruins ensinam também, aproveite todo o tempo que tem na empresa atual e assim que estiver disposta a procurar novas oportunidades se jogue, temos a vantagem do mercado aquecido e devemos nos aproveitar disso. &lt;/p&gt;




&lt;p&gt;Essas foram as perguntas que recebemos, esperamos que possa ajudar de alguma forma você que estiver com dúvidas sobre este assunto. &lt;/p&gt;

&lt;p&gt;Lembrando que no caso de &lt;strong&gt;timidez&lt;/strong&gt; e &lt;strong&gt;inseguranças&lt;/strong&gt; caso você sinta que isso esteja atrapalhando o andamento da sua vida, carreira e afins, busque um profissional que possa lhe ajudar com estes sentimentos. &lt;/p&gt;

&lt;p&gt;Obrigada, e até a próxima ❤️&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Mulheres &amp; TI: Edith Clarke.</title>
      <dc:creator>Lais M. Gaudêncio.</dc:creator>
      <pubDate>Wed, 09 Feb 2022 01:45:11 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/mulheres-ti-edith-clarke-3lb8</link>
      <guid>https://dev.to/devgirlsmentor/mulheres-ti-edith-clarke-3lb8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Não existem demandas para engenheiras tanto quanto para doutoras, mas sempre existem demandas para quem consegue fazer um bom trabalho.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Descrever sobre Edith Clarke é falar sobre pioneirismo e luta, ela foi a primeira mulher a ter mestrado de engenharia elétrica no MIT, primeira mulher engenheira e primeira mulher a lecionar engenharia elétrica, 66 anos de um legado incrível, inspirando e abrindo espaços para outras. &lt;/p&gt;

&lt;p&gt;Em Maryland, no Condado de Howard, Estados Unidos, ano de 1883, nasce Edith Clarke, que infelizmente ficou órfã jovem. Usou a herança de seus falecidos pais para estudar matemática e astronomia no Vassar College, lugar em que se formou com 25 anos. Durante alguns anos Clarke ministrou aulas de matemática e física em uma escola particular para meninas em San Francisco (depois no Marshall College em Huntington, West Virginia).&lt;/p&gt;

&lt;p&gt;Clarke almejava de ser engenheira, então no ano de 1911 passando por todos os preconceitos da época, matriculou-se para Engenharia Civil na Universidade de Wisconsin. Trabalhou durante os verões para a American Telephone and Telegraph (AT&amp;amp;T) em Nova York e este é o  momento que a computação entra em sua vida, foi contratada como “computadora” (computadores humanos), alguém que resolvia equações matemáticas.  Passou a ser gerente de um grupo de assistentes de computação que trabalhavam para o Departamento de Engenharia de Transmissão e Proteção durante a Primeira Guerra Mundial, trancou o curso de engenharia civil para fazer aulas noturnas de Engenharia Elétrica na Columbia University, aprendeu muito sobre a teoria das linhas de transmissão e circuitos elétricos de Campbell, em 1919 se tornou a primeira mulher a obter um mestrado em engenharia elétrica no MIT.&lt;/p&gt;

&lt;p&gt;Mesmo formada as oportunidades para engenheiras eram limitadas, Clarke iniciou na General Eletric (GE) como computadora, treinou e dirigiu um pequeno grupo de mulheres que faziam cálculos de tensões mecânicas em rotores de turbina, frustrada com diploma de engenheira em 1921 se demitiu para dar aulas de física na Turquia,  no Constantinople Women’s College, inventou a calculadora que recebeu seu sobrenome e até que em 1922 a GE a contrata novamente, dessa vez como a primeira engenheira da empresa. Edith não para e em 1945, aposentada se torna a primeira professora de engenharia elétrica dos Estados Unidos, no ano de 1957 deixa as salas de aula, por fim dois anos mais tarde faleceu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zU8y7lH1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3em51x4l8qdgxgf8ye7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zU8y7lH1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3em51x4l8qdgxgf8ye7.jpg" alt="Image description" width="447" height="361"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Curiosidades&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A calculadora de Clarke consiste em um dispositivo gráfico para resolução de equações que envolvem corrente elétrica, tensão e impedância em linhas de transmissão. Uma das vantagens é que ele era muito mais rápido que os outros métodos disponíveis na época.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edith Clarke foi a primeira mulher a entregar um artigo no American Institute of Electrical Engineers (AIEE). Nele, ela mostrou o uso de funções hiperbólicas para calcular a potência máxima que uma linha pode carregar sem ter instabilidade.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Posteriormente, Clarke teve dois artigos premiados pela AIEE. Em 1943, ela escreveu um livro influente na engenharia chamado Circuit Analysis of A-C Power Systems. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Em 1954, ela recebeu o The Achievement Award da Society of Women Engineers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Entrou para o Hall da Fama dos inventores dos EUA em 2015.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>edithclarke</category>
      <category>developersgirls</category>
      <category>historyit</category>
    </item>
    <item>
      <title>Mulheres &amp; TI: Ada Lovelace.</title>
      <dc:creator>Lais M. Gaudêncio.</dc:creator>
      <pubDate>Tue, 25 Jan 2022 23:38:14 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/mulheres-ti-ada-lovelace-54dd</link>
      <guid>https://dev.to/devgirlsmentor/mulheres-ti-ada-lovelace-54dd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A imaginação é a faculdade da descoberta, predominantemente. É ela que penetra nos mundos invisíveis que nos rodeiam, nos mundos da ciência&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Filha da matemática Anne Isabella Milbanke e do poeta Lorde Byron, Augusta Ada Byron King ou Ada Lovelace, como era conhecida, nunca chegou a conhecer seu pai. Anne cansada das inúmeras traições, deixou seu marido para trás e resolveu criar a filha sozinha. Os criados de Byron diziam que em seu leito de morte ele se arrependeu de nunca a ter conhecido, apesar do afastamento do pai, as pessoas diziam que ela tinha o temperamento de um poeta. Seu interesse em matemática foi influenciado pela rígida criação de sua mãe, além disso ela tornou aficionada pelos avanços tecnológicos da Revolução Industrial. “O amor de Ada tanto pela poesia quanto pela matemática levou-a a ver beleza em uma máquina de computação”, escreveu Walter Isaacson em seu livro “Os Inovadores: Uma Biografia da Revolução Digital”.&lt;/p&gt;

&lt;p&gt;Começando desde cedo, aos 12 anos de idade escreveu o “|Flyology|”, um livro com suas ideias mais criativas e de como alcançar esses objetivos e com 17 anos Ada conheceu  Mary Somerville, a primeira mulher a entrar para a Sociedade Real de Astronomia, junto com Caroline Herschel. &lt;/p&gt;

&lt;p&gt;A famosa astrônoma se tornou amiga e mentora da jovem, responsável por coloca-la em uma mesma sala de jantar com Charles Babbage, matemático e físico francês. Nesse jantar Charles explicou sobre sua máquina analítica, na época Ada não conseguia ajudar. Em 1843, aos 28 anos, casada com o Conde de Lovelace e mãe de três filhos, ela traduziu um artigo de um pesquisador italiano, Menabrea. O artigo era um resumo do funcionamento da máquina analítica de Babbage. A Condessa não se limitou à ideia de Babbage e notou que a nova máquina tinha potencial para processar símbolos também, como notações artísticas, textos e imagens e ainda adicionou notas de rodapé que deixaram o trabalho com o dobro do tamanho. O resultado impressionou Babbage e então começaram a trabalhar juntos e entregaram um artigo três vezes maior do que o original. Ela sugeriu a Babbage um plano de como a máquina poderia calcular os números de Bernoulli, sequência matemática de números racionais profundamente relacionada com a teoria dos números. Este plano é considerado o primeiro programa de computador do mundo, além do programa, escreveu em suas notas que a invenção de Charles não só era capaz de computar números, mas conseguia também criar imagem.&lt;/p&gt;

&lt;p&gt;Aos 36 anos, em 1852, morre de câncer de útero e por falta de apoio financeiro e político na época, a máquina analítica de Ada e Babbage foi construída somente depois de sua morte. Em 1979 no Departamento de Defesa dos Estados Unidos desenvolveu uma linguagem de programação, e em homenagem à autora do primeiro programa que foi rodado em uma máquina, chamou a linguagem de Ada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gonsv9_Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrtz9ohpfn4vigoh0pyj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gonsv9_Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mrtz9ohpfn4vigoh0pyj.jpg" alt="Image description" width="880" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dica&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pesquisar sobre Ada Lovelace e Alan Turing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Curiosidades&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O verdadeiro nome de Ada Lovelace é Augusta Ada King. No entanto, Augusta era o nome de uma das amantes de Lord Byron e, quando Anne descobriu, passou a chamar a filha apenas por Ada. Depois de casada, Ada passou a ter o sobrenome do marido, King, mas ficou conhecida por seu título, condessa de Lovelace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A segunda terça-feira de outubro é conhecida como o Dia da Ada Lovelace, dia de inspirar mulheres a trabalhar na área de tecnologia. Anote no calendário!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Ada Initiative é uma organização sem fins lucrativos que tem como objetivo aumentar o número de mulheres no movimento pela cultura e em movimentos open source. Já a Ada Developers Academy também não possui fins lucrativos, mas se dedica a aumentar a diversidade na tecnologia, treinando mulheres cis, trans e pessoas não-binárias para se tornar engenheiras de software.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Além disso, em 1981, a Associação de Mulheres na Computação criou o Prêmio Ada Lovelace. Sete anos depois, a Associação Britânica de Computação criou a Medalha Lovelace e, atualmente, há uma competição anual para alunas.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Referências&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://revistagalileu.globo.com/Sociedade/Curiosidade/noticia/2018/02/10-fatos-sobre-ada-lovelace-que-farao-voce-admira-la-ainda-mais.html"&gt;https://revistagalileu.globo.com/Sociedade/Curiosidade/noticia/2018/02/10-fatos-sobre-ada-lovelace-que-farao-voce-admira-la-ainda-mais.html&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://blog.betrybe.com/tecnologia/ada-lovelace/"&gt;https://blog.betrybe.com/tecnologia/ada-lovelace/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://thehack.com.br/conheca-ada-lovelace-matematica-do-seculo-xix-autora-do-primeiro-programa-de-computador/"&gt;https://thehack.com.br/conheca-ada-lovelace-matematica-do-seculo-xix-autora-do-primeiro-programa-de-computador/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>adalovelace</category>
      <category>developersgirls</category>
      <category>historyit</category>
    </item>
    <item>
      <title>Iniciando com temas na aplicação "warship"</title>
      <dc:creator>Camila Araldi</dc:creator>
      <pubDate>Fri, 26 Nov 2021 11:35:11 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/iniciando-com-temas-na-aplicacao-warship-19me</link>
      <guid>https://dev.to/devgirlsmentor/iniciando-com-temas-na-aplicacao-warship-19me</guid>
      <description>&lt;p&gt;Repositório do projeto: &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/DevGirlsMentor"&gt;
        DevGirlsMentor
      &lt;/a&gt; / &lt;a href="https://github.com/DevGirlsMentor/warship"&gt;
        warship
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      É um jogo de Super trunfo utilizando os veículos de Star Wars.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Warship&lt;/h1&gt;
&lt;h2&gt;
O que é?&lt;/h2&gt;
&lt;p&gt;É um jogo de Super trunfo utilizando os veículos de Star Wars.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/DevGirlsMentor/warship"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;Inicialmente, dentro de styles criamos um arquivo chamado themes.js com a estilização de ambos os temas. &lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Para iniciar com os temas no nosso projeto “warship”, no componente da home onde selecionamos a ordem que queremos seguir vamos passar a ordem selecionada por parâmetro através da url (query params). &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Dentro do arquivo da sua página do “board do jogo” importamos o ThemeProvider da biblioteca styled-components, e também o useRouter do next.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Dentro da função do board, vamos criar as seguintes variáveis: &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;A &lt;strong&gt;router&lt;/strong&gt; é criada para podermos utilizar as funcionalidades fornecidas pelo useRouter.&lt;br&gt;
A segunda variável, &lt;strong&gt;side&lt;/strong&gt;, é desestruturada de router.query, seria o mesmo que utilizar o &lt;strong&gt;router.query.side&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Para setar o tema, criaremos outra variável que receberá um objeto de temas, as chaves do objeto serão: play e comp (que identifica um jogador e o computador), a chave “play” recebe como valor Themes[side], onde Themes vem do arquivo de estilização e side vem da query param. A chave “comp” receberá o valor inverso do recebido pela chave “play”, para isso foi feita a validação: se o side for igual a “jedi” então, recebe “sith” senão, recebe “jedi”. &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Para passar o tema para os componentes, precisamos utilizar em volta do componente do nosso board o &lt;strong&gt;ThemeProvider&lt;/strong&gt; (importado do styled-components), como se este fosse uma tag HTML.Dentro deste ThemeProvider, coloca-se o componente Board. &lt;/p&gt;

&lt;p&gt;O ThemeProvider recebe o parâmetro &lt;strong&gt;theme&lt;/strong&gt;, que receberá como valor a variável criada acima, theme.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Links úteis:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.alura.com.br/artigos/es6-desestruturando-objetos?gclid=CjwKCAiA7dKMBhBCEiwAO_crFMygSF56ckCbHQhMUe7CK-NO7MIY-4SLi2aOImOffrYZs3E-DO5gchoCKNYQAvD_BwE"&gt;Desestruturação&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://styled-components.com/docs/advanced"&gt;Temas com styled-components&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Iniciando com Next.JS</title>
      <dc:creator>NuryCaroline</dc:creator>
      <pubDate>Fri, 12 Nov 2021 18:29:58 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/iniciando-com-nextjs-43dm</link>
      <guid>https://dev.to/devgirlsmentor/iniciando-com-nextjs-43dm</guid>
      <description>&lt;p&gt;Olá dev! &lt;/p&gt;

&lt;p&gt;O intuito desse post é explicar um pouquinho o que é Next.js e o que podemos fazer com ele. &lt;/p&gt;

&lt;h1&gt;
  
  
  O que é Next.js?
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;É um &lt;strong&gt;Framework React para Produção&lt;/strong&gt;.&lt;br&gt;
Next.js oferece a melhor experiência de desenvolvedor com todos os recursos de que você precisa para produção: renderização híbrida estática e de servidor, suporte a TypeScript, agrupamento inteligente, pré-busca de rota e muito mais. Nenhuma configuração necessária.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Vantagens:
&lt;/h2&gt;

&lt;p&gt;Next.js tem várias ferramentas para te auxiliar, algumas delas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/basic-features/image-optimization"&gt;Otimização de imagem&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Com o Next.js podemos trocar a tag &lt;code&gt;&amp;lt;img src="" /&amp;gt;&lt;/code&gt; pelo componente &lt;code&gt;&amp;lt;Image  src="" /&amp;gt;&lt;/code&gt;, assim é incluído uma variedade de otimizações como: carregar somente o tamanho utilizado e quando a imagem for utilizada.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/analytics"&gt;Next.js Analytics&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Ao publicar a sua aplicação na &lt;a href="https://vercel.com/home?utm_source=next-site&amp;amp;utm_medium=banner&amp;amp;utm_campaign=next-website"&gt;Vercel&lt;/a&gt; você tem acesso a uma ferramenta de analise em tempo real. Podendo assim, medir quantidade de visitantes, tempo de carregamento da página, entre outros.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/getting-started"&gt;Zero Config&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Utilizando um simples comando no terminal, é criado uma estrutura pronta para iniciar um projeto.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/basic-features/built-in-css-support"&gt;Suporte a CSS e&lt;/a&gt; &lt;a href="https://github.com/css-modules/css-modules"&gt;CSS Modules&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;O CSS Modules nos permitem separar o css em escopos, para evitar colisões.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/routing/introduction"&gt;Roteamento&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;A navegação entre paginas é bem simplificado, basta criar um novo arquivo com o nome da pagina desejada e o roteador já identifica como uma página.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs/api-routes/introduction"&gt;Rotas Api&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Com as Rotas você pode criar endpoints para retornar informações para sua aplicação.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/docs/basic-features/data-fetching"&gt;Híbrido SSG e SSR&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;SSR (Server Side Render) - Renderização do lado do Servidor:&lt;/p&gt;

&lt;p&gt;Ao solicitarmos uma página de perfil de usuário, por exemplo, o servidor efetua as buscas necessárias na aplicação e banco de dados, e retorna ao navegador um HTML pronto para ser apresentado ao usuário.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YKf5LByx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d33wubrfki0l68.cloudfront.net/ed387a6bc4f3abf8e8bd06bc006cd297a923d8c2/9f11e/images/posts/arquitetura_ssr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YKf5LByx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d33wubrfki0l68.cloudfront.net/ed387a6bc4f3abf8e8bd06bc006cd297a923d8c2/9f11e/images/posts/arquitetura_ssr.png" alt="SSR" width="587" height="340"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fonte: &lt;a href="https://woliveiras.com.br/posts/qual-diferenca-server-side-render-ssr-e-static-site-generator-ssg/"&gt;https://woliveiras.com.br/posts/qual-diferenca-server-side-render-ssr-e-static-site-generator-ssg/&lt;/a&gt;&lt;/em&gt;  &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SSG (Static Site Generator) - Geração de Site Estático:&lt;/p&gt;

&lt;p&gt;São sites que não possuem conteúdos dinâmicos, uma pagina de apresentação de uma empresa, por exemplo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R7qhpqFD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d33wubrfki0l68.cloudfront.net/40b1eaa12605bdfa28328b9dc2ee5f384cbe1632/106dc/images/posts/arquitetura_ssg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R7qhpqFD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://d33wubrfki0l68.cloudfront.net/40b1eaa12605bdfa28328b9dc2ee5f384cbe1632/106dc/images/posts/arquitetura_ssg.png" alt="SSG" width="388" height="199"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Fonte: &lt;a href="https://woliveiras.com.br/posts/qual-diferenca-server-side-render-ssr-e-static-site-generator-ssg/"&gt;https://woliveiras.com.br/posts/qual-diferenca-server-side-render-ssr-e-static-site-generator-ssg/&lt;/a&gt;&lt;/em&gt;  &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Como aprender Next.js
&lt;/h2&gt;

&lt;p&gt;No próprio site do Next.js (&lt;a href="https://nextjs.org/learn/basics/create-nextjs-app"&gt;https://nextjs.org/learn/basics/create-nextjs-app&lt;/a&gt;) há um curso interativo com os fundamentos de Next.js, como monitorar a performance, SEO e outras funcionalidades.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/"&gt;Nextjs.org&lt;/a&gt;&lt;br&gt;
&lt;a href="https://woliveiras.com.br/posts/qual-diferenca-server-side-render-ssr-e-static-site-generator-ssg/"&gt;Qual a diferença entre SSR e SSG&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Extensões para VSCode</title>
      <dc:creator>NuryCaroline</dc:creator>
      <pubDate>Wed, 03 Nov 2021 20:50:20 +0000</pubDate>
      <link>https://dev.to/devgirlsmentor/extensoes-para-vscode-3g2n</link>
      <guid>https://dev.to/devgirlsmentor/extensoes-para-vscode-3g2n</guid>
      <description>&lt;p&gt;Olá dev! Aqui está uma seleção de extensões para VSCode para te ajudar no dia a dia e trazer mais produtividade. &lt;/p&gt;

&lt;h1&gt;
  
  
  Medir produtividade
&lt;/h1&gt;

&lt;p&gt;Antes de melhorarmos a nossa produtividade, primeiro precisamos ter dados de como ela está. Para obter esses dados, eu conheço essas três extensões: &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=WakaTime.vscode-wakatime" rel="noopener noreferrer"&gt;Wakatime&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Assim como a Code Time, essa extensão ajuda a mediar a sua atividade enquanto está desenvolvendo no dia dia, o quanto esta trabalhando em qual linguagem e várias outras informações.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=softwaredotcom.swdc-vscode" rel="noopener noreferrer"&gt;Code Time&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Além de ser uma pata de animal que com certeza á bem fofinha rsrs, com ele você tem um dashboard de como você trabalha no dia a dia, quais horários está mais produtivo, entre várias outras informações.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=softwaredotcom.swdc-100-days-of-code" rel="noopener noreferrer"&gt;100 days of code&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Os mesmos criadores do Code Time criaram essa extensão para ajudar você a alcançar seus desafios, e ganhando botons a cada conquista.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conjunto de atalhos ( Snippets )
&lt;/h1&gt;

&lt;p&gt;Algo que me deixa bem produtiva no dia a dia, é utilizar alguns atalhos para construção de códigos padrões, por exemplo, criar componentes React, arquivos de estilização, arquivo de configuração de api.&lt;/p&gt;

&lt;p&gt;Para desenvolvimento com React e React Native, tem essas 2 extensões da Rocketseat:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rocketseat &lt;a href="https://marketplace.visualstudio.com/items?itemName=rocketseat.RocketseatReactJS" rel="noopener noreferrer"&gt;ReactJS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rocketseat &lt;a href="https://marketplace.visualstudio.com/items?itemName=rocketseat.RocketseatReactNative" rel="noopener noreferrer"&gt;React Native&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os atalhos que eu mais uso são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rnfc  → React Native Functional Componente: que cria a estrutura de um componente React Native&lt;/li&gt;
&lt;li&gt;rfc → React  Functional Componente: que cria a estrutura de um componente React&lt;/li&gt;
&lt;li&gt;styled-react → Styled React: que cria uma estrutura inicial com styled componentes&lt;/li&gt;
&lt;li&gt;api → Cria uma estrutura de configuração Axios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na página de cada extensão tem uma lista de comandos possíveis.&lt;/p&gt;

&lt;h1&gt;
  
  
  Facilitadores
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=cssho.vscode-svgviewer" rel="noopener noreferrer"&gt;SVG Viewer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Quando abrimos um &lt;code&gt;.svg&lt;/code&gt; no VSCode ele nos mostra o seu código, mas na maioria das vezes queremos ver a imagem em si, e é isso que essa extensão faz.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree" rel="noopener noreferrer"&gt;ToDo Three&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Essa é uma extensão que eu gosto de usar bastante, para adicionar comentários no meu código de coisas que ainda tenho que implementar e não esquecer nenhuma regra. Apenas adicionar um comentário como &lt;code&gt;// TODO:&lt;/code&gt; e &lt;code&gt;// FIXME:&lt;/code&gt;, a extensão coloca um destaque, que o torna mais visível e mais difícil de esquecer quando estiver analisando as suas alterações antes de enviar. Além disso ela também cria uma árvore, com os arquivos onde você adicionou.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F185i143kblbc9eaxr6z4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F185i143kblbc9eaxr6z4.png" alt="Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=meganrogge.template-string-converter" rel="noopener noreferrer"&gt;Template String Converter&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Com a atualização do JS, passamos a poder concatenar string facilmente com o &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals" rel="noopener noreferrer"&gt;Template String&lt;/a&gt;, o que pode ser chato no dia a dia, ficar mudando de aspas ( ' ou " ) para acentos graves (&lt;code&gt;&lt;/code&gt;), e essa extensão vem para nos ajudar nisso, assim que colocamos &lt;code&gt;${}&lt;/code&gt;, dentro de aspas elas mudam para acentos graves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fmeganrogge%2Ftemplate-string-converter%2Fmaster%2Fsrc%2Fimages%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fmeganrogge%2Ftemplate-string-converter%2Fmaster%2Fsrc%2Fimages%2Fdemo.gif" alt="Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer" rel="noopener noreferrer"&gt;Brackets Pair&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Sabem quando esquecemos de abrir ou fechar parênteses ou chaves, e não sabemos onde colocar?! Essa extensão coloca uma cor diferente para cada conjunto de &lt;code&gt;Abre e Fecha&lt;/code&gt;, facilitando encontrarmos onde está faltando.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=leodevbro.blockman" rel="noopener noreferrer"&gt;Blockman&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Acredito que essa extensão tenha o mesmo objetivo da &lt;code&gt;Brackets Pair&lt;/code&gt;, mas com uma forma diferente de visualização. Com ela é criado uma borda envolta de cada conjunto de &lt;code&gt;Abre e Fecha&lt;/code&gt;, facilitando um pouco mais descobrir onde está faltando abrir ou fechar algum parênteses ou chaves e também facilitando a visualização de cada bloco&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fleodevbro%2Fvscode-blockman%2Fmain%2Fdemo-media%2Fvideo%2Fmain-demo---c2-apng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fleodevbro%2Fvscode-blockman%2Fmain%2Fdemo-media%2Fvideo%2Fmain-demo---c2-apng.png" alt="Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag" rel="noopener noreferrer"&gt;Auto Rename&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;No dia a dia do desenvolvimento web modificamos varias tags e pode ser repetitivo alterar o nome ta tag de abertura e fechamento, e é nisso que essa extensão nos ajuda, ao modificar alguma tag, automaticamente a outra é alterada também.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdpsej97odpeinvqowtf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdpsej97odpeinvqowtf.gif" alt="Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=naumovs.color-highlight" rel="noopener noreferrer"&gt;Color Highlight&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Na maioria das vezes ao desenvolver sites e aplicativos usamos cores &lt;code&gt;hexadecimais&lt;/code&gt; ou &lt;code&gt;rgb&lt;/code&gt;, o que dificulta reconhecer qual é a cor. Com essa extensão é criado um destaque em cima do código da cor com a cor&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare" rel="noopener noreferrer"&gt;Live share&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Está trabalhado com alguém em um mesmo bug, ou criando algo de forma colaborativa, essa extensão vai permitir que ambos compartilharem um mesmo VSCode. &lt;/p&gt;

&lt;h1&gt;
  
  
  Embelezamento
&lt;/h1&gt;

&lt;p&gt;Como passamos o dia olhando para o VSCode, podemos deixar ele mais com a nossa cara, aqui eu separei algumas extensões legais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vscodethemes.com" rel="noopener noreferrer"&gt;VSCodeThemes - Preview Visual Studio Code Themes.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=rocketseat.theme-omni" rel="noopener noreferrer"&gt;Omni Theme - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=BalleriniServer.ballerini-theme" rel="noopener noreferrer"&gt;Ballerini Theme - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme-icons" rel="noopener noreferrer"&gt;Material Theme Icons - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ftsamoyed.theme-pink-cat-boo" rel="noopener noreferrer"&gt;Pink-Cat-Boo Theme - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=zhengrenzhe.nyan-cat" rel="noopener noreferrer"&gt;Nyan Cat - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=hoovercj.vscode-power-mode" rel="noopener noreferrer"&gt;Power Mode - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=fleshywaffles.vs-code-clippy" rel="noopener noreferrer"&gt;Clippy - Visual Studio Marketplace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E você, quais extensões você mais utiliza? &lt;br&gt;
Deixe aqui nos comentários e até mais. 😄&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>vscode</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
