<?xml version="1.0" encoding="UTF-8"?><oembed><type>video</type><version>1.0</version><html>&lt;iframe src=&quot;https://www.loom.com/embed/40fefa62e22642208b126354fedaac18&quot; frameborder=&quot;0&quot; width=&quot;1920&quot; height=&quot;1440&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;</html><height>1440</height><width>1920</width><provider_name>Loom</provider_name><provider_url>https://www.loom.com</provider_url><thumbnail_height>1440</thumbnail_height><thumbnail_width>1920</thumbnail_width><thumbnail_url>https://cdn.loom.com/os/loom-media-content/loom/256a07c5-dbe8-4a09-b71b-ca1421e410e5/bec123eb-bd25-4dad-b8f1-2bd213ef080e/sessions-thumbnails-40fefa62e22642208b126354fedaac18-a17ea579af03c9e8.gif/binary?authToken=eyJraWQiOiJtaWNyb3MtZ3JvdXAvdGRwLW9zLWFyY2hldHlwZS9icHVhNTdua2JmZDhvb3QwIiwiYWxnIjoiUlMyNTYifQ.eyJicyI6Imxvb20tbWVkaWEtY29udGVudCIsImF1ZCI6InRkcC1vcy1hcmNoZXR5cGUiLCJuYmYiOjE3ODk5MTM5NjEsInRpIjoiMmQzYmE1YTMtZTA3NS00YzhiLTgzMzItZWI1NDE0YzNiYzdiIiwiYWRpIjoibG9vbS9sb29tIiwiaXNzIjoibWljcm9zLWdyb3VwL3RkcC1vcy1hcmNoZXR5cGUiLCJwaWQiOiIwZjg2YmE5OS03NjhlLTQyYWEtOWQ2OC0xYWM0NTI0NWNiNTgiLCJ3YSI6ImZhbHNlIiwib2lkIjoic2Vzc2lvbnMtdGh1bWJuYWlscy00MGZlZmE2MmUyMjY0MjIwOGIxMjYzNTRmZWRhYWMxOC1hMTdlYTU3OWFmMDNjOWU4LmdpZiIsImV4cCI6MTc4OTkxNDU2MSwiaWF0IjoxNzg5OTEzOTYxLCJqdGkiOiI2YzJhNDc2ZC1iMTM3LTQ3ZWEtYTVkMC1hNmMwNDVlNzNiMzMifQ.fSidN4wUevhy1Ry9XoGMfH0aLRgvSUdd-fXrjTMLfdPpW-fk97u4kceX16JZA451W1bTEHHvJaJlQ0K2a5U2U8ycXabfEDNIOUHnAT1niraSXg2NUnp1bh-FC2Wamz9OiWWJ7eYo49UkIQvFQnV1H2_iVsB7vrnJURLgFEwYwgUdC8YWZG8WrgueyxSEIK4vA0r1PTRdesmruG6A0decnhfu2CfUetuRCfC5qwCvGOBhUgJdA_SO_pHOrYzsFFYVoxPRwBtz9OlNBVZ9y-vgwE8ngtzXUiOAaiM_pY9vQzXJGePcceu1X7O-p7OUg8fPkoeHrV0Jc-AEuNeMo4GZow&amp;Expires=1789914561&amp;Signature=aApDK4-O0x9ivYrKhCtIM9LfsIJKCk%7EkAfAfIT4DyXlHd-Uxx4dgK%7ENimyjuZyTNE1fzjffqL64xfRNsftjvZ7iao%7EuoDWuEgyhoEPl2UzcUWom5w3MW15ruzsCAfbLVDiVKndDKpCOdoVB6iEfgkdAGOYNZ6fXcloDIbwUi2mzufOfBs0B9bdo10tIsNf3t6EDfDXBqojHfbCwLhkubY-Elku2W8UTiefiMHlg9w10WqujDWaLIzNTjzHlYSYBB7P6yZeizaxhVidzoyz8PZmm3lBiqlhz2GiixCbs012p1XPKwqcFlYKb8pqIhAKLnuWtZ4XR32bYfQEJchc7XRw__&amp;Key-Pair-Id=KQOSYIR44AIC0</thumbnail_url><duration>1215.874</duration><title>Mission 6 React Dashboard Auth and Modals</title><description>This Loom demonstrates a React dashboard login and authorization flow with persistent state using context and local storage. The presenter shows how the app blocks entry with random credentials but routes to the dashboard using hardcoded login details, then explains the auth context provider and the custom useLocalStorage hook that keeps login state synced across components and survives refresh. The dashboard uses requireAuth to guard the /dashboard route, provides logout that clears local storage, and includes filters and device cards. Finally, it covers a video modal with YouTube live streams for two cameras and notes two modal bugs fixed with event stopPropagation and using an embed link with autoplay permissions.</description></oembed>