From e3dd1c4c1e221e5f74f63ba688cb7fe0890b1fc6 Mon Sep 17 00:00:00 2001 From: Guillem Arias Date: Mon, 11 May 2026 14:59:26 +0200 Subject: [PATCH] feat(savings_goals/new): live previewable name avatar + ghost cancel + circular header icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the big square DS::FilledIcon next to the name input with a small Savings::GoalAvatarComponent that previews the goal's avatar (seeded color + first character of the typed name, updates live via new stepper#nameChanged action). Switch the modal header's target avatar from FilledIcon(size: lg, rounded: false) → (size: md, rounded: true) — matches the goal-avatar shape used elsewhere on the page. Replace the hand-rolled + <%= render DS::Button.new( + variant: "ghost", + text: t("savings_goals.form_stepper.cancel"), + data: { + savings_goal_stepper_target: "footerLeftButton", + action: "click->savings-goal-stepper#footerLeft" + } + ) %> <%= render DS::Button.new( text: t("savings_goals.form_stepper.continue"), variant: "primary", diff --git a/app/views/savings_goals/new.html.erb b/app/views/savings_goals/new.html.erb index 3b445a0aa..9fc55b7e6 100644 --- a/app/views/savings_goals/new.html.erb +++ b/app/views/savings_goals/new.html.erb @@ -2,7 +2,7 @@ <% dialog.with_header(custom_header: true) do %>
- <%= render DS::FilledIcon.new(variant: :container, icon: "target", size: "lg", rounded: false) %> + <%= render DS::FilledIcon.new(variant: :container, icon: "target", size: "md", rounded: true) %>

<%= t(".heading") %>