<?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>Forem: Bruno Antunes</title>
    <description>The latest articles on Forem by Bruno Antunes (@bmvantunes).</description>
    <link>https://forem.com/bmvantunes</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%2Fuser%2Fprofile_image%2F321667%2Feb946b5a-0813-4374-a4b7-f1897d10a6c2.jpeg</url>
      <title>Forem: Bruno Antunes</title>
      <link>https://forem.com/bmvantunes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bmvantunes"/>
    <language>en</language>
    <item>
      <title>(Unit/Integration) Testing React.js Forms with React Testing Library</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Mon, 04 Oct 2021 16:44:30 +0000</pubDate>
      <link>https://forem.com/bmvantunes/unit-integration-testing-react-js-forms-with-react-testing-library-56bf</link>
      <guid>https://forem.com/bmvantunes/unit-integration-testing-react-js-forms-with-react-testing-library-56bf</guid>
      <description>&lt;p&gt;In this video we will learn how to test React Forms using React Testing Library. Our React forms can be implemented using formik or react hook form and our tests will work for both libraries.&lt;/p&gt;

&lt;p&gt;The tests will take no assumption on the "library" used, so independently of you using react hook form or formik, those tests will work in both libraries.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/MhFSuOjU624"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;GitHub repository: &lt;a href="https://github.com/bmvantunes/youtube-react-testing-video8-forms-react-testing-library"&gt;https://github.com/bmvantunes/youtube-react-testing-video8-forms-react-testing-library&lt;/a&gt;&lt;br&gt;
All the videos in this series (React.js Testing Tutorial): &lt;a href="https://www.youtube.com/playlist?list=PLYSZyzpwBEWTBdbfStjqJSGaulqcHoNkT"&gt;https://www.youtube.com/playlist?list=PLYSZyzpwBEWTBdbfStjqJSGaulqcHoNkT&lt;/a&gt; &lt;/p&gt;

</description>
      <category>react</category>
      <category>formik</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Please don't mock SWR, Fetch or Axios in your unit/integration tests</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Fri, 10 Sep 2021 13:43:46 +0000</pubDate>
      <link>https://forem.com/bmvantunes/please-don-t-mock-swr-fetch-or-axios-in-your-unit-integration-tests-521k</link>
      <guid>https://forem.com/bmvantunes/please-don-t-mock-swr-fetch-or-axios-in-your-unit-integration-tests-521k</guid>
      <description>&lt;p&gt;Please don't mock SWR, Fetch or Axios in your unit/integration tests.&lt;/p&gt;

&lt;p&gt;In this video you will learn how to test components that use "useSWR" without doing jest.mock("swr") or jest.mock("axios") or jest.spyOn(window, 'fetch') in order to give you more confidence on your tests :)&lt;/p&gt;

&lt;p&gt;We are going to use MSW (Mock Service Worker) in order to mock the HTTP call itself, not your favorite fetching library&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/FggwAN76lM0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>testing</category>
      <category>jest</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>XSS Attack - Is your Application Vulnerable? - npm packages can make you vulnerable!!!</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Wed, 09 Jun 2021 19:32:32 +0000</pubDate>
      <link>https://forem.com/bmvantunes/xss-attack-is-your-application-vulnerable-npm-packages-can-make-you-vulnerable-g1</link>
      <guid>https://forem.com/bmvantunes/xss-attack-is-your-application-vulnerable-npm-packages-can-make-you-vulnerable-g1</guid>
      <description>&lt;p&gt;In this video I'll show you a XSS attack and how you can protect your applications.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HfxYlrOR26k"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted websites. XSS attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end user. Flaws that allow these attacks to succeed are quite widespread and occur anywhere a web application uses input from a user within the output it generates without validating or encoding it.&lt;/p&gt;

</description>
      <category>xss</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Fully automated npm publish using GitHub Actions and Semantic Release</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Wed, 12 May 2021 21:21:15 +0000</pubDate>
      <link>https://forem.com/bmvantunes/fully-automated-npm-publish-using-github-actions-and-semantic-release-2i7c</link>
      <guid>https://forem.com/bmvantunes/fully-automated-npm-publish-using-github-actions-and-semantic-release-2i7c</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/QZdY4XYbqLI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;From their docs:&lt;br&gt;
Fully automated release!!! semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.&lt;/p&gt;

&lt;p&gt;This removes the immediate connection between human emotions and version numbers, strictly following the Semantic Versioning specification.&lt;/p&gt;

&lt;p&gt;semantic-release is meant to be executed on the CI environment after every successful build on the release branch. This way no human is directly involved in the release process and the releases are guaranteed to be unromantic and unsentimental.&lt;/p&gt;

&lt;p&gt;GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub.&lt;/p&gt;

</description>
      <category>react</category>
      <category>tsdx</category>
      <category>library</category>
      <category>npm</category>
    </item>
    <item>
      <title>Publish to NPM: React component library - the easy way</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Thu, 06 May 2021 13:16:50 +0000</pubDate>
      <link>https://forem.com/bmvantunes/publish-to-npm-react-component-library-the-easy-way-11e</link>
      <guid>https://forem.com/bmvantunes/publish-to-npm-react-component-library-the-easy-way-11e</guid>
      <description>&lt;p&gt;If you have ever thought about publishing a react/typescript package to NPM and found it a complicated task, this video is for you :)&lt;/p&gt;

&lt;p&gt;In this video I show the easiest and fastest way I know to create and publish a react component library to NPM. The "magic" sauce for this is tsdx! &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aVFasPXkyRE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>tsdx</category>
      <category>library</category>
      <category>npm</category>
    </item>
    <item>
      <title>React.js TypeScript Conditional Props - Props that depend on other Props</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Wed, 31 Mar 2021 10:16:54 +0000</pubDate>
      <link>https://forem.com/bmvantunes/react-js-typescript-conditional-props-props-that-depend-on-other-props-2i5i</link>
      <guid>https://forem.com/bmvantunes/react-js-typescript-conditional-props-props-that-depend-on-other-props-2i5i</guid>
      <description>&lt;p&gt;Ever wondered how to make one prop depend or affect the value of another prop in React.js and TypeScript? &lt;/p&gt;

&lt;p&gt;You can find the answer in this video 😊&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vXh4PFwZFGI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Next.js API Routes Validation with YUP</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Thu, 11 Mar 2021 11:10:16 +0000</pubDate>
      <link>https://forem.com/bmvantunes/next-js-api-routes-validation-with-yup-1nd9</link>
      <guid>https://forem.com/bmvantunes/next-js-api-routes-validation-with-yup-1nd9</guid>
      <description>&lt;p&gt;In this video we will add validation to our Next.js API Routes using YUP. In order to achieve that in a simple and reusable way we will create a validation middleware that uses YUP for schema validation.&lt;/p&gt;

&lt;p&gt;Because we are using YUP, we can now share our validations across front-end and back-end. Form libraries like formik and react-hook-form work very well with YUP.&lt;/p&gt;

&lt;p&gt;I hope you enjoy the video :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ZG7sLbI8kL8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>apiroutes</category>
      <category>typescript</category>
      <category>middleware</category>
    </item>
    <item>
      <title>React File Upload with drag-n-drop and progress bar</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Thu, 25 Feb 2021 12:46:20 +0000</pubDate>
      <link>https://forem.com/bmvantunes/react-file-upload-with-drag-n-drop-and-progress-bar-2k0m</link>
      <guid>https://forem.com/bmvantunes/react-file-upload-with-drag-n-drop-and-progress-bar-2k0m</guid>
      <description>&lt;p&gt;I published a video explaining how to create a multiple file upload using react. &lt;/p&gt;

&lt;p&gt;In the video I explained some of the common problems people face when deploying to vercel, netlify, aws lambda and heroku.&lt;/p&gt;

&lt;p&gt;To solve those problems I recommend some solutions in the video like Amazon S3, Azure blob storage, cloudinary, imgx, etc. &lt;/p&gt;

&lt;p&gt;We will use cloudinary because they offer a free demo account, which is great! :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/MAw0lQKqjRA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Nextjs Image Component</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Thu, 24 Dec 2020 12:31:04 +0000</pubDate>
      <link>https://forem.com/bmvantunes/nextjs-image-component-c4n</link>
      <guid>https://forem.com/bmvantunes/nextjs-image-component-c4n</guid>
      <description>&lt;p&gt;Hello developers :)&lt;/p&gt;

&lt;p&gt;I launched a new video with my favourite feature in Nextjs 10, the Nextjs Image Component.&lt;/p&gt;

&lt;p&gt;With this new Next.js Image component we can resize and optimize images. We can also serve images in newer and more optimized formats, like webp!&lt;/p&gt;

&lt;p&gt;In the video I also explain srcset and sizes - very important for how this Next.js Image component works, by using the srcset and sizes from the "img" HMTL tag&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/R4sdWUI3-mY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>image</category>
    </item>
    <item>
      <title>React.js and TypeScript (Components + Props)</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Tue, 06 Oct 2020 18:06:27 +0000</pubDate>
      <link>https://forem.com/bmvantunes/react-js-and-typescript-components-props-4bda</link>
      <guid>https://forem.com/bmvantunes/react-js-and-typescript-components-props-4bda</guid>
      <description>&lt;p&gt;In this video I'll show you how to take advantage of TypeScript to improve your productivity creating/consuming components.&lt;/p&gt;

&lt;p&gt;This is an introduction video to TypeScript in React.js&lt;/p&gt;

&lt;p&gt;I hope you find it helpful.&lt;/p&gt;

&lt;p&gt;Let me know what you think :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0cXccUew19k"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>react</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Next.js Incremental Static Regeneration - ISR</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Sat, 22 Aug 2020 10:17:34 +0000</pubDate>
      <link>https://forem.com/bmvantunes/next-js-incremental-static-regeneration-isr-k5n</link>
      <guid>https://forem.com/bmvantunes/next-js-incremental-static-regeneration-isr-k5n</guid>
      <description>&lt;p&gt;New video about Incremental Static Regeneration a new feature in Next.js 9.5 :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/yGuN_9rng6o"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>react</category>
    </item>
    <item>
      <title>In this video, we will create a dynamic dropdown dependent on another dropdown value</title>
      <dc:creator>Bruno Antunes</dc:creator>
      <pubDate>Sat, 16 May 2020 10:45:39 +0000</pubDate>
      <link>https://forem.com/bmvantunes/in-this-video-we-will-create-a-dynamic-dropdown-dependent-on-another-dropdown-value-866</link>
      <guid>https://forem.com/bmvantunes/in-this-video-we-will-create-a-dynamic-dropdown-dependent-on-another-dropdown-value-866</guid>
      <description>&lt;p&gt;When the "make" dropdown changes, an HTTP call is performed to load all the models available for the selected "make" dropdown. With the result of the HTTP call, we populate the model dropdown.&lt;/p&gt;

&lt;p&gt;We are going to use Formik and SWR.&lt;/p&gt;

&lt;p&gt;I hope you find this helpful. Please let me know any feedback you may have :)&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6FKSqWmZ5Ec"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>react</category>
      <category>nextjs</category>
    </item>
  </channel>
</rss>
