Migrate app icons to Phosphor#65
Conversation
…-icon-migration # Conflicts: # src/app/components/DefaultErrorPage.tsx # src/app/components/DeviceVerificationSetup.tsx # src/app/components/IncomingCallModal.tsx # src/app/components/JoinRulesSwitcher.tsx # src/app/components/ManualVerification.tsx # src/app/components/SwipeableMessageWrapper.tsx # src/app/components/create-room/CreateRoomAccessSelector.tsx # src/app/components/create-room/CreateRoomAliasInput.tsx # src/app/components/create-room/CreateRoomTypeSelector.tsx # src/app/components/create-room/RoomVersionSelector.tsx # src/app/components/editor/MarkdownToolbar.tsx # src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx # src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx # src/app/components/emoji-board/EmojiBoard.tsx # src/app/components/emoji-board/components/NoStickerPacks.tsx # src/app/components/emoji-board/components/SearchInput.tsx # src/app/components/emoji-board/components/Sidebar.tsx # src/app/components/emoji-board/useEmojiGroupIcons.ts # src/app/components/image-editor/ImageEditor.tsx # src/app/components/image-pack-view/ImagePackView.tsx # src/app/components/image-pack-view/ImageTile.tsx # src/app/components/image-pack-view/UsageSwitcher.tsx # src/app/components/image-viewer/ImageViewer.tsx # src/app/components/member-tile/MemberTile.tsx # src/app/components/message/FileHeader.tsx # src/app/components/message/MsgTypeRenderers.tsx # src/app/components/message/Reaction.tsx # src/app/components/message/content/AudioContent.tsx # src/app/components/message/content/FallbackContent.tsx # src/app/components/message/modals/MessageEditHistory.tsx # src/app/components/message/modals/MessageForward.tsx # src/app/components/message/modals/MessageReactions.tsx # src/app/components/message/modals/MessageReadRecipts.tsx # src/app/components/message/modals/MessageSource.tsx # src/app/components/notification-banner/NotificationBanner.tsx # src/app/components/password-input/PasswordInput.tsx # src/app/components/room-avatar/RoomAvatar.tsx # src/app/components/room-topic-viewer/RoomTopicViewer.tsx # src/app/components/setting-menu-selector/SettingMenuSelector.tsx # src/app/components/setting-tile/SettingTile.tsx # src/app/components/telemetry-consent/TelemetryConsentBanner.tsx # src/app/components/text-viewer/TextViewer.tsx # src/app/components/theme/ThemePreviewCard.tsx # src/app/components/uia-stages/PasswordStage.tsx # src/app/components/uia-stages/SSOStage.tsx # src/app/components/upload-board/UploadBoard.tsx # src/app/components/upload-card/CompactUploadCardRenderer.tsx # src/app/components/upload-card/UploadCard.tsx # src/app/components/upload-card/UploadDescriptionEditor.tsx # src/app/components/url-preview/ClientPreview.tsx # src/app/components/url-preview/ThemeThirdPartyBanner.tsx # src/app/components/url-preview/UrlPreviewCard.tsx # src/app/components/user-profile/CreatorChip.tsx # src/app/components/user-profile/UserModeration.tsx # src/app/features/call-status/CallControl.tsx # src/app/features/call-status/MemberSpeaking.tsx # src/app/features/call/CallMemberCard.tsx # src/app/features/call/Controls.tsx # src/app/features/call/PrescreenControls.tsx # src/app/features/common-settings/developer-tools/DevelopTools.tsx # src/app/features/common-settings/emojis-stickers/EmojisStickers.tsx # src/app/features/common-settings/general/RoomHistoryVisibility.tsx # src/app/features/common-settings/members/Members.tsx # src/app/features/common-settings/permissions/PermissionGroups.tsx # src/app/features/create-chat/CreateChat.tsx # src/app/features/join-before-navigate/JoinBeforeNavigate.tsx # src/app/features/lobby/HierarchyItemMenu.tsx # src/app/features/lobby/SpaceItem.tsx # src/app/features/lobby/SpaceNavItem.tsx # src/app/features/message-search/MessageSearch.tsx # src/app/features/message-search/SearchFilters.tsx # src/app/features/message-search/SearchInput.tsx # src/app/features/room-nav/RoomNavUser.tsx # src/app/features/room-settings/RoomSettings.tsx # src/app/features/room-settings/abbreviations/RoomAbbreviations.tsx # src/app/features/room-settings/general/General.tsx # src/app/features/room-settings/permissions/Permissions.tsx # src/app/features/room/CallChatView.tsx # src/app/features/room/RoomCallButton.tsx # src/app/features/room/RoomInput.tsx # src/app/features/room/RoomViewFollowing.tsx # src/app/features/room/RoomViewTyping.tsx # src/app/features/room/ThreadDrawer.tsx # src/app/features/room/location-modal/LocationDialog.tsx # src/app/features/room/message/Message.tsx # src/app/features/room/message/MessageEditor.tsx # src/app/features/room/schedule-send/SchedulePickerDialog.tsx # src/app/features/room/schedule-send/ScheduledMessagesList.tsx # src/app/features/search/Search.tsx # src/app/features/settings/Persona/PerMessageProfileEditor.tsx # src/app/features/settings/Settings.tsx # src/app/features/settings/about/About.tsx # src/app/features/settings/account/BioEditor.tsx # src/app/features/settings/account/IgnoredUserList.tsx # src/app/features/settings/account/NameColorEditor.tsx # src/app/features/settings/account/StatusEditor.tsx # src/app/features/settings/account/TimezoneEditor.tsx # src/app/features/settings/developer-tools/AccountData.tsx # src/app/features/settings/developer-tools/SyncDiagnostics.tsx # src/app/features/settings/devices/LocalBackup.tsx # src/app/features/settings/emojis-stickers/UserPack.tsx # src/app/features/settings/experimental/Experimental.tsx # src/app/features/settings/notifications/KeywordMessages.tsx # src/app/features/settings/notifications/NotificationLevelsHint.tsx # src/app/features/space-nav/SpaceNavItem.tsx # src/app/features/space-settings/SpaceSettings.tsx # src/app/hooks/timeline/useTimelineEventRenderer.tsx # src/app/hooks/useMemberEventParser.tsx # src/app/hooks/useRoomsNotificationPreferences.ts # src/app/pages/auth/FiledError.tsx # src/app/pages/auth/ServerPicker.tsx # src/app/pages/auth/login/TokenLogin.tsx # src/app/pages/client/WelcomePage.tsx # src/app/pages/client/create/Create.tsx # src/app/pages/client/direct/Direct.tsx # src/app/pages/client/direct/DirectCreate.tsx # src/app/pages/client/explore/Featured.tsx # src/app/pages/client/home/CreateRoom.tsx # src/app/pages/client/home/Search.tsx # src/app/pages/client/inbox/Inbox.tsx # src/app/pages/client/inbox/Invites.tsx # src/app/pages/client/inbox/Notifications.tsx # src/app/pages/client/sidebar/AccountSwitcherTab.tsx # src/app/pages/client/sidebar/CreateTab.tsx # src/app/pages/client/sidebar/ExploreTab.tsx # src/app/pages/client/sidebar/HomeTab.tsx # src/app/pages/client/sidebar/InboxTab.tsx # src/app/pages/client/sidebar/SearchTab.tsx # src/app/pages/client/space/Search.tsx # src/app/plugins/react-custom-html-parser.tsx # src/app/utils/common.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f3f1ebd8a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Code Coverage OverviewLanguages: JavaScript JavaScript / code-coverage/vitestThe overall coverage in the branch remains at 21%, unchanged from the branch. Show a code coverage summary of the most impacted files.
Updated |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f414eba34a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| PlusCircle, | ||
| Explore: Compass, | ||
| Smile: Smiley, | ||
| SmilePlus: SmileySticker, |
There was a problem hiding this comment.
Restore the add-reaction cue for SmilePlus
Icons.SmilePlus is used as the icon-only “More reactions” button in MobileMessageMenu (the button’s only visible affordance is this glyph), but the new mapping renders Phosphor’s sticker-smiley instead of a smile/add glyph. On mobile this can read as a stickers action rather than opening the reaction picker, so keep a visible plus/add cue for this alias.
Useful? React with 👍 / 👎.
Description
Migrate the app-level icon API to Phosphor-backed icons so remaining
Icon,Icons,IconSrc, andIconNameusages no longer import the old Folds icon implementation.This adds a local
$app/iconscompatibility layer that maps the existingIcons.*names to Phosphor components, preserves the existingIconcall shape, and rewires source imports to use that layer while leaving non-icon Folds UI imports in place.Changeset:
patch- migrate the app icon API to Phosphor-backed icons.Related to SableClient#523 and SableClient#934. Related to #64.
Fixes #
Type of change
Checklist:
AI disclosure:
This PR was generated by Codex. It adds a Phosphor-backed icon adapter, maps the previous app icon names to Phosphor components, updates imports across the app to use
$app/icons, adds a patch changeset, and validates that no direct old Folds icon API imports remain.Validation:
pnpm fmt:checkpnpm lint(0 errors; existing warnings only)pnpm typecheckpnpm test:run(130 files, 1229 tests)pnpm knippnpm build