phoenix_live_view changelog


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! πŸš€


Hey there, awesome devs! We've got some nifty updates and tweaks to make your coding life a bit smoother. Check out the latest changes:


πŸ› οΈ Improvements

Enhanced Documentation for Live Components
We've spruced up the docs for the mount and update callbacks in Phoenix.LiveComponent! Now it's crystal clear that the component’s socket doesn’t inherit the parent's assigns and that changes to it won’t affect the parent LiveView. Plus, we’ve detailed the expected return values for both c:mount/1 and c:update/2. Dive in and get those live components rocking! πŸš€

Refined on_mount Macro to Reduce Compile Dependencies
The on_mount macro just got smarter! We’ve refactored it to handle arguments more flexibly, reducing unnecessary compile-time dependencies. A new private function, expand_literals, ensures that only the essentials are expanded. Your compile times should be a tad quicker now! ⚑️

Clarified JS Transition Durations
We’ve added a shiny new example to the lib/phoenix_live_view/js.ex file. Now, it’s easier to see how a duration-300 CSS class translates to a time: 300 milliseconds in JS transitions. No more guessing gamesβ€”just smooth animations! 🎨


Keep on coding and stay awesome! πŸ’»βœ¨


Hey there, awesome developers! Here's the latest and greatest from our recent commits. We've packed in some handy new features, improvements, and bug fixes to make your coding life even smoother. πŸš€


New feature

  • Validate Slot Options: πŸŽ‰ Now, if you make a typo when defining slot options (like requird instead of required), you'll get a compile-time warning! Only the options :required, :doc, and :validate_attrs are accepted. This nifty feature helps catch errors early and keeps your code clean and robust.

Improvement

  • Enhanced clear_flash/1-2 Docs: πŸ“š We've added info about the lv:clear-flash event to the clear_flash/1 and clear_flash/2 documentation. Now you can see how to clear flash messages on the client side using LiveView, complete with practical examples.

  • Updated Navigation Terminology: πŸ—ΊοΈ All references to 'live_redirect' have been replaced with 'push_navigate' in our docs. This update standardizes terminology and ensures you're up-to-date with the latest naming conventions.

  • Fixed Callback and Function Links: πŸ”— We've corrected several documentation issues, particularly the references to mount/3, now properly noted as c:mount/3. We've also clarified the usage of the attach_hook function, making sure it's clear and accurate.

Bugfix

  • Click Event Targeting: πŸ› We've fixed an issue where the mousedown target was incorrectly used for click events. Now, the actual event target is used, aligning with standard click handling practices. This resolves the inconsistency noted in issue #3363.

That's a wrap for now! Keep coding, keep creating, and stay awesome! πŸ’»βœ¨


Here's the latest and greatest from our changelog! Let's dive into what's new, improved, and fixed. πŸš€

Improvements

Enhanced Link Documentation πŸ“š We've spruced up the docs for link generation in the Phoenix framework. Now, it's crystal clear how to use patch, navigate, and href attributes in the Phoenix.Component module. Whether you're updating a LiveView without a full reload, transitioning between LiveViews, or simply navigating like a traditional anchor tag, we've got you covered. This update ensures a smoother developer experience by clarifying the nuances of navigating across different LiveViews and sessions.

Changelog Update πŸ“ Our CHANGELOG.md got a facelift to include recent enhancements and bug fixes. Highlights:

  • More informative error messages for invalid targets with JS.dispatch/2.
  • Bug fixes for stream items reapplying JS commands after a disconnect, unnecessary remounts during navigation, and character composition mode in Safari.
  • A fix for a rare socket redirection error and an upstream morphdom issue.
  • Deprecation notice: name attribute of Phoenix.Component.dynamic_tag/1 will be replaced with tag_name.

Morphdom Bump πŸ”„ We've bumped the morphdom dependency to version 2.7.4. This update includes:

  • indexTree call after beforeUpdateResult.
  • Enhanced element morphing based on streamComponentRestore.
  • Improved error handling for custom events outside form elements. These changes ensure our LiveView components are more robust and functional.

Bugfix

Typo Fix πŸ” Corrected a tiny typo in the CHANGELOG.md file. "Unexpeted" is now "unexpected." Because even the little things matter!


Hey there, awesome devs! We've got some cool updates and fixes to share with you. Check out the latest changes below:


Changelog

Bugfix: Keep stream items on rejoin (#3353)

  • Ensures JavaScript commands are properly reapplied when a LiveView reconnects. This fix involves changes to the DOMPatch class in dom_patch.js and updates to the streams.spec.js test file. A new button for hiding elements using JS is also added to the StreamLive module in streams.ex. This addresses the issue of stream items not retaining their JS commands upon rejoining a LiveView, enhancing the user experience. πŸŽ‰

Bugfix: Throw error when dispatching input on invalid targets (#3331)

  • Adds a useful error message when using JS.dispatch to trigger an input event on invalid targets. This fix helps developers by providing clarity and guidance when encountering this issue. The changes are made in the assets/js/phoenix_live_view/live_socket.js file. 🚨

Bugfix: Fix unnecessary remount when navigating back (#3335)

  • Addresses the issue of unnecessary remounting when using the browser back button in Phoenix LiveView. The fix involves using replaceRootHistory when joining the main view, preventing unnecessary remounting. A new test in test/e2e/tests/navigation.spec.js ensures that navigating back works without remounting. πŸ› οΈ

Improvement: Enhance docs of put_flash (#3344)

  • Improves the documentation of the put_flash function, providing more clarity on its usage and functionality within LiveView applications. This enhancement makes it easier for developers to utilize put_flash effectively. πŸ“š

Improvement: mix format (#3340)

  • Includes changes related to formatting code using the mix format tool and adds support for the noformat modifier on sigil_H. The commit also ensures that the code is properly formatted in the CI pipeline and raises an error on invalid sigil_H modifiers. πŸš€

Improvement: Note of a regex for replacing the phx-no-feedback classes (#3346)

  • Introduces a regex for replacing phx-no-feedback classes and mentions filtering errors in the initial function for Phoenix.HTML.FormField. This regex helps in quickly identifying and updating instances of the phx-no-feedback classes in the codebase. πŸ”

Happy coding! 🌟


Hey team! Here are the latest and greatest updates to our project. Dive in and see what's new! πŸš€

Bugfixes

  • Updated Playwright & Fixed Setup: We've upgraded Playwright to v1.45.1, which resolves some setup issues and streamlines the process. Now, npm run setup handles everything for you. Enjoy a smoother ride with clearer instructions! πŸ› οΈ
  • CI Workflow Tweaks: Our CI workflow got a little love too. We've updated Elixir to 1.17.2, OTP to 27.0, and Node.js to 20.x. Plus, we've reverted a previous name change in the e2e CI step. Everything's running like a well-oiled machine now! βš™οΈ

Improvements

  • Enhanced JS Interop Guide: The js-interop.md file got a makeover! We’ve added a more efficient method for pushing out-of-band events using push_event. This update includes shiny new code examples and emphasizes the global nature of these events. Happy coding! πŸ’‘
  • Dependency Updates: We've freshened up our dependencies. Phoenix_live_reload is now "~> 1.4", and we've added phoenix_html_helpers "~> 1.0". Changes in mix.exs, mix.lock, and test/support/live_views/elements.ex ensure everything works seamlessly with these updates. πŸ“¦

Enjoy the new updates and happy coding! 🌟


Hey there, awesome developers! πŸŽ‰ We've got some cool updates and improvements for you. Check out the latest changes:

Changelog

New feature: Use the new :mfa field for route checking

  • We've jazzed up the route checking in Phoenix LiveView by introducing the new :mfa field! πŸš€
  • This new field adds detailed metadata about the live_view, action, and the number of arguments for the mount function.
  • Also, a heads-up: there's a note to remove the :log_module when Phoenix version 1.8 or higher is required.
  • Files touched: lib/phoenix_live_view/router.ex

Improvement: Clarify required id for live_file_input, closes #3330

  • Made it crystal clear that the id attribute for live_file_input cannot be overwritten. πŸ”
  • Added guidance on creating a label with a for attribute pointing to the UploadConfig ref.
  • Provided tips on implementing drag and drop functionality by annotating the droppable container with phx-drop-target.
  • Files touched: lib/phoenix_component.ex

Happy coding! πŸ’»βœ¨


Hey there, awesome devs! Here's the latest and greatest from our codebase updates. Check out what's new, what's fixed, and what's improved. πŸš€

New Features

  • Track Distinct Loading and Lock Refs (#3324): We've introduced changes to track distinct loading and lock references in various JavaScript and Elixir files. This update aims to enhance the performance and reliability of Phoenix Live View applications by providing more efficient handling of loading and lock references. Big thanks to Steffen Deusch for co-authoring this one!

Bugfixes

  • Fix Form Recovery When Targeting LiveComponents (#3317): Addressed an issue with form recovery in LiveComponents caused by a previous change in event dispatching. Now, the check for LiveComponents within the same LiveView works correctly by using the fragment's first child.
  • Format EEx Blocks Within Script Tag (#3312): Made sure that EEx blocks within script tags are formatted correctly. This update ensures that the formatter maintains the expected format.

Improvements

  • Release 1.0.0-rc.5: This release includes updates, bug fixes, and improvements in preparation for the stable release. Files like package.json, mix.exs, and various static files have been updated.
  • Release 1.0.0-rc.4: Focused on enhancing the handling of form elements and select options in the Phoenix LiveView JavaScript client. Bug fixes related to focused inputs and acknowledgements are addressed.
  • Release 1.0.0-rc.6: Includes updates to multiple files to improve functionality, fix bugs, and add new features to the Phoenix Live View component.

Stay tuned for more updates, and happy coding! πŸŽ‰


Hey there, awesome developers! We've got some exciting updates and fixes to share with you. Check out the latest highlights below to see what's new and improved in our project. πŸš€


New Features

  • Release 1.0.0-rc.1: πŸŽ‰ Big milestone alert! We've rolled out version 1.0.0-rc.1, bringing a bunch of updates, bug fixes, and new features. This release marks a significant step towards our full version 1.0.0, enhancing performance and functionality across the board.

Improvements

  • Form Bindings Guide Update: We've updated the 'Form bindings' guide to set the form/changeset action to a conventional name, unrelated to database operations. This change uses the new :action option added in v1.0, aligning the code with best practices and ensuring consistency. πŸ“š

  • Using form/3 with Inputs Inside and Outside the Form: Now you can use form/3 with inputs both inside and outside the form element, addressing issue #3170. This enhancement improves form handling flexibility in Phoenix LiveView applications. πŸ“

Bugfixes

  • Check asyncFilter on Blur: Fixed issue #3194 by ensuring asyncFilter is checked on blur. We've also added an end-to-end test to ensure the event isn't sent to the wrong LiveView when submitting a form with debounce blur. πŸ›

  • Named Form Inputs with put_submitter/2: Resolved the issue with named form inputs and put_submitter/2. Improvements include better handling of named inputs and removing some hacky comparisons. πŸ› οΈ

  • Wait for Transitions Before Determining cids_destroyed: Addressed issue #3139 by waiting for pending transitions to complete before determining if component IDs (cids) should be destroyed. This fix ensures more accurate and reliable cid destruction. ⏳

Changelog Update

  • Changelog Enhancements: We've updated the changelog with several enhancements and bug fixes, including warnings for rendering an input named "id," allowing form recovery in nested LiveViews, and fixing warnings on Elixir 1.17. Also included are fixes for input tracking on checkboxes, resolving race conditions, and addressing page reload issues when disconnecting LiveSocket with Bandit. πŸ“œ

We hope these updates make your development experience even better. Keep coding and stay awesome! ✨


Welcome to the latest update! We've made some nifty improvements and squashed a few bugs. Let's dive into the details! πŸš€

### New Features & Improvements
- **Update socket lifecycle docs**: Clarified that `phx-connect` and `phx-disconnected` are bindings, not events. This helps avoid confusion with JavaScript events or LiveView socket events. The docs now show how to use these bindings to manage connection lifecycle events with JavaScript. πŸ“š
- **Consistent capitalization**: Ensured that references to CSS and JavaScript are consistently capitalized across the board. This includes documentation updates and some snazzy new features like CSS loading states for Phoenix-bound elements, event-specific CSS classes, and a client-side latency simulator. 🎨
- **Better assigns-eex.md**: Enhanced the Elixir guides to explain common pitfalls and best practices when using variables in LiveViews and LiveComponents. Emphasized the use of `assign/2`, `assign/3`, `assign_new/3`, and `update/3` functions over direct access in templates. πŸ› οΈ

Enjoy the smoother, clearer, and more consistent experience! 🌟

Welcome to the latest update! We've been hard at work polishing things up and adding some nifty features. Here’s what’s new and improved:

New Features & Improvements

  • Improved Error Handling Docs πŸ“š
    We’ve beefed up the error handling documentation in the server guide, especially for those tricky scenarios like when an organization has only one member. The docs now include detailed code examples and explanations on how LiveView reacts to exceptions during different stages. This should make it easier to handle unexpected errors and understand the best practices for error handling in your server-side development.

  • Form Handling During Uploads πŸš€
    We’ve made some cool changes in view.js to dispatch lock/unlock events without locking the form during upload progress. Now, you can selectively unlock specific elements, ensuring smooth transitions and interactions without unnecessary form locking. Your forms will now handle uploads like a breeze!

  • Clarified Stream Insert Limits πŸ”’
    We've added clarity on setting limits for stream_insert in Phoenix LiveView. Now, when inserting single items, you’ll need to pass the limit as an option to enforce it on the client. We’ve also provided examples to make it easier for you to manage streams effectively.

Bugfixes

  • Incomplete Doctype Error Handling πŸ› οΈ
    We’ve squashed the bug related to incomplete doctypes in the Phoenix Live View Tokenizer. Now, if an incomplete doctype is encountered, a syntax error will be raised, providing more informative feedback and making the tokenization process more robust.

Thanks for sticking with us! We hope these updates make your development experience smoother and more enjoyable. Happy coding! πŸš€

Showing 1 to 20 of 21 Entries