From 1e8cd966483b3e4f2e2433a9dbcbad5b3aa37993 Mon Sep 17 00:00:00 2001 From: Richie Date: Thu, 26 Mar 2026 09:19:29 +1100 Subject: [PATCH] =?UTF-8?q?Redesign=20FuneralFinder=20=E2=80=94=20conversa?= =?UTF-8?q?tional=20flow,=20not=20bureaucratic=20form?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete rewrite of the interaction model: Before: numbered steps + uppercase overline labels + cramped option cards → felt like a government form, not gentle guidance After: conversational questions with generous choice cards → "How can we help you today?" not "1. I'M HERE TO" Key changes: - Questions as warm sentences, not uppercase labels - ChoiceCards: generous padding (20px × 16px), descriptions explaining each option, check icon on selection - TypePills: pill-shaped buttons with proper touch targets for funeral types - CompletedRow: "I'm here to: **Arrange a funeral now** · Change" — explicit, accessible, no hidden pencil icon - Only shows one question at a time — true progressive disclosure - CTA only appears once location step is reached - No step numbers, no badges — the vertical flow IS the progression Co-Authored-By: Claude Opus 4.6 (1M context) --- .../organisms/FuneralFinder/FuneralFinder.tsx | 548 +++++++++--------- 1 file changed, 267 insertions(+), 281 deletions(-) diff --git a/src/components/organisms/FuneralFinder/FuneralFinder.tsx b/src/components/organisms/FuneralFinder/FuneralFinder.tsx index a55c263..05f3e00 100644 --- a/src/components/organisms/FuneralFinder/FuneralFinder.tsx +++ b/src/components/organisms/FuneralFinder/FuneralFinder.tsx @@ -1,12 +1,11 @@ import React from 'react'; import Box from '@mui/material/Box'; -import CheckCircleIcon from '@mui/icons-material/CheckCircle'; -import EditOutlinedIcon from '@mui/icons-material/EditOutlined'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; import type { SxProps, Theme } from '@mui/material/styles'; import { Typography } from '../../atoms/Typography'; import { Button } from '../../atoms/Button'; -import { Chip } from '../../atoms/Chip'; import { Input } from '../../atoms/Input'; +import { Link } from '../../atoms/Link'; // ─── Types ─────────────────────────────────────────────────────────────────── @@ -44,61 +43,24 @@ export interface FuneralFinderProps { sx?: SxProps; } -// ─── Step state types ──────────────────────────────────────────────────────── +// ─── Internal types ────────────────────────────────────────────────────────── type Intent = 'arrange' | 'preplan' | null; type PlanningFor = 'myself' | 'someone-else' | null; -type StepStatus = 'active' | 'completed' | 'locked'; - // ─── Sub-components ────────────────────────────────────────────────────────── -/** Step number badge or completed checkmark */ -function StepBadge({ step, status }: { step: number; status: StepStatus }) { - if (status === 'completed') { - return ( -