diff --git a/guides/contexts.md b/guides/contexts.md index 333eaa209f..84f89333c8 100644 --- a/guides/contexts.md +++ b/guides/contexts.md @@ -152,7 +152,7 @@ defmodule HelloWeb.ProductController do case Catalog.create_product(product_params) do {:ok, product} -> conn - |> put_flash(:info, "Product created successfully.") + |> put_flash(:success, "Product created successfully.") |> redirect(to: ~p"/products/#{product}") {:error, %Ecto.Changeset{} = changeset} -> @@ -777,7 +777,7 @@ defmodule HelloWeb.CartItemController do case ShoppingCart.add_item_to_cart(conn.assigns.cart, product_id) do {:ok, _item} -> conn - |> put_flash(:info, "Item added to your cart") + |> put_flash(:success, "Item added to your cart") |> redirect(to: ~p"/cart") {:error, _changeset} -> @@ -1209,7 +1209,7 @@ defmodule HelloWeb.OrderController do case Orders.complete_order(conn.assigns.cart) do {:ok, order} -> conn - |> put_flash(:info, "Order created successfully.") + |> put_flash(:success, "Order created successfully.") |> redirect(to: ~p"/orders/#{order}") {:error, _reason} -> diff --git a/guides/testing/testing_controllers.md b/guides/testing/testing_controllers.md index b406dd1bef..be1d5cd6e5 100644 --- a/guides/testing/testing_controllers.md +++ b/guides/testing/testing_controllers.md @@ -73,7 +73,7 @@ def create(conn, %{"post" => post_params}) do case Blog.create_post(post_params) do {:ok, post} -> conn - |> put_flash(:info, "Post created successfully.") + |> put_flash(:success, "Post created successfully.") |> redirect(to: ~p"/posts/#{post}") {:error, %Ecto.Changeset{} = changeset} -> @@ -142,7 +142,7 @@ def delete(conn, %{"id" => id}) do {:ok, _post} = Blog.delete_post(post) conn - |> put_flash(:info, "Post deleted successfully.") + |> put_flash(:success, "Post deleted successfully.") |> redirect(to: ~p"/posts") end ``` diff --git a/installer/templates/phx_web/components/core_components.ex b/installer/templates/phx_web/components/core_components.ex index c604ef5533..cfb76dbc85 100644 --- a/installer/templates/phx_web/components/core_components.ex +++ b/installer/templates/phx_web/components/core_components.ex @@ -30,7 +30,7 @@ defmodule <%= @web_namespace %>.CoreComponents do attr :id, :string, doc: "the optional id of flash container" attr :flash, :map, default: %{}, doc: "the map of flash messages to display" attr :title, :string, default: nil - attr :kind, :atom, values: [:info, :error], doc: "used for styling and flash lookup" + attr :kind, :atom, values: [:info, :success, :error], doc: "used for styling and flash lookup" attr :rest, :global, doc: "the arbitrary HTML attributes to add to the flash container" slot :inner_block, doc: "the optional inner block that renders the flash message" @@ -46,13 +46,15 @@ defmodule <%= @web_namespace %>.CoreComponents do role="alert" class={[ "fixed top-2 right-2 mr-2 w-80 sm:w-96 z-50 rounded-lg p-3 ring-1", - @kind == :info && "bg-emerald-50 text-emerald-800 ring-emerald-500 fill-cyan-900", + @kind == :info && "bg-sky-50 text-sky-800 ring-sky-500 fill-sky-900", + @kind == :success && "bg-emerald-50 text-emerald-800 ring-emerald-500 fill-emerald-900", @kind == :error && "bg-rose-50 text-rose-900 shadow-md ring-rose-500 fill-rose-900" ]} {@rest} >

<.icon :if={@kind == :info} name="hero-information-circle-mini" class="h-4 w-4" /> + <.icon :if={@kind == :success} name="hero-check-circle-mini" class="h-4 w-4" /> <.icon :if={@kind == :error} name="hero-exclamation-circle-mini" class="h-4 w-4" /> <%%= @title %>

@@ -77,7 +79,8 @@ defmodule <%= @web_namespace %>.CoreComponents do def flash_group(assigns) do ~H"""
- <.flash kind={:info} title=<%= maybe_heex_attr_gettext.("Success!", @gettext) %> flash={@flash} /> + <.flash kind={:info} title=<%= maybe_heex_attr_gettext.("Info", @gettext) %> flash={@flash} /> + <.flash kind={:success} title=<%= maybe_heex_attr_gettext.("Success!", @gettext) %> flash={@flash} /> <.flash kind={:error} title=<%= maybe_heex_attr_gettext.("Error!", @gettext) %> flash={@flash} /> <.flash id="client-error" diff --git a/installer/test/phx_new_test.exs b/installer/test/phx_new_test.exs index d33502a688..5fac19c400 100644 --- a/installer/test/phx_new_test.exs +++ b/installer/test/phx_new_test.exs @@ -111,7 +111,7 @@ defmodule Mix.Tasks.Phx.NewTest do assert_file("phx_blog/lib/phx_blog_web/components/core_components.ex", fn file -> assert file =~ "defmodule PhxBlogWeb.CoreComponents" assert file =~ ~S|aria-label={gettext("close")}| - assert file =~ ~S|<.flash kind={:info} title={gettext("Success!")} flash={@flash} />| + assert file =~ ~S|<.flash kind={:success} title={gettext("Success!")} flash={@flash} />| end) assert_file("phx_blog/lib/phx_blog_web/components/layouts.ex", fn file -> @@ -567,7 +567,7 @@ defmodule Mix.Tasks.Phx.NewTest do assert_file("phx_blog/lib/phx_blog_web/components/core_components.ex", fn file -> assert file =~ ~S|aria-label="close"| - assert file =~ ~S|<.flash kind={:info} title="Success!" flash={@flash} />| + assert file =~ ~S|<.flash kind={:success} title="Success!" flash={@flash} />| end) end) end diff --git a/priv/templates/phx.gen.auth/confirmation_controller.ex b/priv/templates/phx.gen.auth/confirmation_controller.ex index 5a70d6e062..205a647fd1 100644 --- a/priv/templates/phx.gen.auth/confirmation_controller.ex +++ b/priv/templates/phx.gen.auth/confirmation_controller.ex @@ -34,7 +34,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.confirm_<%= schema.singular %>(token) do {:ok, _} -> conn - |> put_flash(:info, "<%= schema.human_singular %> confirmed successfully.") + |> put_flash(:success, "<%= schema.human_singular %> confirmed successfully.") |> redirect(to: ~p"/") :error -> diff --git a/priv/templates/phx.gen.auth/confirmation_controller_test.exs b/priv/templates/phx.gen.auth/confirmation_controller_test.exs index d38e11f889..492832cf9a 100644 --- a/priv/templates/phx.gen.auth/confirmation_controller_test.exs +++ b/priv/templates/phx.gen.auth/confirmation_controller_test.exs @@ -85,7 +85,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web conn = post(conn, ~p"<%= schema.route_prefix %>/confirm/#{token}") assert redirected_to(conn) == ~p"/" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "<%= schema.human_singular %> confirmed successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>!(<%= schema.singular %>.id).confirmed_at diff --git a/priv/templates/phx.gen.auth/confirmation_live.ex b/priv/templates/phx.gen.auth/confirmation_live.ex index 251afacec0..4ada218c5d 100644 --- a/priv/templates/phx.gen.auth/confirmation_live.ex +++ b/priv/templates/phx.gen.auth/confirmation_live.ex @@ -35,7 +35,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web {:ok, _} -> {:noreply, socket - |> put_flash(:info, "<%= inspect schema.alias %> confirmed successfully.") + |> put_flash(:success, "<%= inspect schema.alias %> confirmed successfully.") |> redirect(to: ~p"/")} :error -> diff --git a/priv/templates/phx.gen.auth/confirmation_live_test.exs b/priv/templates/phx.gen.auth/confirmation_live_test.exs index 0eac2e43c0..e156c00cf9 100644 --- a/priv/templates/phx.gen.auth/confirmation_live_test.exs +++ b/priv/templates/phx.gen.auth/confirmation_live_test.exs @@ -33,7 +33,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web assert {:ok, conn} = result - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "<%= inspect schema.alias %> confirmed successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>!(<%= schema.singular %>.id).confirmed_at diff --git a/priv/templates/phx.gen.auth/registration_controller.ex b/priv/templates/phx.gen.auth/registration_controller.ex index 46752454d4..3a951c49c5 100644 --- a/priv/templates/phx.gen.auth/registration_controller.ex +++ b/priv/templates/phx.gen.auth/registration_controller.ex @@ -20,7 +20,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web ) conn - |> put_flash(:info, "<%= schema.human_singular %> created successfully.") + |> put_flash(:success, "<%= schema.human_singular %> created successfully.") |> <%= inspect schema.alias %>Auth.log_in_<%= schema.singular %>(<%= schema.singular %>) {:error, %Ecto.Changeset{} = changeset} -> diff --git a/priv/templates/phx.gen.auth/reset_password_controller.ex b/priv/templates/phx.gen.auth/reset_password_controller.ex index e572e4d5f1..1b252a1c73 100644 --- a/priv/templates/phx.gen.auth/reset_password_controller.ex +++ b/priv/templates/phx.gen.auth/reset_password_controller.ex @@ -35,7 +35,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.reset_<%= schema.singular %>_password(conn.assigns.<%= schema.singular %>, <%= schema.singular %>_params) do {:ok, _} -> conn - |> put_flash(:info, "Password reset successfully.") + |> put_flash(:success, "Password reset successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>/log-in") {:error, changeset} -> diff --git a/priv/templates/phx.gen.auth/reset_password_controller_test.exs b/priv/templates/phx.gen.auth/reset_password_controller_test.exs index dcf0dc5c96..652554e882 100644 --- a/priv/templates/phx.gen.auth/reset_password_controller_test.exs +++ b/priv/templates/phx.gen.auth/reset_password_controller_test.exs @@ -94,7 +94,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web assert redirected_to(conn) == ~p"<%= schema.route_prefix %>/log-in" refute get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Password reset successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>_by_email_and_password(<%= schema.singular %>.email, "new valid password") diff --git a/priv/templates/phx.gen.auth/reset_password_live.ex b/priv/templates/phx.gen.auth/reset_password_live.ex index 02ae26850f..ff5f1edb9b 100644 --- a/priv/templates/phx.gen.auth/reset_password_live.ex +++ b/priv/templates/phx.gen.auth/reset_password_live.ex @@ -67,7 +67,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web {:ok, _} -> {:noreply, socket - |> put_flash(:info, "Password reset successfully.") + |> put_flash(:success, "Password reset successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>/log-in")} {:error, changeset} -> diff --git a/priv/templates/phx.gen.auth/reset_password_live_test.exs b/priv/templates/phx.gen.auth/reset_password_live_test.exs index 6e73bfe8e9..5605c4f9a5 100644 --- a/priv/templates/phx.gen.auth/reset_password_live_test.exs +++ b/priv/templates/phx.gen.auth/reset_password_live_test.exs @@ -64,7 +64,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web |> follow_redirect(conn, ~p"<%= schema.route_prefix %>/log-in") refute get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Password reset successfully" + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Password reset successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>_by_email_and_password(<%= schema.singular %>.email, "new valid password") end diff --git a/priv/templates/phx.gen.auth/session_controller.ex b/priv/templates/phx.gen.auth/session_controller.ex index bab413a3c2..e3db58b13d 100644 --- a/priv/templates/phx.gen.auth/session_controller.ex +++ b/priv/templates/phx.gen.auth/session_controller.ex @@ -5,25 +5,25 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web alias <%= inspect auth_module %><%= if live? do %> def create(conn, %{"_action" => "registered"} = params) do - create(conn, params, "Account created successfully!") + create(conn, params, :success, "Account created successfully!") end def create(conn, %{"_action" => "password-updated"} = params) do conn |> put_session(:<%= schema.singular %>_return_to, ~p"<%= schema.route_prefix %>/settings") - |> create(params, "Password updated successfully!") + |> create(params, :success, "Password updated successfully!") end def create(conn, params) do - create(conn, params, "Welcome back!") + create(conn, params, :info, "Welcome back!") end - defp create(conn, %{"<%= schema.singular %>" => <%= schema.singular %>_params}, info) do + defp create(conn, %{"<%= schema.singular %>" => <%= schema.singular %>_params}, kind, message) do %{"email" => email, "password" => password} = <%= schema.singular %>_params if <%= schema.singular %> = <%= inspect context.alias %>.get_<%= schema.singular %>_by_email_and_password(email, password) do conn - |> put_flash(:info, info) + |> put_flash(kind, message) |> <%= inspect schema.alias %>Auth.log_in_<%= schema.singular %>(<%= schema.singular %>, <%= schema.singular %>_params) else # In order to prevent user enumeration attacks, don't disclose whether the email is registered. @@ -53,7 +53,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web def delete(conn, _params) do conn - |> put_flash(:info, "Logged out successfully.") + |> put_flash(:success, "Logged out successfully.") |> <%= inspect schema.alias %>Auth.log_out_<%= schema.singular %>() end end diff --git a/priv/templates/phx.gen.auth/session_controller_test.exs b/priv/templates/phx.gen.auth/session_controller_test.exs index 8004208b15..302870298d 100644 --- a/priv/templates/phx.gen.auth/session_controller_test.exs +++ b/priv/templates/phx.gen.auth/session_controller_test.exs @@ -81,7 +81,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web }) assert redirected_to(conn) == ~p"/" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Account created successfully" + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Account created successfully" end test "login following password update", %{conn: conn, <%= schema.singular %>: <%= schema.singular %>} do @@ -96,7 +96,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web }) assert redirected_to(conn) == ~p"<%= schema.route_prefix %>/settings" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Password updated successfully" + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Password updated successfully" end test "redirects to login page with invalid credentials", %{conn: conn} do @@ -126,14 +126,14 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web conn = conn |> log_in_<%= schema.singular %>(<%= schema.singular %>) |> delete(~p"<%= schema.route_prefix %>/log-out") assert redirected_to(conn) == ~p"/" refute get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Logged out successfully" + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Logged out successfully" end test "succeeds even if the <%= schema.singular %> is not logged in", %{conn: conn} do conn = delete(conn, ~p"<%= schema.route_prefix %>/log-out") assert redirected_to(conn) == ~p"/" refute get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ "Logged out successfully" + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Logged out successfully" end end end diff --git a/priv/templates/phx.gen.auth/settings_controller.ex b/priv/templates/phx.gen.auth/settings_controller.ex index c046cf7796..11c09a8471 100644 --- a/priv/templates/phx.gen.auth/settings_controller.ex +++ b/priv/templates/phx.gen.auth/settings_controller.ex @@ -41,7 +41,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.update_<%= schema.singular %>_password(<%= schema.singular %>, password, <%= schema.singular %>_params) do {:ok, <%= schema.singular %>} -> conn - |> put_flash(:info, "Password updated successfully.") + |> put_flash(:success, "Password updated successfully.") |> put_session(:<%= schema.singular %>_return_to, ~p"<%= schema.route_prefix %>/settings") |> <%= inspect schema.alias %>Auth.log_in_<%= schema.singular %>(<%= schema.singular %>) @@ -54,7 +54,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.update_<%= schema.singular %>_email(conn.assigns.current_<%= schema.singular %>, token) do :ok -> conn - |> put_flash(:info, "Email changed successfully.") + |> put_flash(:success, "Email changed successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>/settings") :error -> diff --git a/priv/templates/phx.gen.auth/settings_controller_test.exs b/priv/templates/phx.gen.auth/settings_controller_test.exs index 6f5ce220d0..b518c94dab 100644 --- a/priv/templates/phx.gen.auth/settings_controller_test.exs +++ b/priv/templates/phx.gen.auth/settings_controller_test.exs @@ -36,7 +36,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web assert get_session(new_password_conn, :<%= schema.singular %>_token) != get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(new_password_conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(new_password_conn.assigns.flash, :success) =~ "Password updated successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>_by_email_and_password(<%= schema.singular %>.email, "new valid password") @@ -112,7 +112,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web conn = get(conn, ~p"<%= schema.route_prefix %>/settings/confirm-email/#{token}") assert redirected_to(conn) == ~p"<%= schema.route_prefix %>/settings" - assert Phoenix.Flash.get(conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(conn.assigns.flash, :success) =~ "Email changed successfully" refute <%= inspect context.alias %>.get_<%= schema.singular %>_by_email(<%= schema.singular %>.email) diff --git a/priv/templates/phx.gen.auth/settings_live.ex b/priv/templates/phx.gen.auth/settings_live.ex index 7dc7c999bf..9561cecbc0 100644 --- a/priv/templates/phx.gen.auth/settings_live.ex +++ b/priv/templates/phx.gen.auth/settings_live.ex @@ -93,7 +93,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web socket = case <%= inspect context.alias %>.update_<%= schema.singular %>_email(socket.assigns.current_<%= schema.singular %>, token) do :ok -> - put_flash(socket, :info, "Email changed successfully.") + put_flash(socket, :success, "Email changed successfully.") :error -> put_flash(socket, :error, "Email change link is invalid or it has expired.") diff --git a/priv/templates/phx.gen.auth/settings_live_test.exs b/priv/templates/phx.gen.auth/settings_live_test.exs index 32f4ebd929..0093c505dc 100644 --- a/priv/templates/phx.gen.auth/settings_live_test.exs +++ b/priv/templates/phx.gen.auth/settings_live_test.exs @@ -112,7 +112,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web assert get_session(new_password_conn, :<%= schema.singular %>_token) != get_session(conn, :<%= schema.singular %>_token) - assert Phoenix.Flash.get(new_password_conn.assigns.flash, :info) =~ + assert Phoenix.Flash.get(new_password_conn.assigns.flash, :success) =~ "Password updated successfully" assert <%= inspect context.alias %>.get_<%= schema.singular %>_by_email_and_password(<%= schema.singular %>.email, new_password) @@ -176,7 +176,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web assert {:live_redirect, %{to: path, flash: flash}} = redirect assert path == ~p"<%= schema.route_prefix %>/settings" - assert %{"info" => message} = flash + assert %{"success" => message} = flash assert message == "Email changed successfully." refute <%= inspect context.alias %>.get_<%= schema.singular %>_by_email(<%= schema.singular %>.email) assert <%= inspect context.alias %>.get_<%= schema.singular %>_by_email(email) diff --git a/priv/templates/phx.gen.html/controller.ex b/priv/templates/phx.gen.html/controller.ex index de3e013ed9..d15e39abf4 100644 --- a/priv/templates/phx.gen.html/controller.ex +++ b/priv/templates/phx.gen.html/controller.ex @@ -18,7 +18,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.create_<%= schema.singular %>(<%= schema.singular %>_params) do {:ok, <%= schema.singular %>} -> conn - |> put_flash(:info, "<%= schema.human_singular %> created successfully.") + |> put_flash(:success, "<%= schema.human_singular %> created successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>/#{<%= schema.singular %>}") {:error, %Ecto.Changeset{} = changeset} -> @@ -43,7 +43,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web case <%= inspect context.alias %>.update_<%= schema.singular %>(<%= schema.singular %>, <%= schema.singular %>_params) do {:ok, <%= schema.singular %>} -> conn - |> put_flash(:info, "<%= schema.human_singular %> updated successfully.") + |> put_flash(:success, "<%= schema.human_singular %> updated successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>/#{<%= schema.singular %>}") {:error, %Ecto.Changeset{} = changeset} -> @@ -56,7 +56,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web {:ok, _<%= schema.singular %>} = <%= inspect context.alias %>.delete_<%= schema.singular %>(<%= schema.singular %>) conn - |> put_flash(:info, "<%= schema.human_singular %> deleted successfully.") + |> put_flash(:success, "<%= schema.human_singular %> deleted successfully.") |> redirect(to: ~p"<%= schema.route_prefix %>") end end diff --git a/priv/templates/phx.gen.live/core_components.ex b/priv/templates/phx.gen.live/core_components.ex index c604ef5533..cfb76dbc85 100644 --- a/priv/templates/phx.gen.live/core_components.ex +++ b/priv/templates/phx.gen.live/core_components.ex @@ -30,7 +30,7 @@ defmodule <%= @web_namespace %>.CoreComponents do attr :id, :string, doc: "the optional id of flash container" attr :flash, :map, default: %{}, doc: "the map of flash messages to display" attr :title, :string, default: nil - attr :kind, :atom, values: [:info, :error], doc: "used for styling and flash lookup" + attr :kind, :atom, values: [:info, :success, :error], doc: "used for styling and flash lookup" attr :rest, :global, doc: "the arbitrary HTML attributes to add to the flash container" slot :inner_block, doc: "the optional inner block that renders the flash message" @@ -46,13 +46,15 @@ defmodule <%= @web_namespace %>.CoreComponents do role="alert" class={[ "fixed top-2 right-2 mr-2 w-80 sm:w-96 z-50 rounded-lg p-3 ring-1", - @kind == :info && "bg-emerald-50 text-emerald-800 ring-emerald-500 fill-cyan-900", + @kind == :info && "bg-sky-50 text-sky-800 ring-sky-500 fill-sky-900", + @kind == :success && "bg-emerald-50 text-emerald-800 ring-emerald-500 fill-emerald-900", @kind == :error && "bg-rose-50 text-rose-900 shadow-md ring-rose-500 fill-rose-900" ]} {@rest} >

<.icon :if={@kind == :info} name="hero-information-circle-mini" class="h-4 w-4" /> + <.icon :if={@kind == :success} name="hero-check-circle-mini" class="h-4 w-4" /> <.icon :if={@kind == :error} name="hero-exclamation-circle-mini" class="h-4 w-4" /> <%%= @title %>

@@ -77,7 +79,8 @@ defmodule <%= @web_namespace %>.CoreComponents do def flash_group(assigns) do ~H"""
- <.flash kind={:info} title=<%= maybe_heex_attr_gettext.("Success!", @gettext) %> flash={@flash} /> + <.flash kind={:info} title=<%= maybe_heex_attr_gettext.("Info", @gettext) %> flash={@flash} /> + <.flash kind={:success} title=<%= maybe_heex_attr_gettext.("Success!", @gettext) %> flash={@flash} /> <.flash kind={:error} title=<%= maybe_heex_attr_gettext.("Error!", @gettext) %> flash={@flash} /> <.flash id="client-error" diff --git a/priv/templates/phx.gen.live/form.ex b/priv/templates/phx.gen.live/form.ex index 25627a4e3c..9b23ce85b4 100644 --- a/priv/templates/phx.gen.live/form.ex +++ b/priv/templates/phx.gen.live/form.ex @@ -67,7 +67,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web {:ok, <%= schema.singular %>} -> {:noreply, socket - |> put_flash(:info, "<%= schema.human_singular %> updated successfully") + |> put_flash(:success, "<%= schema.human_singular %> updated successfully") |> push_navigate(to: return_path(socket.assigns.return_to, <%= schema.singular %>))} {:error, %Ecto.Changeset{} = changeset} -> @@ -80,7 +80,7 @@ defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web {:ok, <%= schema.singular %>} -> {:noreply, socket - |> put_flash(:info, "<%= schema.human_singular %> created successfully") + |> put_flash(:success, "<%= schema.human_singular %> created successfully") |> push_navigate(to: return_path(socket.assigns.return_to, <%= schema.singular %>))} {:error, %Ecto.Changeset{} = changeset} ->