From fcf16fd65403a7b0550b8e2dca20ce2164aeb31f Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Wed, 10 Jun 2026 17:15:34 -0400 Subject: [PATCH] refactor(settings): replace composer toolbar toggle rows with chip grid 8 individual SettingTile rows collapsed into a single wrapped chip grid. Active chips show as Primary+outlined; inactive as Secondary. Clicking any chip toggles it. Drops from ~83 lines to ~25 and reads at a glance. Co-Authored-By: Claude Sonnet 4.6 --- src/app/features/settings/general/General.tsx | 116 ++++++------------ 1 file changed, 35 insertions(+), 81 deletions(-) diff --git a/src/app/features/settings/general/General.tsx b/src/app/features/settings/general/General.tsx index efa9874c9..8a83441c8 100644 --- a/src/app/features/settings/general/General.tsx +++ b/src/app/features/settings/general/General.tsx @@ -933,6 +933,17 @@ function Editor() { setComposerToolbarButtons({ ...composerToolbarButtons, [key]: !composerToolbarButtons[key] }); }; + const TOOLBAR_CHIPS: Array<{ key: keyof ComposerToolbarSettings; label: string }> = [ + { key: 'showFormat', label: 'Format' }, + { key: 'showEmoji', label: 'Emoji' }, + { key: 'showSticker', label: 'Sticker' }, + { key: 'showGif', label: 'GIF' }, + { key: 'showLocation', label: 'Location' }, + { key: 'showPoll', label: 'Poll' }, + { key: 'showVoice', label: 'Voice' }, + { key: 'showSchedule', label: 'Schedule' }, + ]; + return ( Editor @@ -958,89 +969,32 @@ function Editor() { after={} /> - Composer Toolbar Buttons - + toggleToolbarButton('showFormat')} - /> - } - /> - toggleToolbarButton('showEmoji')} - /> - } - /> - toggleToolbarButton('showSticker')} - /> - } - /> - toggleToolbarButton('showGif')} - /> - } - /> - toggleToolbarButton('showLocation')} - /> - } - /> - toggleToolbarButton('showPoll')} - /> - } - /> - toggleToolbarButton('showVoice')} - /> - } - /> - toggleToolbarButton('showSchedule')} - /> - } + title="Composer Toolbar" + description="Tap a button to show or hide it in the message composer." /> + + {TOOLBAR_CHIPS.map(({ key, label }) => { + const active = composerToolbarButtons?.[key] ?? true; + return ( + toggleToolbarButton(key)} + aria-pressed={active} + > + {label} + + ); + })} + );