phoenix_live_view changelog


Here's the latest scoop on our updates, packed with improvements to make your coding journey smoother and more delightful! πŸŽ‰

  • Improvement: Fixed Link to Bindings Guide Fragment
    We've polished up the Phoenix LiveView module documentation by correcting a link reference. Now, when you're diving into scroll events and infinite pagination, you'll land exactly where you need to be! 🧭

  • Bugfix: Typo in live-layouts.md
    Typo alert! We've fixed a sneaky little typo in the LiveView applications documentation. "LvieView" is now properly spelled as "LiveView." Because spelling counts, even in code! πŸ“βœ¨

Enjoy the smoother sailing with these updates! πŸš€


Here's a delightful update on the latest changes and improvements made to the Phoenix LiveView framework. We've been busy enhancing features, fixing bugs, and polishing the overall experience to make your development journey smoother and more enjoyable. πŸŽ‰

  • New feature: The liveSocket.js() has been supercharged with the addition of navigate, patch, and push commands. This gives developers more control over client-side interactions, making it easier than ever to manage navigation and updates within your LiveView applications. Plus, we've added tests to ensure everything works like a charm. πŸš€

  • Improvement: The used_input? method in Phoenix.Component now plays nicely with structs, treating them correctly and ensuring robust input handling. This update enhances the flexibility and reliability of component parameter evaluations. πŸ’ͺ

  • Improvement: We've polished the handling of flash messages during fallback redirects. Now, when an unauthorized or stale response triggers a redirect, your flash messages will be safely preserved, ensuring a seamless user experience. New end-to-end tests have been added to guarantee everything stays in tip-top shape. ✨

  • Bugfix: Sticky LiveViews are here to stay! No more shutting down during push_navigate events. This fix ensures that your sticky LiveViews remain active, preserving user interactions and state during navigation. 🧲

  • Improvement: We've spruced up the phoenix_live_view JavaScript files, focusing on better handling of locked references and form element updates. This includes the introduction of an ElementRef class for cleaner, more maintainable code. πŸ”§

  • Bugfix: A little tweak to the documentation for the :for attribute in EEx templates. We've removed an unnecessary trailing character to make sure everything looks just right. Because even the smallest details matter! πŸ“š

These updates are designed to enhance your development experience, making it more intuitive, efficient, and fun. Keep building awesome apps with Phoenix LiveView! 🌟


Hey there, awesome developers! πŸŽ‰ We've got some exciting updates and improvements to share with you. Here's a rundown of the latest changes that are sure to make your coding experience even better:

  • Improvement: LazyHTML Takes the Stage! 🌟
    We're switching things up by introducing LazyHTML as the new HTML engine for LiveViewTest. Say goodbye to Floki and hello to modern CSS selector features, like :is() and :has(), thanks to LazyHTML's lexbor library base. This change is mostly backward compatible, but if you're using Floki-specific selectors, you'll need to tweak your test code. Bonus: LazyHTML is faster and reduces memory allocation, which means your tests will run like a dream. πŸš€

  • Improvement: Docs Get a Makeover! πŸ“š
    We've spruced up the documentation by removing mentions of the phx-page-loading attribute. Now, you can manage page loading events with Phoenix.LiveView.JS.push/3 and the page_loading: true option. This change is all about keeping things fresh and up-to-date, so your docs reflect the latest and greatest practices. Big shoutout to Steffen Deusch for the co-authoring magic! ✨

  • Bugfix: Typo Takedown! πŸ”
    We squashed a pesky typo in the LiveViewTest docs. The phrase "along with some with hidden input values" is now crystal clear as "along with some hidden input values." It's a small change, but it makes a big difference in readability. Keep those docs pristine, folks! πŸ“

These updates are all about enhancing your coding journey, so dive in and enjoy the improved performance, functionality, and documentation. Happy coding! 🎈


Here's the latest scoop on what's been cooking in the code kitchen! 🍳 This update brings some exciting improvements to how live sessions and authentication are handled in Phoenix applications. Let's dive into the details:

  • Improvement: Unify Live Session Examples with mix phx.gen.auth Generated Code πŸŽ‰
    We've streamlined the examples for live sessions, making them play nice and tidy with the code generated by mix phx.gen.auth. This means your live sessions for both regular users and admins are now neatly organized within their respective scope blocks. This tidy-up not only makes the code look cleaner but also makes the authentication flow smoother and more cohesive. 🧼✨

  • Documentation Boost πŸ“š
    We've given the documentation a sprinkle of magic dust to ensure it clearly explains how to implement authentication and authorization consistently across both live and regular HTTP routes. Now, it's easier than ever to keep your routes secure and your mind at ease. πŸ›‘οΈ

  • Router Revamp πŸš€
    The router's had a makeover to make integrating authentication mechanisms a breeze. Consistency is key, so we've emphasized applying the same security protocols across all routes, whether they're live sessions or standard HTTP. This ensures a unified and secure experience for everyone. πŸ”’

These changes are all about making your life easier and your applications more robust. Happy coding! 🎈


Hey there, awesome developers! πŸŽ‰ We've got some cool updates and fixes here for the Phoenix LiveView framework. Let's dive into the latest changes and improvements that'll make your coding life a tad bit easier!

  • New feature: We've introduced tests for handling file uploads within nested LiveViews! This enhancement focuses on making sure uploads work smoothly even in complex nested structures. The UploadChannelTest module has been updated to include a new nested LiveView, NestedUploadLive, which is all about testing uploads in more intricate scenarios. This change is a big win for improving the robustness of the upload feature in nested situations. πŸš€

  • Improvement: A new change ensures that stream elements are forcibly removed during a join patch operation. This update enhances stream management, especially when dealing with nested components. The method now checks ownership before removing elements, making sure your streams are as tidy as your codebase! 🌊

  • Improvement: The refute_redirected function got a little more flexible! Now, it can refute any redirection, not just specific paths. This makes testing even more comprehensive, allowing you to assert that no redirection occurs at all for a given view. πŸ’ͺ

  • Bugfix: We've tackled an issue with the _target parameter being decoded too early. The fix ensures that decoding happens at the right time, making sure your form values are accurately processed. This resolves a pesky bug and keeps things running smoothly. πŸ›

  • Bugfix: Another fix ensures the _target parameter is sent as "undefined" when it doesn't exist. This maintains backward compatibility with older versions, even if it feels a bit quirky. But hey, it works! πŸ€·β€β™‚οΈ

  • Bugfix: The sync_with_root function in the ClientProxy module has been patched up to ensure the correct root view's PID is used during the ping operation. This little tweak enhances the reliability of syncing between child and root views. πŸ”„

These updates are here to make your life easier and your applications more robust. Keep on coding and enjoy the ride! 🎈


Hey there, awesome devs! We've got some exciting updates and fixes for you. Let's dive into what's new and improved! πŸš€

New Feature: Simplified Live Sessions
We've removed the version field from live_session to make your life easier. Previously, this version field caused LiveViews to fully reload after a deployment, losing state and breaking form recovery. Now, by relying solely on the live_session name for security, your LiveViews will smoothly handle updates without unnecessary reloads. This change keeps things simple and efficient, ensuring your sensitive routes stay protected with on_mount hooks. πŸŽ‰

Bugfix: Curly Interpolation in Style/Script Tags
No more curly interpolation mishaps in your <style> and <script> tags! We've fixed an issue where the phx-no-curly-interpolation attribute was disabling curly interpolation for all elements indiscriminately. Now, it smartly skips disabling interpolation for these tags, so your scripts and styles behave just as you intend. πŸ› οΈ

Thanks for being part of our community! Keep building awesome stuff and enjoy the smoother, more reliable LiveView experience. Happy coding! πŸ’»βœ¨


Hey there, fellow code enthusiasts! πŸŽ‰ We've got some nifty updates and fixes for the Phoenix Live View framework that are sure to make your development experience even smoother. Let's dive into the latest changes:

  • New Feature: Skip Persistent ID Generation πŸš€
    You can now skip the automatic generation of persistent IDs for form inputs by using the skip_persistent_id attribute. This gives you greater control over form input management, especially when those pesky hidden _persistent_id fields aren't needed. Major kudos to the team for addressing issue #3673 and adding this much-requested feature!

  • Improvement: Enhanced Disconnection Handling πŸ”Œ
    We've improved how disconnection events are managed by introducing a DISCONNECTED_TIMEOUT constant (set at 500 milliseconds) and a disconnectedTimer variable. This makes your LiveView app more robust and responsive during network hiccups. Plus, the loader logic now better handles pending disconnection notifications. Smooth sailing ahead!

  • Improvement: Keep Active Focus During Reconnection πŸ”„
    No more losing focus during reconnections! We've updated the LiveSocket and View classes to ensure your active input stays focused even when the connection drops and comes back. Say goodbye to those annoying interruptions during live updates!

  • Improvement: Clarifications on Nested Live Views πŸ“š
    We've added some helpful hints to the live_render docs about using find_live_child/2 and recommended trying LiveComponents before diving into nested LiveViews. These updates aim to guide you towards better component design practices. Thanks to Steffen Deusch for the co-authorship!

  • Bugfix: Fix Pending Link Update Race Condition πŸ›
    A sneaky race condition in applyPendingDiffs was causing updates to be dropped. We've fixed it by ensuring pending updates are skipped when a link is still pending. No more silent update losses during navigation transitions!

  • Bugfix: Debounce Blur Event Fix πŸ”„
    We've tweaked the debounce functionality for the "blur" event so that the callback triggers only once when no other event has been received since the last blur. This ensures efficient event handling and prevents multiple triggers from the same event. Your input interactions just got a whole lot smoother!

That's all for now! We hope these updates make your coding adventures more enjoyable. Happy coding! πŸ’»βœ¨


Hey there! Here's the latest scoop on the updates we've been working on. We've focused on making things faster, tidier, and more understandable. Check out the highlights below! πŸš€

  • Improvement in Form Serialization: We've turbocharged the serializeForm function! πŸŽοΈπŸ’¨ It now zooms through large forms with ease, avoiding unnecessary work and complexity. The new streamlined approach means less waiting time and fewer browser hang-ups when dealing with hefty forms. Plus, we've tidied up the code with some linting and improved the way input names are handled.

  • Asset Updates: Our assets got a makeover! 🎨 The JavaScript files have been updated, focusing on smarter logic to track form inputs. This means a more efficient way of identifying which inputs are unused or hidden, resulting in a smoother and faster experience.

  • Documentation Boost for put_flash: We've polished up the docs for put_flash. πŸ“βœ¨ Now, it's easier to understand how flash messages work, their lifespan, and their behavior during navigation. Plus, we've highlighted best practices to ensure only user-friendly notifications are included.

  • Chore: E2E Test Warnings: We tidied up the end-to-end test warnings. 🧹 No more pesky alerts during test runs! By removing unused aliases and optimizing the code, we've made the testing process cleaner and more enjoyable.

Hope you enjoy the improvements! 😊


Hey there, awesome developers! We've got some exciting updates and improvements lined up for you. From enhancing documentation to fixing pesky bugs, these changes are here to make your coding life easier and more efficient. Let's dive into the details! πŸš€

  • Improvement: We've spruced up the documentation for using scopes in JavaScript commands for DOM selectors. Now, you can use {:inner, "selector"} to target elements within the interacted element, and {:closest, "selector"} to zero in on the nearest ancestor element. This means more precise DOM element targeting and clearer guidance on using the :to option. Your dropdown components will thank you! 🎯

  • Improvement: Our JavaScript files got a little makeover! We've added an isLocked method to check element lock status and a shiny new onUnlock method for executing callbacks when elements are unlocked. Plus, we've improved the DOMPatch class to handle child elements and undo references better. Your dynamic web applications just got a whole lot more dynamic! πŸ’ͺ

  • New Feature: Introducing a new configuration option for handling errors in LiveViews. Now, you can choose whether detected errors should raise exceptions or just give you a friendly warning. This flexibility is perfect for tailoring your testing experience. Plus, we've squashed the duplicate LiveComponents bug (Fixes #3650) and added tests to keep everything in check. πŸ› οΈ

  • Improvement: Our changelog is now in perfect harmony with the 1.0 branch. We've updated error handling for duplicate IDs and improved error detection and reporting. Expect clearer documentation and better error logging in your JavaScript console. 🎢

  • Bugfix: We tackled issues with file uploads when forms are locked due to unrelated changes. By unifying DOM patching logic, we've ensured that uploads only happen when the closest locked element is unlocked. This fix resolves multiple issues and makes managing dynamic forms and uploads a breeze! πŸ“‚

  • Bugfix: We made sure hooks are only added to elements owned by the current view, addressing issue #3530. This change prevents errors and ensures hooks are initialized correctly. We've also added end-to-end tests to validate these improvements. 🧩

  • New Feature: We're kicking off the development phase for version 1.1.0! This update involves changes to key files like CHANGELOG.md, mix.exs, package.json, and package-lock.json, paving the way for exciting new features and enhancements. Stay tuned for more awesomeness! 🌟

We hope these changes make your development journey smoother and more enjoyable. Keep on coding, and may your bugs be few and your features many! πŸ˜„


Welcome to the latest and greatest updates to the Phoenix framework! We've been busy bees, buzzing around to enhance your developer experience with some sweet improvements and bug fixes. Let's dive into what's new and shiny! 🐝✨

Improvement: More Guidelines Around LiveComponents
We've beefed up the guidelines for LiveComponents, helping you distinguish between different component types and their purposes. Now, it's crystal clear that Phoenix.Component is your go-to for code organization and markup reuse, while Phoenix.LiveComponent is the hero for sharing state, markup, and events across LiveViews. Nested Phoenix.LiveView components? Perfect for when you need complete isolation, including error handling. These updates are here to guide you in using LiveComponents like a pro! πŸ“šπŸ”§

Improvement: Update Assets
Focus management just got a whole lot smarter! We've jazzed up the JavaScript files to enhance focus behavior when navigating between elements. Now, the focus is more predictable and accessible, especially when elements are playing peek-a-boo. Whether it's CommonJS, ES modules, or a minified version, we've got you covered across the board! πŸ”πŸŽ―

Improvement: Update Examples of inputs_for
We've polished up the inputs_for examples by specifying the field to retrieve from the changeset. No more guessing games! Now, the code explicitly accesses the :total field, making your helper functions more accurate and robust. πŸ› οΈπŸ“ˆ

Bugfix: Handle Entering FocusWrap from Outside (#3641)
We've squashed a pesky bug that caused focus issues when entering FocusWrap from outside. By checking the relatedTarget of the focus event, we've ensured a smooth and intuitive focus experience. No more unintentional boundary element focusingβ€”just seamless navigation! πŸŽ―πŸ”§

Bugfix: Use Socket.t() Instead of %Socket{} (#3634)
We've tidied up the type specifications in the Phoenix LiveView module, swapping %Socket{} for Socket.t(). This change brings clarity and consistency, aligning with Elixir's best practices. Your code is now cleaner, clearer, and ready to rock! πŸŽΈπŸ“œ

That's all for now, folks! Keep coding and creating with Phoenix, and stay tuned for more exciting updates. πŸš€


Welcome to the latest updates! We've been busy bees 🐝, buzzing around and making improvements to enhance your experience with the Phoenix framework. Here's a rundown of the exciting changes and fixes we've implemented:

  • New feature: We've added a shiny new example to our documentation, showing off how to use dynamic components like a pro! Now you can see how to dynamically call a module and function using Elixir's apply/3. This example will have you rendering different outputs based on runtime conditions in no time! πŸŽ‰

  • Improvement: Say goodbye to multiple package.json files! We've streamlined everything into a single file, making dependency management a breeze. Plus, we've given our ESLint configuration a makeover, ditching deprecated rules and adding cool new plugins for consistent coding. Your development experience just got a whole lot smoother! πŸš€

  • Improvement: Our LiveView JavaScript files got a little love, too! We've fine-tuned the logic for filtering components, ensuring only the relevant ones are processed. This means better performance and accuracy when handling components. We've also tidied up the destroyHook method for better readability. 🧹

  • Bugfix: We squashed a pesky bug in the destroyHook function that was causing hooks to be called more times than your alarm clock on a Monday morning. Now, hooks are properly cleared, ensuring a clean and error-free experience. πŸ›

  • Improvement: Our attr/3 documentation got a boost with the addition of :fun and {:fun, arity} types. This makes it crystal clear how to specify function types when working with Phoenix components. πŸ“š

  • Bugfix: We've scoped out the findExistingParentCIDs function to ensure it ignores CIDs in child LiveViews. This fix ensures updates aren't overlooked, keeping your LiveView components in tip-top shape. πŸ”§

Enjoy these updates and keep on building amazing things with Phoenix! 🌟


Here's the latest scoop on what's been happening under the hood. πŸš€ We've rolled out some exciting new features, squashed pesky bugs, and made a few tweaks to keep everything running smoothly. Let's dive in!

  • New feature: Added a shiny new metadata field to the LiveSocket JavaScript interop guide! πŸŽ‰ This field allows you to send extra user-defined info along with events to the server. Check out the "Key events" section for some cool examples. This update also includes some tidying up of the docs for hooks and uploaders. Say hello to enhanced functionality and usability! πŸ’ͺ

  • Improvement: We’ve clarified how class and style attributes work in ~H syntax. Now, if their value is false or nil, they’ll be rendered as empty strings instead of disappearing into the void. πŸͺ„ Plus, when class is a list, nil and false entries are tossed out like yesterday’s leftovers. πŸ—‘οΈ Enjoy a clearer understanding and a smoother dev experience!

  • Bugfix: Tackled a sticky situation with live views in version 1.0.1. Sticky live views no longer receive a URL upon joining, as they're not mounted at the router. πŸ› οΈ This fix includes some updates to integration tests and tweaks to several files, ensuring everything runs like a well-oiled machine. Kudos to Steffen Deusch for co-authoring this fix!

  • Improvement: Released version 1.0.2 with updates to package.json, package-lock.json, and various static files. These changes hint at some nifty enhancements or bug fixes to keep the Live View functionality top-notch. πŸ“¦

  • Improvement: Updated a bunch of static assets related to Phoenix Live View, including JavaScript files and their source maps. These updates aim to boost performance and compatibility, ensuring you’re working with the latest and greatest. πŸš€

  • Chore: Bumped ex_doc from 0.35.1 to 0.36.1 and earmark_parser from 1.4.41 to 1.4.42. πŸ“š These updates are all about keeping things fresh and shiny, with a focus on documentation tools and libraries. Better docs, better dev life! 🌟

That's all for now, folks! Stay tuned for more updates and keep on coding. πŸ’»βœ¨


Hey there, code wizards! 🌟 We've got some exciting updates for you in the world of Phoenix LiveView. Let's dive into the magical improvements that are sure to make your development experience smoother and more enchanting!

New feature: Evaluate JS Commands During Form Recovery
We've sprinkled some JavaScript pixie dust on the form recovery process! Now, when you're working with forms in LiveView, JS commands will be evaluated, ensuring a seamless experience even if you're dealing with those pesky disconnections and reconnections. This update makes sure your input values stay put and behave like the good little elements they are, even in the face of adversity! πŸ§™β€β™‚οΈβœ¨

Improvement: Update Assets
Our event handling just got a major glow-up! We've revamped the way event handlers are defined and executed, making sure everything runs as smooth as butter. By introducing a new handler function, we've ensured that events are only pushed if the target view is connected, making event processing more efficient and user-friendly. Your LiveView experience just got a whole lot more magical! πŸͺ„

Improvement: Track Braces State in Tokenizer
Brace yourselvesβ€”literally! We've enhanced our tokenizer to keep track of brace states during tokenization. This means your HTML templates will handle expressions like a pro, especially when using the phx-no-curly-interpolation attribute. Our tests confirm that everything's working as intended, preserving your literal braces in the rendered HTML. So, go ahead and unleash your creativity with dynamic content, because we've got your back! πŸ›‘οΈ

That's all for now, folks! Keep coding and may your bugs be few and your features be plentiful! πŸš€


Hey there, Phoenix LiveView enthusiasts! We've got some cool updates and fixes to share with you, so grab a cup of coffee and dive in with us. πŸš€

  • Bugfix: phx-trigger-action check for cloned tree
    We've squashed a pesky bug related to the phx-trigger-action! Now, the isNowTriggerFormExternal method does a double-check: ensuring forms are part of the document body and have the phx-trigger-external attribute. This means no more false positives when deciding if a form should trigger an external action. Plus, forms marked for external triggering are now handled like a pro during morphing. πŸŽ‰

  • Improvement: Changelog Updates
    Our changelog got a makeover! It now highlights essential fixes like cutting down on unnecessary compile-time dependencies and stopping those annoying crashes when testing LiveViews with XML. We've also made sure phx-trigger-action doesn't mess with locked forms. And there are some sweet enhancements like deduplication in stream/4 functions and better map key tracking. All these tweaks make your LiveView experience smoother than ever! πŸ“

  • Improvement: Change-track non-existing keys in maps
    We've optimized how templates handle non-existent map keys. If a key is missing before and after a change, no re-rendering will be triggered. This means fewer unnecessary updates and a performance boost. We've got tests in place to ensure this works like a charm. ⚑

  • Improvement: Asset Updates
    Our JavaScript files got some love, too! The isNowTriggerFormExternal function is now smarter, and we've introduced externalFormTriggered to track external form triggers during DOM patching. These updates make sure external forms get the VIP treatment they deserve. 🎨

  • Bugfix: No more compile-time deps when expanding literals
    We've tackled the issue of unwanted compile-time dependencies when expanding literals. By tweaking how Macro.expand_literals is called, we've ensured smoother macro processing in the Phoenix framework. Say goodbye to unnecessary compile-time references! πŸ› οΈ

That's all for now! Keep those LiveViews lively and stay tuned for more updates. 🌟


Welcome to the latest update! We've made some exciting improvements to enhance your experience and smoothen your development journey. Let's dive into the details! πŸš€

Improvements

  • Default force: true in Single File Scripts: We've set force: true as the default in single-file scripts, making it easier for you to install dependencies without a hitch. This ensures you're always working with the latest and greatest versions of libraries. Plus, we've polished up some script tags to keep things looking fresh! πŸ› οΈ

  • Detect Duplicate IDs in LiveViewTest: Duplicate IDs? Not on our watch! We've added a nifty feature that catches duplicate IDs in the DOM during LiveView testing. This prevents any hiccups with morphdom and keeps your app running smoothly. Unique IDs for everyone! πŸŽ‰

  • Clarified Elixir Version Requirements: We've updated our docs to specify Elixir v1.14.1+ as the minimum version needed. This little tweak helps avoid any version-related surprises and keeps everything running like a well-oiled machine. πŸ”§

These changes are here to make your coding life a breeze. Keep building amazing things! ✨


Here's the latest scoop on our updates, packed with features, fixes, and improvements to make your development experience smoother and more fun! πŸŽ‰

  • New feature: You can now disable curly interpolation with the phx-no-curly-interpolation attribute! This is a game-changer for those tricky <script> and <style> tags where curly braces just don't cut it. Say goodbye to those curly woes! πŸ’ͺ

  • New feature: We've added support for {...} interpolation right in your component bodies. This makes your Phoenix LiveView components even more expressive and flexible. A big shoutout to our awesome contributors for making this happen! 🌟

  • Improvement: Navigating back and forth just got a whole lot smarter. We've fine-tuned our history handling to differentiate between backward and forward navigation, so you won't experience any more unexpected patches or remounts. Your back button is now your best buddy! πŸ”„

  • Improvement: Our changelog got a facelift! It now highlights all the important changes, including a new requirement for Elixir version 1.14 or higher. Plus, we've ironed out some pesky bugs, like those affecting live navigation and uploads. πŸ“œ

  • Improvement: Version 1.0.0-rc.9 is here! We've tweaked some key files and polished our JavaScript assets to make sure everything runs like a dream. πŸš€

  • New feature: Version 1.0.0 has officially landed! We've made a bunch of updates to enhance stability and performance. Enjoy the ride! 🎈

  • Chore: Released version 1.0.0-rc.8 with some essential versioning updates. Remember, Elixir 1.14 or higher is now a must! πŸ“…

  • Bugfix: We squashed a tiny typo in our changelog. It's all about the little things, right? 🐞

  • Bugfix: Another typo bites the dust in our documentation. We’ve got your back for clear and accurate info! ✍️

That's all for now, folks! Keep coding, keep creating, and keep having fun! πŸ’»βœ¨


Hey there, code adventurers! We've got a bunch of cool updates and fixes that will make your coding journey smoother and more fun. Check out the latest changes below! πŸš€

  • New feature: Improved Error Messaging on Form Submission
    We've fine-tuned the error handling in the put_submitter function. Now, when you hit a snag with form submissions, you'll get more accurate and helpful error messages. Whether it's a missing submitter or an invalid one, you'll know exactly what's up. Say goodbye to vague error messages and hello to clarity! πŸŽ‰

  • Bugfix: Navigation Failures Now Logged
    Ever had a navigation fail and wondered why? We've got you covered! Now, when navigation events run into trouble, the system logs a warning with the reason. Whether it's a cross-session redirect or a mismatched URL, you'll know why it's falling back to a full page reload. This update also refines navigation guidelines, making your LiveView experience even better. 🧭

  • Changelog Update: Fresh Enhancements and Fixes
    Our changelog just got a facelift! We've rolled out a bunch of bug fixes and enhancements. From fixing live uploads and input focus issues to adding new testing capabilities and improving comment formatting, there's a lot to love. Plus, there's a new warning log for push_navigate fallbacks, ensuring better feedback when things go awry. πŸ“œ

  • Chore: Tidied Up Example Code
    We cleaned up some example code by removing an unnecessary bracket in a log message. This tiny tweak makes the code easier to read and keeps our standards high. Sometimes, it's the little things that make a big difference! 🧹

Keep exploring and happy coding! 🌟


Welcome to the latest round-up of updates, improvements, and fixes! Dive in to discover how we've been busy fine-tuning the Phoenix LiveView experience, enhancing performance, and ensuring seamless navigation. Let's get started! πŸš€

  • Improvement: We've enhanced the storytelling in the security guide for the server's security model, focusing on live_session in Phoenix LiveView applications. This update clarifies authentication and authorization processes, highlights the importance of the on_mount hook, and provides a better understanding of push_navigate mechanics. πŸ›‘οΈ

  • Improvement: The to_form/2 function has been optimized to require fewer traversals, improving performance and code readability. This includes direct handling of Phoenix.HTML.Form and streamlined option processing. ⚑

  • Bugfix: Addressed an issue related to live sessions when patching to the same LiveView. The fix ensures correct session data usage, enhancing session management integrity within the framework. πŸ›

  • Improvement: Updated the CI configuration to run against Elixir's latest version, ensuring compatibility with new features and standards. This change enhances the project's CI pipeline, keeping it on the cutting edge. πŸ”§

  • Bugfix: Fixed the array destructuring in the cancelSubmit method, resolving unexpected behavior due to incorrect parameter handling. This fix streamlines the method's functionality. 🎯

  • New Feature: Added Fluxon UI to the list of component systems, providing developers with elegant and accessible UI components for Phoenix LiveView. This addition expands the ecosystem of available tools. 🎨

  • Bugfix: Reverted a previous change intended to fix unnecessary remounting when navigating back, indicating a reevaluation of navigation behavior within the framework. This revert ensures a stable user experience. πŸ”„

Stay tuned for more updates and keep exploring the ever-evolving world of Phoenix LiveView! 🌟


Here's a rundown of the latest changes, improvements, and bug fixes that will make your coding experience smoother and more delightful. Let's dive in! πŸš€

  • Improvement: Keep original structure of __changed__
    We've spruced up the force_assign function to better handle change tracking for nested structures. Now it stores the current value in the changed map only if it's a list or map, preserving the original value. For non-collection types, a default value of true is set, making change tracking a breeze. Tests have been updated to keep everything in sync. 🌟

  • Improvement: Keep values of composite types in __changed__
    Tuples are now part of the gang! We've expanded change tracking to include tuples in the __changed__ map, joining lists and maps. This ensures comprehensive monitoring of changes in composite types, making sure nothing slips through the cracks. πŸŽ‰

  • Improvement: Update changelog
    Our CHANGELOG.md got a makeover! It now includes updates on error messages, slot option validations, and a bunch of bug fixes. From stream items to Safari quirks, we've tackled them all. Plus, there's a heads-up on the deprecation of the name attribute in Phoenix.Component.dynamic_tag/1. Keep your eyes peeled for tag_name! πŸ“

  • Bugfix: Fix typo in attach_hook/4 doc
    We squashed a tiny typo in the attach_hook/4 documentation. Now it reads "you may not be interested in" instead of "on," making the docs grammatically sound. Because every little bit counts! 🐞

  • Bugfix: Fix typo
    Another typo bites the dust! In the force_assign function comments, "tiple" has been corrected to "tuple," ensuring clarity and precision in describing composite types. Code readability is key! πŸ”

Enjoy the enhancements and happy coding! πŸ’»βœ¨


Welcome to the latest update! We've been busy squashing bugs and polishing up features to make your experience smoother and more awesome. Here's a peek at what's been cooking under the hood:

  • Improvement: Clarify Options in LiveViewTest.element 🌟
    We've added some extra sparkle to the element function by clarifying its options. With a new guard clause, is_text_filter, we now ensure that text filters are either a binary string, a Regex struct, or nil. This means the has_element? and element functions are now more explicit and robust, making your testing experience clearer and more reliable. Bye-bye, ambiguity! πŸ‘‹

  • Improvement: Handle Strings with Escaped Quotes πŸ”
    Ever had a string with escaped quotes that just wouldn't behave? We've got you covered! We tinkered with the render_attribute function so it no longer flattens strings with quotes or those fancy heredocs. Now, your strings will stay intact, and the attributes will render just as they should. Plus, we added a new test to make sure everything's shipshape. Cheers to more accurate string handling! 🍻

Thanks for sticking with us! Keep those feature requests and bug reports coming. We love making things better for you! πŸš€

Showing 1 to 20 of 31 Entries