{"id":10040,"date":"2021-12-02T12:02:00","date_gmt":"2021-12-02T11:02:00","guid":{"rendered":"https:\/\/vived.io\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/"},"modified":"2022-09-19T13:16:34","modified_gmt":"2022-09-19T11:16:34","slug":"frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/","title":{"rendered":"Frontend Thursday vol. 66 &#8211; Storybook 6.4, Cloudflare Pages i Svelte Summit"},"content":{"rendered":"\n<h2 id=\"1-advent-of-code-react-advent-ionicember\" data-num=1>1. Advent of Code, React Advent, Ionicember<\/h2>\n\n\n\n<p>Z jakiego\u015b powodu Programi\u015bci w oczekiwaniu na \u015awi\u0119ta Bo\u017cego Narodzenia umi\u0142owali sobie doskonalenie swoich umiej\u0119tno\u015bci. Wczoraj wystartowa\u0142a moja ulubiona akcja programistyczna na przestrzeni roku, czyli <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Lubi\u0119 j\u0105 do tego stopnia, \u017ce napisa\u0142em o niej blogpost, kt\u00f3ry mo\u017cecie przeczyta\u0107 <a href=\"https:\/\/vived.io\/advent-of-code-2021-with-vived\/\">tutaj<\/a>. Je\u015bli r\u00f3wnie\u017c bawicie si\u0119 w tym roku w \u015bwi\u0105teczne \u0142amig\u0142\u00f3wki, to zapraszamy do leaderboarda (join code: 1550550-c19ac226) oraz na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"775\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/6t5bamofkk181.png\" alt=\"\" class=\"wp-image-3309\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/6t5bamofkk181.png 620w, https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/6t5bamofkk181-240x300.png 240w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><figcaption>Oj co\u015b czuj\u0119, \u017ce w tym roku b\u0119dzie podobnie<br>(\u0179r\u00f3d\u0142o: https:\/\/www.reddit.com\/r\/ProgrammerHumor\/comments\/r18x82\/i_just_cant_resist\/)<\/figcaption><\/figure><\/div>\n\n\n\n<p>Advent of Code to nie jedyna akcja jaka wystartowa\u0142a z pocz\u0105tkiem grudnia. Je\u015bli chcecie troch\u0119 popracowa\u0107 nad swoj\u0105 znajomo\u015bci\u0105 Reacta, to pierwszego grudnia wystartowa\u0142a mailingowa akcja <a href=\"https:\/\/react.holiday\/\">React Holiday<\/a>. W jej ramach codziennie na maila dostawa\u0107 b\u0119dziecie jedn\u0105 kr\u00f3tk\u0105 lekcj\u0119 na temat frameworka od Meta (to ju\u017c prawie miesi\u0105c od zmiany nazwy, ale ci\u0105gle jako\u015b ci\u0119\u017cko przechodzi mi to przez gard\u0142o).<\/p>\n\n\n\n<p>Je\u015bli jeste\u015bcie zainteresowani technologiami hybrydowymi to na stronie <a href=\"https:\/\/ionicember.com\/\">Ionicember<\/a> codziennie znajdziecie nowy tutorial pokazuj\u0105cy kolejn\u0105 funkcjonalno\u015b\u0107 Ionica. Za przygotowanie kalendarza odpowiedzialny jest Simon Grimm, kt\u00f3ry jest rozpoznawaln\u0105 postaci\u0105 w spo\u0142eczno\u015bci Ionica.<\/p>\n\n\n\n<p>Na deser zostawi\u0142em sobie akcj\u0119 <a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">24 days from node.js to Rust<\/a>. W jej ramach osoby znaj\u0105ce backendowy javascript b\u0119d\u0105 mia\u0142y okazj\u0119 pozna\u0107 Rusta. Jak si\u0119 ju\u017c pewnie domy\u015blacie, codziennie mo\u017cecie spodziewa\u0107 si\u0119 kolejnego ma\u0142ego kawa\u0142ka wiedzy.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download.jpeg\" alt=\"\" class=\"wp-image-3325\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download-300x300.jpeg 300w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download-150x150.jpeg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><figcaption>Mem autorstwa mojej \u017bony &#8211; jednak programi\u015bci to specyficzna grupa spo\u0142eczna<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/<br><\/a><a href=\"https:\/\/ionicember.com\/\">https:\/\/ionicember.com\/<\/a><br><a href=\"https:\/\/adventofcode.com\/\">https:\/\/adventofcode.com\/<\/a><br><a href=\"https:\/\/react.holiday\/\">https:\/\/react.holiday\/<\/a><\/p>\n\n\n\n<h2 id=\"2-storybook-6-4\" data-num=2>2. Storybook 6.4<\/h2>\n\n\n\n<p>Storybook w ci\u0105gu ostatnich tygodni zaprezentowa\u0142 kilka naprawd\u0119 ciekawych koncepcji, kt\u00f3re \u0142\u0105czy\u0142o jedno &#8211; mia\u0142y sta\u0107 si\u0119 dost\u0119pne w wersji 6.4. W miniony wtorek wreszcie doczekali\u015bmy si\u0119 jej publikacji!<\/p>\n\n\n\n<p>Do tej pory Storybook \u015bwietnie sprawdza\u0142 si\u0119 do prezentowania bezstanowych komponent\u00f3w. Od wersji 6.4 r\u00f3wnie dobrze b\u0119dzie radzi\u0142 sobie r\u00f3wnie\u017c z prezentowaniem komponent\u00f3w ze stanem, dzi\u0119ki interaktywnych stories. Z ich pomoc\u0105 mo\u017cliwe b\u0119dzie odtworzenie interakcji z komponentem przy pomocy popularnego Testing Library.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">import React from &#039;react&#039;;\nimport { within, fireEvent } from &#039;@storybook\/testing-library&#039;;\nimport { DeleteCustomerDialog } from &#039;.\/DeleteCustomerDialog&#039;;\n \nexport default {\n  component: DeleteCustomerDialog,\n  title: &#039;DeleteCustomerDialog&#039;,\n};\n \nexport const OpenDialog = () =&gt; &lt;DeleteCustomerDialog \/&gt;;\nOpenDialog.play = async ({ canvasElement }) =&gt; {\n  const canvas = within(canvasElement);\n  await fireEvent.click(\n    canvas.getByRole(&#039;button&#039;, { name: &#039;Delete Customer&#039; })\n  );\n};<\/code><\/pre>\n\n\n\n<p>Nowa wersja wprowadza r\u00f3wnie\u017c trzykrotne przyspieszenie kompilacji. Pod tym dobrze sformu\u0142owanym has\u0142em marketingowym kryje si\u0119 podzielenie paczki generowanej przez Storybooka na mniejsze kawa\u0142ki, z kt\u00f3rych ka\u017cdy zawiera pojedynczy story. W trybie deweloperskim nie dostrze\u017cemy wi\u0119c wi\u0119kszej r\u00f3\u017cnicy, ale klienci naszego Storybooka na pewno doceni\u0105 optymalizacj\u0119.<\/p>\n\n\n\n<p>Obiecuj\u0105co wygl\u0105da te\u017c towarzysz\u0105ce temu wydaniu narz\u0119dzie do automatycznej migracji. Na razie w dokumentacji znajdziemy g\u0142\u00f3wnie wsparcie dla migracji z Webpack 4 do Webpack 5, ale ja po cichu licz\u0119, \u017ce w przysz\u0142o\u015bci dostaniemy wsparcie dla migrowania format\u00f3w stories.<\/p>\n\n\n\n<p>Na koniec warto jeszcze wspomnie\u0107, \u017ce nareszcie mo\u017cna u\u017cywa\u0107 Storybooka wraz z Angularem 13 i react-router 6. React Native natomiast otrzyma\u0142 te\u017c wsparcie dla renderowania komponent\u00f3w w przegl\u0105darce przy wykorzystaniu React Native Web.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/storybook.js.org\/blog\/storybook-6-4\/\">https:\/\/storybook.js.org\/blog\/storybook-6-4\/<\/a><\/p>\n\n\n\n<h2 id=\"3-cloudflare-pages-goes-full-stack\" data-num=3>3. Cloudflare Pages Goes Full Stack<\/h2>\n\n\n\n<p>W zesz\u0142ym tygodniu m\u00f3wi\u0142em Wam, \u017ce renderowanie po stronie serwera b\u0119dzie w nadchodz\u0105cych miesi\u0105cach gor\u0105cym tematem. W tym tygodniu kontynuujemy ten trend, bo Cloudflare Pages otrzyma\u0142y wsparcie dla dynamicznych funkcji.<\/p>\n\n\n\n<p>Je\u015bli nie kojarzycie Cloudflare, to jest to firma z jedn\u0105 z najwi\u0119kszych infrastruktur CDN. Cloudflare Pages jest rozwi\u0105zaniem umo\u017cliwiaj\u0105cym hostowanie statycznych stron z wykorzystaniem tej infrastruktury. Dzi\u0119ki niesamowicie szybkim czasom odpowiedzi by\u0142o to bardzo popularne rozwi\u0105zanie dla aplikacji typu jamstack.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"750\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9kqm-2.jpeg\" alt=\"\" class=\"wp-image-3328\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9kqm-2.jpeg 500w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9kqm-2-200x300.jpeg 200w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n\n<p>Do statycznych tre\u015bci do\u0142\u0105czaj\u0105 teraz dynamiczne funkcje. Otwiera to drog\u0119 do wsparcia dla Server Side Renderingu i czekam na pierwsze aplikacje serwowane na takiej infrastrukturze. W Out of The box dostali\u015bmy wsparcie dla Svelte-Kit, co jest mocno interesuj\u0105ce w kontek\u015bcie tw\u00f3rcy Svelte do\u0142\u0105czaj\u0105cego do firmy odpowiedzialnej za Next.js. Szykuje nam si\u0119 zaci\u0119ta konkurencja w kategorii chmur dla Server Side Renderingu.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Filepath:  \/functions\/hello.js\n\/\/ GET requests to \/hello would return &quot;Hello, world!&quot;\nexport const onRequestGet = () =&gt; {\n  return new Response(&quot;Hello, world!&quot;)\n}\n\n\/\/ POST requests to \/hello with a JSON-encoded body would return &quot;Hello, &lt;name&gt;!&quot;\nexport const onRequestPost = async ({ request }) =&gt; {\n  const { name } = await request.json()\n  return new Response(`Hello, ${name}!`)\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/<br><\/a><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/<\/a><\/p>\n\n\n\n<h2 id=\"4-svelte-summit\" data-num=4>4. Svelte Summit<\/h2>\n\n\n\n<p>W minionym tygodniu mia\u0142a miejsce chyba najwi\u0119ksza konferencja dotycz\u0105ce Svelte. Nagrania z niej trafi\u0142y do sieci i patrz\u0105c po tytu\u0142ach co\u015b dla siebie znajd\u0105 tutaj zar\u00f3wno pocz\u0105tkuj\u0105cy adepci Svelte jak i starzy wyjadacze.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"embed-responsive embed-responsive-16by9\"><iframe loading=\"lazy\" title=\"Svelte Summit Fall 2021\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/1Df-9EKvZr0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"488\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9l4f.jpeg\" alt=\"\" class=\"wp-image-3329\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9l4f.jpeg 512w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9l4f-300x286.jpeg 300w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a:<\/h3>\n\n\n\n<p><a href=\"https:\/\/sveltesummit.com\/#intro\">https:\/\/sveltesummit.com\/#intro<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Na koniec ponownie zapraszam do naszego leaderboarda <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a> (join code: 1550550-c19ac226) i na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>. I to nie jest chamska reklama &#8211; ja po prostu uwielbiam t\u0105 inicjatyw\u0119 \ud83d\ude05<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"500\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v.jpeg\" alt=\"\" class=\"wp-image-3330\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v.jpeg 779w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v-300x193.jpeg 300w, https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v-768x493.jpeg 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u015awi\u0119ta powoli czu\u0107 ju\u017c w powietrzu, wi\u0119c w tym tygodniu wystartowa\u0142a ca\u0142a masa programistycznych inicjatyw, kt\u00f3re umil\u0105 Wam oczekiwanie \ud83c\udf84. Opr\u00f3cz tego doczekali\u015bmy si\u0119 Storybook 6.4 i Cloudflare Pages dosta\u0142o wsparcie dla dynamicznych funkcji. Zak\u0142adajcie \u015bwi\u0105teczny sweter \ud83e\udde5, bierzcie kubek  herbaty w d\u0142o\u0144 \u2615\ufe0f i zapraszamy do lektury \ud83d\uddde<\/p>\n","protected":false},"author":12,"featured_media":7752,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-10040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"push_notification_image":"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download.png","estimated_reading_time":"4","feature_image_visible":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived\" \/>\n<meta property=\"og:description\" content=\"\u015awi\u0119ta powoli czu\u0107 ju\u017c w powietrzu, wi\u0119c w tym tygodniu wystartowa\u0142a ca\u0142a masa programistycznych inicjatyw, kt\u00f3re umil\u0105 Wam oczekiwanie \ud83c\udf84. Opr\u00f3cz tego doczekali\u015bmy si\u0119 Storybook 6.4 i Cloudflare Pages dosta\u0142o wsparcie dla dynamicznych funkcji. Zak\u0142adajcie \u015bwi\u0105teczny sweter \ud83e\udde5, bierzcie kubek herbaty w d\u0142o\u0144 \u2615\ufe0f i zapraszamy do lektury \ud83d\uddde\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-02T11:02:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-02-at-11.59.23.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1002\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-02-at-11.59.23-1.png\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Frontend Thursday vol. 66 &#8211; Storybook 6.4, Cloudflare Pages i Svelte Summit\",\"datePublished\":\"2021-12-02T11:02:00+00:00\",\"dateModified\":\"2022-09-19T11:16:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\"},\"wordCount\":800,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\",\"url\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\",\"name\":\"Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png\",\"datePublished\":\"2021-12-02T11:02:00+00:00\",\"dateModified\":\"2022-09-19T11:16:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png\",\"width\":2000,\"height\":1210},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursday vol. 66 &#8211; Storybook 6.4, Cloudflare Pages i Svelte Summit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived","og_description":"\u015awi\u0119ta powoli czu\u0107 ju\u017c w powietrzu, wi\u0119c w tym tygodniu wystartowa\u0142a ca\u0142a masa programistycznych inicjatyw, kt\u00f3re umil\u0105 Wam oczekiwanie \ud83c\udf84. Opr\u00f3cz tego doczekali\u015bmy si\u0119 Storybook 6.4 i Cloudflare Pages dosta\u0142o wsparcie dla dynamicznych funkcji. Zak\u0142adajcie \u015bwi\u0105teczny sweter \ud83e\udde5, bierzcie kubek herbaty w d\u0142o\u0144 \u2615\ufe0f i zapraszamy do lektury \ud83d\uddde","og_url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/","og_site_name":"Vived","article_published_time":"2021-12-02T11:02:00+00:00","article_modified_time":"2022-09-19T11:16:34+00:00","og_image":[{"width":1920,"height":1002,"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-02-at-11.59.23.png","type":"image\/png"}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","twitter_image":"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/Screenshot-2021-12-02-at-11.59.23-1.png","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Frontend Thursday vol. 66 &#8211; Storybook 6.4, Cloudflare Pages i Svelte Summit","datePublished":"2021-12-02T11:02:00+00:00","dateModified":"2022-09-19T11:16:34+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/"},"wordCount":800,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png","articleSection":["Frontend"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/","url":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/","name":"Frontend Thursday vol. 66 - Storybook 6.4, Cloudflare Pages i Svelte Summit - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png","datePublished":"2021-12-02T11:02:00+00:00","dateModified":"2022-09-19T11:16:34+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/10\/cat-frontent.png","width":2000,"height":1210},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursday-vol-66-storybook-6-4-cloudflare-pages-i-svelte-summit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursday vol. 66 &#8211; Storybook 6.4, Cloudflare Pages i Svelte Summit"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Advent of Code, React Advent, Ionicember<\/h2>\n","innerContent":["\n<h2>1. Advent of Code, React Advent, Ionicember<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Z jakiego\u015b powodu Programi\u015bci w oczekiwaniu na \u015awi\u0119ta Bo\u017cego Narodzenia umi\u0142owali sobie doskonalenie swoich umiej\u0119tno\u015bci. Wczoraj wystartowa\u0142a moja ulubiona akcja programistyczna na przestrzeni roku, czyli <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Lubi\u0119 j\u0105 do tego stopnia, \u017ce napisa\u0142em o niej blogpost, kt\u00f3ry mo\u017cecie przeczyta\u0107 <a href=\"https:\/\/vived.io\/advent-of-code-2021-with-vived\/\">tutaj<\/a>. Je\u015bli r\u00f3wnie\u017c bawicie si\u0119 w tym roku w \u015bwi\u0105teczne \u0142amig\u0142\u00f3wki, to zapraszamy do leaderboarda (join code: 1550550-c19ac226) oraz na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>.<\/p>\n","innerContent":["\n<p>Z jakiego\u015b powodu Programi\u015bci w oczekiwaniu na \u015awi\u0119ta Bo\u017cego Narodzenia umi\u0142owali sobie doskonalenie swoich umiej\u0119tno\u015bci. Wczoraj wystartowa\u0142a moja ulubiona akcja programistyczna na przestrzeni roku, czyli <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a>. Lubi\u0119 j\u0105 do tego stopnia, \u017ce napisa\u0142em o niej blogpost, kt\u00f3ry mo\u017cecie przeczyta\u0107 <a href=\"https:\/\/vived.io\/advent-of-code-2021-with-vived\/\">tutaj<\/a>. Je\u015bli r\u00f3wnie\u017c bawicie si\u0119 w tym roku w \u015bwi\u0105teczne \u0142amig\u0142\u00f3wki, to zapraszamy do leaderboarda (join code: 1550550-c19ac226) oraz na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3309,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/6t5bamofkk181.png\" alt=\"\" class=\"wp-image-3309\"\/><figcaption>Oj co\u015b czuj\u0119, \u017ce w tym roku b\u0119dzie podobnie<br>(\u0179r\u00f3d\u0142o: https:\/\/www.reddit.com\/r\/ProgrammerHumor\/comments\/r18x82\/i_just_cant_resist\/)<\/figcaption><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/6t5bamofkk181.png\" alt=\"\" class=\"wp-image-3309\"\/><figcaption>Oj co\u015b czuj\u0119, \u017ce w tym roku b\u0119dzie podobnie<br>(\u0179r\u00f3d\u0142o: https:\/\/www.reddit.com\/r\/ProgrammerHumor\/comments\/r18x82\/i_just_cant_resist\/)<\/figcaption><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Advent of Code to nie jedyna akcja jaka wystartowa\u0142a z pocz\u0105tkiem grudnia. Je\u015bli chcecie troch\u0119 popracowa\u0107 nad swoj\u0105 znajomo\u015bci\u0105 Reacta, to pierwszego grudnia wystartowa\u0142a mailingowa akcja <a href=\"https:\/\/react.holiday\/\">React Holiday<\/a>. W jej ramach codziennie na maila dostawa\u0107 b\u0119dziecie jedn\u0105 kr\u00f3tk\u0105 lekcj\u0119 na temat frameworka od Meta (to ju\u017c prawie miesi\u0105c od zmiany nazwy, ale ci\u0105gle jako\u015b ci\u0119\u017cko przechodzi mi to przez gard\u0142o).<\/p>\n","innerContent":["\n<p>Advent of Code to nie jedyna akcja jaka wystartowa\u0142a z pocz\u0105tkiem grudnia. Je\u015bli chcecie troch\u0119 popracowa\u0107 nad swoj\u0105 znajomo\u015bci\u0105 Reacta, to pierwszego grudnia wystartowa\u0142a mailingowa akcja <a href=\"https:\/\/react.holiday\/\">React Holiday<\/a>. W jej ramach codziennie na maila dostawa\u0107 b\u0119dziecie jedn\u0105 kr\u00f3tk\u0105 lekcj\u0119 na temat frameworka od Meta (to ju\u017c prawie miesi\u0105c od zmiany nazwy, ale ci\u0105gle jako\u015b ci\u0119\u017cko przechodzi mi to przez gard\u0142o).<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli jeste\u015bcie zainteresowani technologiami hybrydowymi to na stronie <a href=\"https:\/\/ionicember.com\/\">Ionicember<\/a> codziennie znajdziecie nowy tutorial pokazuj\u0105cy kolejn\u0105 funkcjonalno\u015b\u0107 Ionica. Za przygotowanie kalendarza odpowiedzialny jest Simon Grimm, kt\u00f3ry jest rozpoznawaln\u0105 postaci\u0105 w spo\u0142eczno\u015bci Ionica.<\/p>\n","innerContent":["\n<p>Je\u015bli jeste\u015bcie zainteresowani technologiami hybrydowymi to na stronie <a href=\"https:\/\/ionicember.com\/\">Ionicember<\/a> codziennie znajdziecie nowy tutorial pokazuj\u0105cy kolejn\u0105 funkcjonalno\u015b\u0107 Ionica. Za przygotowanie kalendarza odpowiedzialny jest Simon Grimm, kt\u00f3ry jest rozpoznawaln\u0105 postaci\u0105 w spo\u0142eczno\u015bci Ionica.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na deser zostawi\u0142em sobie akcj\u0119 <a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">24 days from node.js to Rust<\/a>. W jej ramach osoby znaj\u0105ce backendowy javascript b\u0119d\u0105 mia\u0142y okazj\u0119 pozna\u0107 Rusta. Jak si\u0119 ju\u017c pewnie domy\u015blacie, codziennie mo\u017cecie spodziewa\u0107 si\u0119 kolejnego ma\u0142ego kawa\u0142ka wiedzy.<\/p>\n","innerContent":["\n<p>Na deser zostawi\u0142em sobie akcj\u0119 <a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">24 days from node.js to Rust<\/a>. W jej ramach osoby znaj\u0105ce backendowy javascript b\u0119d\u0105 mia\u0142y okazj\u0119 pozna\u0107 Rusta. Jak si\u0119 ju\u017c pewnie domy\u015blacie, codziennie mo\u017cecie spodziewa\u0107 si\u0119 kolejnego ma\u0142ego kawa\u0142ka wiedzy.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3325,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download.jpeg\" alt=\"\" class=\"wp-image-3325\"\/><figcaption>Mem autorstwa mojej \u017bony - jednak programi\u015bci to specyficzna grupa spo\u0142eczna<\/figcaption><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/download.jpeg\" alt=\"\" class=\"wp-image-3325\"\/><figcaption>Mem autorstwa mojej \u017bony - jednak programi\u015bci to specyficzna grupa spo\u0142eczna<\/figcaption><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/<br><\/a><a href=\"https:\/\/ionicember.com\/\">https:\/\/ionicember.com\/<\/a><br><a href=\"https:\/\/adventofcode.com\/\">https:\/\/adventofcode.com\/<\/a><br><a href=\"https:\/\/react.holiday\/\">https:\/\/react.holiday\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/\">https:\/\/vino.dev\/blog\/node-to-rust-day-1-rustup\/<br><\/a><a href=\"https:\/\/ionicember.com\/\">https:\/\/ionicember.com\/<\/a><br><a href=\"https:\/\/adventofcode.com\/\">https:\/\/adventofcode.com\/<\/a><br><a href=\"https:\/\/react.holiday\/\">https:\/\/react.holiday\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Storybook 6.4<\/h2>\n","innerContent":["\n<h2>2. Storybook 6.4<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Storybook w ci\u0105gu ostatnich tygodni zaprezentowa\u0142 kilka naprawd\u0119 ciekawych koncepcji, kt\u00f3re \u0142\u0105czy\u0142o jedno - mia\u0142y sta\u0107 si\u0119 dost\u0119pne w wersji 6.4. W miniony wtorek wreszcie doczekali\u015bmy si\u0119 jej publikacji!<\/p>\n","innerContent":["\n<p>Storybook w ci\u0105gu ostatnich tygodni zaprezentowa\u0142 kilka naprawd\u0119 ciekawych koncepcji, kt\u00f3re \u0142\u0105czy\u0142o jedno - mia\u0142y sta\u0107 si\u0119 dost\u0119pne w wersji 6.4. W miniony wtorek wreszcie doczekali\u015bmy si\u0119 jej publikacji!<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Do tej pory Storybook \u015bwietnie sprawdza\u0142 si\u0119 do prezentowania bezstanowych komponent\u00f3w. Od wersji 6.4 r\u00f3wnie dobrze b\u0119dzie radzi\u0142 sobie r\u00f3wnie\u017c z prezentowaniem komponent\u00f3w ze stanem, dzi\u0119ki interaktywnych stories. Z ich pomoc\u0105 mo\u017cliwe b\u0119dzie odtworzenie interakcji z komponentem przy pomocy popularnego Testing Library.<\/p>\n","innerContent":["\n<p>Do tej pory Storybook \u015bwietnie sprawdza\u0142 si\u0119 do prezentowania bezstanowych komponent\u00f3w. Od wersji 6.4 r\u00f3wnie dobrze b\u0119dzie radzi\u0142 sobie r\u00f3wnie\u017c z prezentowaniem komponent\u00f3w ze stanem, dzi\u0119ki interaktywnych stories. Z ich pomoc\u0105 mo\u017cliwe b\u0119dzie odtworzenie interakcji z komponentem przy pomocy popularnego Testing Library.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"javascript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">import React from 'react';\nimport { within, fireEvent } from '@storybook\/testing-library';\nimport { DeleteCustomerDialog } from '.\/DeleteCustomerDialog';\n \nexport default {\n  component: DeleteCustomerDialog,\n  title: 'DeleteCustomerDialog',\n};\n \nexport const OpenDialog = () => &lt;DeleteCustomerDialog \/>;\nOpenDialog.play = async ({ canvasElement }) => {\n  const canvas = within(canvasElement);\n  await fireEvent.click(\n    canvas.getByRole('button', { name: 'Delete Customer' })\n  );\n};<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">import React from 'react';\nimport { within, fireEvent } from '@storybook\/testing-library';\nimport { DeleteCustomerDialog } from '.\/DeleteCustomerDialog';\n \nexport default {\n  component: DeleteCustomerDialog,\n  title: 'DeleteCustomerDialog',\n};\n \nexport const OpenDialog = () => &lt;DeleteCustomerDialog \/>;\nOpenDialog.play = async ({ canvasElement }) => {\n  const canvas = within(canvasElement);\n  await fireEvent.click(\n    canvas.getByRole('button', { name: 'Delete Customer' })\n  );\n};<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Nowa wersja wprowadza r\u00f3wnie\u017c trzykrotne przyspieszenie kompilacji. Pod tym dobrze sformu\u0142owanym has\u0142em marketingowym kryje si\u0119 podzielenie paczki generowanej przez Storybooka na mniejsze kawa\u0142ki, z kt\u00f3rych ka\u017cdy zawiera pojedynczy story. W trybie deweloperskim nie dostrze\u017cemy wi\u0119c wi\u0119kszej r\u00f3\u017cnicy, ale klienci naszego Storybooka na pewno doceni\u0105 optymalizacj\u0119.<\/p>\n","innerContent":["\n<p>Nowa wersja wprowadza r\u00f3wnie\u017c trzykrotne przyspieszenie kompilacji. Pod tym dobrze sformu\u0142owanym has\u0142em marketingowym kryje si\u0119 podzielenie paczki generowanej przez Storybooka na mniejsze kawa\u0142ki, z kt\u00f3rych ka\u017cdy zawiera pojedynczy story. W trybie deweloperskim nie dostrze\u017cemy wi\u0119c wi\u0119kszej r\u00f3\u017cnicy, ale klienci naszego Storybooka na pewno doceni\u0105 optymalizacj\u0119.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Obiecuj\u0105co wygl\u0105da te\u017c towarzysz\u0105ce temu wydaniu narz\u0119dzie do automatycznej migracji. Na razie w dokumentacji znajdziemy g\u0142\u00f3wnie wsparcie dla migracji z Webpack 4 do Webpack 5, ale ja po cichu licz\u0119, \u017ce w przysz\u0142o\u015bci dostaniemy wsparcie dla migrowania format\u00f3w stories.<\/p>\n","innerContent":["\n<p>Obiecuj\u0105co wygl\u0105da te\u017c towarzysz\u0105ce temu wydaniu narz\u0119dzie do automatycznej migracji. Na razie w dokumentacji znajdziemy g\u0142\u00f3wnie wsparcie dla migracji z Webpack 4 do Webpack 5, ale ja po cichu licz\u0119, \u017ce w przysz\u0142o\u015bci dostaniemy wsparcie dla migrowania format\u00f3w stories.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na koniec warto jeszcze wspomnie\u0107, \u017ce nareszcie mo\u017cna u\u017cywa\u0107 Storybooka wraz z Angularem 13 i react-router 6. React Native natomiast otrzyma\u0142 te\u017c wsparcie dla renderowania komponent\u00f3w w przegl\u0105darce przy wykorzystaniu React Native Web.<\/p>\n","innerContent":["\n<p>Na koniec warto jeszcze wspomnie\u0107, \u017ce nareszcie mo\u017cna u\u017cywa\u0107 Storybooka wraz z Angularem 13 i react-router 6. React Native natomiast otrzyma\u0142 te\u017c wsparcie dla renderowania komponent\u00f3w w przegl\u0105darce przy wykorzystaniu React Native Web.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/storybook.js.org\/blog\/storybook-6-4\/\">https:\/\/storybook.js.org\/blog\/storybook-6-4\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/storybook.js.org\/blog\/storybook-6-4\/\">https:\/\/storybook.js.org\/blog\/storybook-6-4\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3. Cloudflare Pages Goes Full Stack<\/h2>\n","innerContent":["\n<h2>3. Cloudflare Pages Goes Full Stack<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W zesz\u0142ym tygodniu m\u00f3wi\u0142em Wam, \u017ce renderowanie po stronie serwera b\u0119dzie w nadchodz\u0105cych miesi\u0105cach gor\u0105cym tematem. W tym tygodniu kontynuujemy ten trend, bo Cloudflare Pages otrzyma\u0142y wsparcie dla dynamicznych funkcji.<\/p>\n","innerContent":["\n<p>W zesz\u0142ym tygodniu m\u00f3wi\u0142em Wam, \u017ce renderowanie po stronie serwera b\u0119dzie w nadchodz\u0105cych miesi\u0105cach gor\u0105cym tematem. W tym tygodniu kontynuujemy ten trend, bo Cloudflare Pages otrzyma\u0142y wsparcie dla dynamicznych funkcji.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Je\u015bli nie kojarzycie Cloudflare, to jest to firma z jedn\u0105 z najwi\u0119kszych infrastruktur CDN. Cloudflare Pages jest rozwi\u0105zaniem umo\u017cliwiaj\u0105cym hostowanie statycznych stron z wykorzystaniem tej infrastruktury. Dzi\u0119ki niesamowicie szybkim czasom odpowiedzi by\u0142o to bardzo popularne rozwi\u0105zanie dla aplikacji typu jamstack.<\/p>\n","innerContent":["\n<p>Je\u015bli nie kojarzycie Cloudflare, to jest to firma z jedn\u0105 z najwi\u0119kszych infrastruktur CDN. Cloudflare Pages jest rozwi\u0105zaniem umo\u017cliwiaj\u0105cym hostowanie statycznych stron z wykorzystaniem tej infrastruktury. Dzi\u0119ki niesamowicie szybkim czasom odpowiedzi by\u0142o to bardzo popularne rozwi\u0105zanie dla aplikacji typu jamstack.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3328,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9kqm-2.jpeg\" alt=\"\" class=\"wp-image-3328\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9kqm-2.jpeg\" alt=\"\" class=\"wp-image-3328\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Do statycznych tre\u015bci do\u0142\u0105czaj\u0105 teraz dynamiczne funkcje. Otwiera to drog\u0119 do wsparcia dla Server Side Renderingu i czekam na pierwsze aplikacje serwowane na takiej infrastrukturze. W Out of The box dostali\u015bmy wsparcie dla Svelte-Kit, co jest mocno interesuj\u0105ce w kontek\u015bcie tw\u00f3rcy Svelte do\u0142\u0105czaj\u0105cego do firmy odpowiedzialnej za Next.js. Szykuje nam si\u0119 zaci\u0119ta konkurencja w kategorii chmur dla Server Side Renderingu.<\/p>\n","innerContent":["\n<p>Do statycznych tre\u015bci do\u0142\u0105czaj\u0105 teraz dynamiczne funkcje. Otwiera to drog\u0119 do wsparcia dla Server Side Renderingu i czekam na pierwsze aplikacje serwowane na takiej infrastrukturze. W Out of The box dostali\u015bmy wsparcie dla Svelte-Kit, co jest mocno interesuj\u0105ce w kontek\u015bcie tw\u00f3rcy Svelte do\u0142\u0105czaj\u0105cego do firmy odpowiedzialnej za Next.js. Szykuje nam si\u0119 zaci\u0119ta konkurencja w kategorii chmur dla Server Side Renderingu.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"prismatic\/blocks","attrs":{"language":"javascript"},"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Filepath:  \/functions\/hello.js\n\/\/ GET requests to \/hello would return \"Hello, world!\"\nexport const onRequestGet = () => {\n  return new Response(\"Hello, world!\")\n}\n\n\/\/ POST requests to \/hello with a JSON-encoded body would return \"Hello, &lt;name>!\"\nexport const onRequestPost = async ({ request }) => {\n  const { name } = await request.json()\n  return new Response(`Hello, ${name}!`)\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-javascript\">\/\/ Filepath:  \/functions\/hello.js\n\/\/ GET requests to \/hello would return \"Hello, world!\"\nexport const onRequestGet = () => {\n  return new Response(\"Hello, world!\")\n}\n\n\/\/ POST requests to \/hello with a JSON-encoded body would return \"Hello, &lt;name>!\"\nexport const onRequestPost = async ({ request }) => {\n  const { name } = await request.json()\n  return new Response(`Hello, ${name}!`)\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/<br><\/a><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-goes-full-stack\/<br><\/a><a href=\"https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/\">https:\/\/blog.cloudflare.com\/cloudflare-pages-ga\/<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>4. Svelte Summit<\/h2>\n","innerContent":["\n<h2>4. Svelte Summit<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>W minionym tygodniu mia\u0142a miejsce chyba najwi\u0119ksza konferencja dotycz\u0105ce Svelte. Nagrania z niej trafi\u0142y do sieci i patrz\u0105c po tytu\u0142ach co\u015b dla siebie znajd\u0105 tutaj zar\u00f3wno pocz\u0105tkuj\u0105cy adepci Svelte jak i starzy wyjadacze.<\/p>\n","innerContent":["\n<p>W minionym tygodniu mia\u0142a miejsce chyba najwi\u0119ksza konferencja dotycz\u0105ce Svelte. Nagrania z niej trafi\u0142y do sieci i patrz\u0105c po tytu\u0142ach co\u015b dla siebie znajd\u0105 tutaj zar\u00f3wno pocz\u0105tkuj\u0105cy adepci Svelte jak i starzy wyjadacze.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/embed","attrs":{"url":"https:\/\/www.youtube.com\/watch?v=1Df-9EKvZr0","type":"video","providerNameSlug":"youtube","responsive":true,"className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=1Df-9EKvZr0\n<\/div><\/figure>\n","innerContent":["\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/www.youtube.com\/watch?v=1Df-9EKvZr0\n<\/div><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3329,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9l4f.jpeg\" alt=\"\" class=\"wp-image-3329\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9l4f.jpeg\" alt=\"\" class=\"wp-image-3329\"\/><\/figure><\/div>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a:<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><a href=\"https:\/\/sveltesummit.com\/#intro\">https:\/\/sveltesummit.com\/#intro<\/a><\/p>\n","innerContent":["\n<p><a href=\"https:\/\/sveltesummit.com\/#intro\">https:\/\/sveltesummit.com\/#intro<\/a><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":[],"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Na koniec ponownie zapraszam do naszego leaderboarda <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a> (join code: 1550550-c19ac226) i na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>. I to nie jest chamska reklama - ja po prostu uwielbiam t\u0105 inicjatyw\u0119 \ud83d\ude05<\/p>\n","innerContent":["\n<p>Na koniec ponownie zapraszam do naszego leaderboarda <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a> (join code: 1550550-c19ac226) i na <a href=\"https:\/\/www.facebook.com\/groups\/223069906571427\">nasz\u0105 grup\u0119 na facebooku<\/a>. I to nie jest chamska reklama - ja po prostu uwielbiam t\u0105 inicjatyw\u0119 \ud83d\ude05<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3330,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v.jpeg\" alt=\"\" class=\"wp-image-3330\"\/><\/figure><\/div>\n","innerContent":["\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/12\/5w9o3v.jpeg\" alt=\"\" class=\"wp-image-3330\"\/><\/figure><\/div>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10040"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10040\/revisions"}],"predecessor-version":[{"id":10611,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10040\/revisions\/10611"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media\/7752"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}