We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
phoenix_live_view changelog
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! 💻✨
Included Commits
The commit introduces support for interpolation using the {...}
syntax within the body of Phoenix LiveView components, enhancing the flexibility and expressiveness of the framework. This change involves modifications across various files, including core library components, tests, and documentation, ensuring that the new interpolation feature is well-integrated and thoroughly tested.
Multiple co-authors contributed to this update, reflecting a collaborative effort to improve the functionality of Phoenix LiveView. The extensive list of modified files indicates a comprehensive approach to implementing this feature, impacting both the codebase and related guides to provide users with the necessary information to utilize the new interpolation method effectively.
Files changed
- .github/single-file-samples/main.exs
- .github/single-file-samples/test.exs
- guides/client/bindings.md
- guides/client/js-interop.md
- guides/introduction/welcome.md
- guides/server/assigns-eex.md
- guides/server/live-layouts.md
- guides/server/uploads.md
- lib/phoenix_component.ex
- lib/phoenix_live_component.ex
- lib/phoenix_live_view.ex
- lib/phoenix_live_view/engine.ex
- lib/phoenix_live_view/helpers.ex
- lib/phoenix_live_view/html_algebra.ex
- lib/phoenix_live_view/html_formatter.ex
- lib/phoenix_live_view/js.ex
- lib/phoenix_live_view/router.ex
- lib/phoenix_live_view/tag_engine.ex
- lib/phoenix_live_view/test/live_view_test.ex
- lib/phoenix_live_view/tokenizer.ex
- mix.exs
- test/e2e/support/error_live.ex
- test/e2e/support/form_feedback.ex
- test/e2e/support/form_live.ex
- test/e2e/support/issues/issue_2787.ex
- test/e2e/support/issues/issue_2965.ex
- test/e2e/support/issues/issue_3026.ex
- test/e2e/support/issues/issue_3040.ex
- test/e2e/support/issues/issue_3047.ex
- test/e2e/support/issues/issue_3083.ex
- test/e2e/support/issues/issue_3117.ex
- test/e2e/support/issues/issue_3169.ex
- test/e2e/support/issues/issue_3200.ex
- test/e2e/support/issues/issue_3378.ex
- test/e2e/support/issues/issue_3448.ex
- test/e2e/support/issues/issue_3496.ex
- test/e2e/support/navigation.ex
- test/e2e/support/select_live.ex
- test/e2e/support/upload_live.ex
- test/e2e/test_helper.exs
- test/phoenix_component/components_test.exs
- test/phoenix_component/declarative_assigns_test.exs
- test/phoenix_component/rendering_test.exs
- test/phoenix_component/verify_test.exs
- test/phoenix_live_view/diff_test.exs
- test/phoenix_live_view/html_engine_test.exs
- test/phoenix_live_view/html_formatter_test.exs
- test/phoenix_live_view/integrations/html_formatter_test.exs
- test/phoenix_live_view/integrations/live_components_test.exs
- test/phoenix_live_view/tokenizer_test.exs
- test/support/layout_view.ex
- test/support/live_views/cids_destroyed.ex
- test/support/live_views/component_and_nested_in_live.ex
- test/support/live_views/component_in_live.ex
- test/support/live_views/components.ex
- test/support/live_views/connect.ex
- test/support/live_views/debug_anno.exs
- test/support/live_views/elements.ex
- test/support/live_views/events.ex
- test/support/live_views/flash.ex
- test/support/live_views/general.ex
- test/support/live_views/host.ex
- test/support/live_views/layout.ex
- test/support/live_views/lifecycle.ex
- test/support/live_views/live_in_component.ex
- test/support/live_views/params.ex
- test/support/live_views/streams.ex
- test/support/live_views/update.ex
- test/support/live_views/upload_live.ex
This commit addresses the differentiation between back and forward navigation in the browser's history when using the LiveView framework, specifically resolving issues related to navigation state handling. A scenario was identified where a user could experience confusion due to the LiveView trying to patch a page instead of performing a live navigation when using the back button. The solution involves storing a backType
in the history state, which allows the system to correctly identify whether the navigation is backward or forward. This change ensures that the appropriate navigation method is applied, preventing unnecessary remounts and improving user experience.
In addition to the primary fix, the commit includes modifications to the JavaScript files that handle navigation, updating the state management to track the direction of navigation (forward or backward) and incorporating tests to ensure the correct behavior. The changes also streamline the handling of history states by preserving the current navigation position and ensuring that the LiveView correctly processes navigation events without causing full page reloads. Overall, this commit enhances the robustness of navigation within the LiveView framework, making it more intuitive for users.
Files changed
- assets/js/phoenix_live_view/constants.js
- assets/js/phoenix_live_view/live_socket.js
- assets/js/phoenix_live_view/view.js
- assets/test/live_socket_test.js
- test/e2e/support/navigation.ex
- test/e2e/tests/navigation.spec.js
This commit updates the CHANGELOG.md file for version 1.0.0-rc.8, highlighting significant changes and enhancements made to the project. Notably, it introduces a backwards incompatible change by requiring Elixir version 1.14 or higher. Several bug fixes are also documented, including resolutions for issues related to live navigation, live uploads with large chunk sizes, and maintaining focus on inputs during updates. Additionally, it addresses a rare error concerning live components and ensures that the live session is enforced during routing.
In terms of enhancements, the commit extends the HEEx syntax for better variable interpolation within tag bodies, introduces support for the default
attribute in the <.live_title>
component, and adds the refute_push_event
feature to Phoenix.LiveViewTest
. The commit also emphasizes the importance of preserving intentional newlines when formatting comments, contributing to overall code clarity and usability.
Files changed
- CHANGELOG.md
The commit marks the release of version 1.0.0-rc.8 for the Phoenix LiveView JavaScript client. Key modifications include updating the version number in multiple files, such as package.json
, package-lock.json
, and CHANGELOG.md
, which now reflects the new version along with the date of release (2024-12-02).
Additionally, the changelog highlights a significant backwards incompatible change: the requirement for Elixir version 1.14 or higher. Overall, this release appears to focus on versioning updates and ensuring compatibility with the specified Elixir version.
Files changed
- CHANGELOG.md
- assets/package-lock.json
- assets/package.json
- package.json
This commit addresses a minor typographical error in the CHANGELOG.md file, specifically correcting the phrase "losing focus stat" to "losing focus state" in the bug fixes section. The change highlights the importance of precise language in documentation, ensuring clarity for users and developers alike.
In addition to the typo fix, the commit also documents several bug fixes related to LiveView functionality, including issues with live navigation, uploads, and component updates. These improvements enhance the user experience by resolving problems that could lead to unexpected behavior during interactions with the application.
Files changed
- CHANGELOG.md
This commit introduces a new feature that allows developers to disable curly interpolation in Phoenix components by using the phx-no-curly-interpolation
attribute. This is particularly useful in scenarios where curly braces cannot be utilized, such as within <script>
and <style>
tags, which can complicate the writing of JavaScript and CSS. The commit modifies several files to implement this functionality, ensuring that when the attribute is applied, curly braces interpolation is turned off for the specified tag and its children.
Additionally, the commit updates related documentation and tests to reflect the changes in attribute handling. It adjusts the logic in the tokenizer and various components of the Phoenix LiveView framework to accommodate this new option, ensuring that the migration from EEx to curly braces syntax can be controlled via the new attribute. Overall, this enhancement aims to improve the developer experience by providing more flexibility in how interpolation is handled within Phoenix components.
Files changed
- lib/phoenix_component.ex
- lib/phoenix_live_view/html_algebra.ex
- lib/phoenix_live_view/html_formatter.ex
- lib/phoenix_live_view/tag_engine.ex
- lib/phoenix_live_view/tokenizer.ex
- test/phoenix_live_view/html_engine_test.exs
- test/phoenix_live_view/html_formatter_test.exs
- test/phoenix_live_view/tokenizer_test.exs
The commit marks the release of version 1.0.0-rc.9, indicating a significant update to the project. Several key files have been modified, including the package.json
and package-lock.json
, which typically reflect changes in dependencies or scripts related to the project's JavaScript environment.
Additionally, the CHANGELOG.md
has been updated to document the changes made in this release, while the mix.exs
file indicates updates to the Elixir project's configuration. The commit also includes modifications to various static files related to Phoenix LiveView, suggesting improvements or updates to the JavaScript assets used in the application. Overall, this release appears to focus on enhancing the project's functionality and dependencies.
Files changed
- CHANGELOG.md
- assets/package-lock.json
- assets/package.json
- mix.exs
- package.json
- priv/static/phoenix_live_view.cjs.js
- priv/static/phoenix_live_view.esm.js
- priv/static/phoenix_live_view.js
- priv/static/phoenix_live_view.min.js
The commit marks the official release of version 1.0.0 of the project, indicating a significant milestone in its development. Multiple files have been modified, including key configuration files such as package.json
and package-lock.json
, which suggest updates to dependencies or project settings.
Additionally, several JavaScript files related to the Phoenix LiveView framework have been updated, indicating potential enhancements or fixes in the live view functionality. The inclusion of a CHANGELOG.md
file implies that changes and improvements have been documented, providing users with an overview of the modifications made in this release. Overall, this commit reflects a comprehensive update aimed at improving the project's stability and performance.
Files changed
- CHANGELOG.md
- assets/package-lock.json
- assets/package.json
- mix.exs
- package.json
- priv/static/phoenix_live_view.cjs.js
- priv/static/phoenix_live_view.esm.js
- priv/static/phoenix_live_view.js
- priv/static/phoenix_live_view.min.js
This commit addresses a typographical error in the documentation found in the CHANGELOG.md file. Specifically, it corrects the misspelling of "attrbute" to "attribute" in the context of discussing the removal of the phx-page-loading
attribute, which has been replaced by the page_loading: true
option in the Phoenix.LiveView.JS.push/2
function.
The changes made include one addition and one deletion, along with two modifications to the text. This update ensures that the documentation is accurate and clear for users migrating from phx-feedback-for
.
Files changed
- CHANGELOG.md