feat(dashboard): add appearance palettes and templates redesign#361
Conversation
rmyndharis
left a comment
There was a problem hiding this comment.
Really nice work, @Leslie-23 — I rendered this locally (light + a couple of palettes, with a few seeded templates) and it's a clear improvement on both fronts. Approving, with one small consistency fix I'd love to see folded in.
What's great
- Templates redesign → a 3-pane workspace (library list + search + placeholder chips · editor · live preview) instead of the flat grid. Much better for browsing/editing a set, and the search + live
{{placeholder}}preview are genuinely useful. It also reuses the design tokens (var(--bg-white),var(--border),var(--text-muted)), so it tracks dark mode, and it's responsive (breakpoints at 1280/900/640 collapse the panes cleanly). - Palette feature → clean and well-architected:
ThemePaletteis typed, validated (isPaletteguard), persisted, and applied viadata-paletteoverriding--primary/--primary-hover/--primary-soft. The picker in the Appearance menu is tidy. This is the right way to do accent theming.
One thing to fix before merge (1-line-ish)
The redesign's selected-template highlight is hardcoded OpenWA-green (rgba(37, 211, 102, …) in Templates.css), so it doesn't follow the palette this same PR introduces. I confirmed it by switching to the Rose palette: the nav item, buttons, and preview chips all re-theme to rose, but the selected list item stays a green box — visibly out of place.
The carried-over green should use the token you already added:
/* selected template list item */
.template-list-item.selected {
border-color: var(--primary);
background: var(--primary-soft); /* you already define --primary-soft per palette */
}(Same for the other rgba(37, 211, 102, …) spots.) On the default OpenWA palette it looks identical; on any other palette it now stays consistent.
The status colors (
#fee2e2,#ecfdf5, …) are fine to leave hardcoded — they match the existing dashboard-wide pattern (used in ~9 other CSS files), so no need to touch those here.
Minor (housekeeping)
- For a visual redesign, please add before/after screenshots to the PR — it makes review (and the changelog later) much easier.
- The description is still the template placeholder ("Brief description of changes") and
Closes #is empty — a sentence or two on the two features + linking any related issue would be great.
Once the selected-item highlight is wired to var(--primary-soft), this is good to go. Thanks for the polish — the templates page is a lot nicer to use now. 🎨
|
Thanks for the detailed review and approval. |
|
Re-reviewed after your push, @Leslie-23 — and the consistency fix landed exactly right. I confirmed I also ran the full local gate on your branch and everything is clean: dashboard lint (0 errors), dashboard build, backend There's just one thing I'd like to tidy up before I merge, since OpenWA ships full localization across all nine locales:
Two non-blocking notes for the changelog later (no action needed from you):
This is excellent work and effectively ready — just the seven translations and I'll merge it straight away. Thank you for the careful polish; the Templates page is genuinely much nicer to use now. |
|
Thanks again for the careful review. I’ve pushed the remaining i18n cleanup for Appreciate the feedback and the guidance throughout this PR. |
Description
Adds dashboard appearance customization and redesigns the message templates workspace.
The new Appearance menu lets users switch between light, dark, system mode, and selectable accent palettes, with the selected palette persisted and applied across dashboard UI tokens. The Templates page has been redesigned into a searchable workspace with a saved-template library, editor, live preview, and placeholder inputs for easier template management.
This PR also includes small follow-up hardening fixes discovered during review: chat error handling no longer refetches repeatedly after toast updates, and the WhatsApp Web adapter skips malformed chat entries instead of failing the whole chat list request.
Type of Change
Checklist
Validation
npm.cmd run i18n:checknpm.cmd run buildReviewer also confirmed:
whatsapp-web-jsadapter suiteScreenshots (if applicable)
Pending.
Related Issues
N/A