OUT-3729, OUT-3717 | Improve visual appearance of the Your Actions field - #204
Conversation
- Replace bulky cards with compact pill rows matching the new design
- Verb-sentence labels (Pay/Sign/Submit/Complete) with inline count; short {{N}} chip in editor
- Container-query grid: 4 and 3 actions fill the row; 1 and 2 stay third-width and left-align
- Hide actions with 0 pending events and the whole section when nothing is pending (OUT-3717)
- Preserve click-through navigation to the underlying apps
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryReplaces the bulky "Your Actions" cards with compact pill rows and fixes 0-count actions appearing in the client view. Changes touch only the three action-item files with no backend or schema impact.
Confidence Score: 4/5Safe to merge; logic is self-contained and well-guarded against empty-state flashes. The filtering and guard logic in The Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[ActionsCard renders] --> B{isPreviewMode?}
B -- Yes --> C{counts resolved?}
C -- No --> D[return null\nno flash]
C -- Yes --> E[Filter: keep actions\nwhere count > 0]
E --> F{visibleCount > 0?}
F -- No --> G[return null\nno empty state]
F -- Yes --> H[Render pill grid]
B -- No\nEditor mode --> I[visibleActions = all\nenabled actions]
I --> J{enabledActions.length > 0?}
J -- No --> G
J -- Yes --> H
H --> K[ActionItem per action]
K --> L{isLoading?}
L -- Yes --> M[Skeleton pill div]
L -- No --> N[Button pill\nverb + count + noun]
N --> O{clientId?}
O -- Yes --> P[hover styles +\npostMessage on click]
O -- No --> Q[Static pill\nno interaction]
|
1 and 2 action cards now cap at a fixed 240px width and left-align in both the editor (IU) and client views, so space stays on the right regardless of which view renders them. Also lower the fill breakpoint to 700px so 3 and 4 actions fill the row in the editor's content column (which sits just under 768px due to the customization sidebar). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Convert the container-query breakpoints and the capped card width to rem (400px->25rem, 700px->43.75rem, 240px->15rem). No behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
priosshrsth
left a comment
There was a problem hiding this comment.
@arpandhakal lgtm. Screenshots would have been helpful in this case though.
Replace the static time-of-day greeting with an editable, autofill-capable
header. The heading defaults to "Welcome, {{client.firstName}}" and both the
heading and subheading are now minimal single-line rich-text fields that
support plain text + autofill fields only (no marks, lists, tables, etc).
- Add MinimalEditor + getMinimalExtensions (Document content:'block' for
single-line, Paragraph, Text, UndoRedo, reused AutofillField, Placeholder)
- Add settings.heading column (HTML, default "Welcome, {{client.firstName}}");
subheading now stores HTML and is backward compatible with existing plain text
- Wire heading through the store, change-detection and save payload
- Scope .minimal-editor CSS so global .tiptap block styles don't leak in
- Remove the now-unused getTimeOfDay greeting helper
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The change-detection baseline kept the subheading in its legacy plain-text form (e.g. "Here's …") while the editor always emits "<p>…</p>", so reverting a subheading edit never string-matched the baseline and the Save Changes button stayed visible. The heading was unaffected because its default is already canonical "<p>…</p>". Normalize heading/subheading to the editor's canonical serialization when a non-canonical value loads, updating the live value and the change-detection baseline atomically via a new syncCanonicalContent store action. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…205) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Autofill fields are an inline atom TipTap node rendered via a React
NodeView. In client/preview view the resolved value was neither
selectable/copiable nor clickable when it was a link.
- Add `renderText` to the autofill node so TipTap's clipboard text
serializer emits the resolved value (template `{{...}}` falls back when
no preview client is available, e.g. in the editor). Resolution happens
outside React via a store/query-cache helper.
- Render resolved URLs and emails as anchors styled with the editor's
`cop-text-link cursor-pointer` classes; `stopPropagation` on mousedown
lets native navigation work in the readonly view.
Both fixes live on the shared extension/NodeView, so the minimal editor
(home header/subheading) inherits them automatically.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
OUT-3841 | Home App - Autofill Fields Are Not Copiable or Clickable
feat(OUT-3510): make home page header editable with autofill
Changes
Revamps the "Your Actions" section on Client Home from bulky cards into compact pill rows to match the new design (OUT-3729), and fixes 0-event actions appearing for clients (OUT-3717).
bg-background-primary, subtle border,rounded-md, reduced padding), sentence-case "Your actions" heading. Removed the "You have N pending items" subheading, the per-card count line, the arrow icon, and the bottom link.{{N}}placeholder chip.history.pushto the parent window to open the corresponding app (tasks → tasks app, others → their route). Hover affordance and navigation are both gated onclientId, so they apply in the client view but not the editor.Testing Criteria
{{N}}placeholder chip; sidebar toggle/reorder still works.Notes
OUT-3510— this PR targets theOUT-3510branch as its base (notmain).OUT-3510should land first.Impact & Surface Area of Change
action-item.tsx,actions-card.tsx, and averbfield added to each definition inconstant.ts.useNotificationCounts,useEnabledActions, anduseAppDisplayNamesare consumed unchanged.🤖 Generated with Claude Code