From 41149db685066e3c0b1588a66102e1dcde7cb40b Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Thu, 2 Jul 2026 21:21:00 -0400 Subject: [PATCH] =?UTF-8?q?fix(ui):=20NATIVE-CINNY=20LAW=20=E2=80=94=20rep?= =?UTF-8?q?lace=20emoji=20with=20folds=20icons=20in=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Notification profile presets (P5-27) used literal emoji (🎮/💼/🌙) instead of folds Icons → Gaming=Ball, Work=Monitor, Sleep=BellMute. - Permissions "Powers" list used ✅/❌ text emoji for has/no-power → folds Icons.Check / Icons.Cross (colored via the row). Reviewed the rest of the UI: seasonal-theme picker emoji kept (folds has no holiday-icon equivalents; a distinctly-Lotus visual feature), soundboard clip emoji kept (user-chosen clip identity), URL-preview brand glyphs + upstream device-verification emoji + keyboard key-symbols left as-is. (Also records the F2 URL-preview decision: keep default-on.) Co-Authored-By: Claude Opus 4.8 --- LOTUS_TODO.md | 2 +- .../common-settings/permissions/Powers.tsx | 17 ++++++++++------- .../settings/notifications/Notifications.tsx | 12 ++++++------ 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/LOTUS_TODO.md b/LOTUS_TODO.md index 484503b71..00da31e2d 100644 --- a/LOTUS_TODO.md +++ b/LOTUS_TODO.md @@ -82,7 +82,7 @@ Tier-2 bug-hunt (desktop/native, crypto/session/infra, messaging data) by 3 para **⚠️ FLAGGED — product decision (not auto-changed):** -- **F2:** URL previews **default ON in encrypted rooms** (`settings.ts encUrlPreview: true`) → the homeserver fetches every link in an E2EE message (leaks E2EE link URLs to the server). This is the deliberate Lotus "URL Preview Default in Encrypted Rooms" feature — most clients default it OFF for privacy. **Your call whether to flip the default to `false`.** +- **F2 — DECIDED (keep ON, 2026-07):** URL previews stay **default ON in encrypted rooms** (`settings.ts encUrlPreview: true`) per user preference — the deliberate Lotus "URL Preview Default in Encrypted Rooms" feature. (Trade-off acknowledged: the homeserver fetches links from E2EE messages; users can turn it off per-room.) **Won't-fix / by-design:** M7 (scheduledMessages clamps a past target to 1s — intentional + unit-tested; the modal already guards ≥60s). diff --git a/src/app/features/common-settings/permissions/Powers.tsx b/src/app/features/common-settings/permissions/Powers.tsx index ff00745d4..e9d7715a6 100644 --- a/src/app/features/common-settings/permissions/Powers.tsx +++ b/src/app/features/common-settings/permissions/Powers.tsx @@ -5,6 +5,8 @@ import { Button, Chip, Text, + Icon, + Icons, RectCords, PopOut, Menu, @@ -75,15 +77,16 @@ function PeekPermissions({ powerLevels, power, permissionGroups, children }: Pee const hasPower = requiredPower <= power; return ( - - {hasPower ? '✅' : '❌'} {item.name} - + + {item.name} + ); })} diff --git a/src/app/features/settings/notifications/Notifications.tsx b/src/app/features/settings/notifications/Notifications.tsx index 055270396..2324cff3a 100644 --- a/src/app/features/settings/notifications/Notifications.tsx +++ b/src/app/features/settings/notifications/Notifications.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { useAtomValue, useSetAtom } from 'jotai'; -import { Box, Button, Text, IconButton, Icon, Icons, Scroll, config, toRem } from 'folds'; +import { Box, Button, Text, IconButton, Icon, Icons, IconSrc, Scroll, config, toRem } from 'folds'; import { Page, PageContent, PageHeader } from '../../../components/page'; import { SystemNotification } from './SystemNotification'; import { AllMessagesNotifications } from './AllMessages'; @@ -14,13 +14,13 @@ import { settingsAtom, Settings } from '../../../state/settings'; const PRESETS: Array<{ label: string; - emoji: string; + icon: IconSrc; description: string; patch: Partial; }> = [ { label: 'Gaming', - emoji: '🎮', + icon: Icons.Ball, description: 'Notifications on, sounds off', patch: { showNotifications: true, @@ -32,7 +32,7 @@ const PRESETS: Array<{ }, { label: 'Work', - emoji: '💼', + icon: Icons.Monitor, description: 'All notifications and sounds on', patch: { showNotifications: true, @@ -44,7 +44,7 @@ const PRESETS: Array<{ }, { label: 'Sleep', - emoji: '🌙', + icon: Icons.BellMute, description: 'All notifications off', patch: { showNotifications: false, @@ -83,7 +83,7 @@ function NotificationPresets() { }} > - {preset.emoji} + {preset.label}