Skip to content

modal header and tracker 5#29167

Merged
chrisnojima-zoom merged 11 commits intonojima/ZCLIENT-store-split-4from
nojima/ZCLIENT-store-split-5
Apr 22, 2026
Merged

modal header and tracker 5#29167
chrisnojima-zoom merged 11 commits intonojima/ZCLIENT-store-split-4from
nojima/ZCLIENT-store-split-5

Conversation

@chrisnojima-zoom
Copy link
Copy Markdown
Contributor

No description provided.

@chrisnojima chrisnojima changed the title modal header modal header and tracker Apr 21, 2026
@chrisnojima chrisnojima changed the title modal header and tracker modal header and tracker 5 Apr 21, 2026
@chrisnojima chrisnojima requested a review from Copilot April 21, 2026 23:57

This comment was marked as outdated.

chrisnojima-zoom and others added 3 commits April 22, 2026 08:20
* pinentry

* unlock

* archive
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the ongoing store-cleanup work by moving transient UI/session state out of global Zustand stores into route params, feature hooks, and desktop popup handler registries—especially for Tracker, Teams wizards, Pinentry, Archive, and some modal headers.

Changes:

  • Introduces new feature-local utilities/hooks (e.g. useTrackerProfile, tracker model helpers, new-team/add-members wizard state helpers).
  • Replaces several store-driven flows with route-param-driven flows and direct engine listeners (e.g. teams wizards, unlock-folders, pinentry remote proxy).
  • Removes/relocates legacy stores/tests (e.g. archive store, pinentry store, tracker store tests) and adds new pure-unit tests for extracted logic.

Reviewed changes

Copilot reviewed 101 out of 115 changed files in this pull request and generated no comments.

Show a summary per file
File Description
shared/wallets/account-utils.tsx New wallet account mapping/sorting helpers and route-param builders
shared/util/uuid.tsx Adds lightweight UUID generator for RPC op uniqueness
shared/util/use-debounce.tsx Converts exported hooks to function declarations (signature unchanged)
shared/util/uint8array.tsx Adds Uint8Array/base64/hex helper utilities
shared/util/shallow-equal.tsx Adds default-export shallowEqual helper
shared/unlock-folders/store.tsx Tightens open typing to UnlockFolderDevice and stores devices directly
shared/unlock-folders/remote-proxy.desktop.tsx Uses shallow selector and listens to engine actions locally
shared/unlock-folders/engine-actions.desktop.tsx Extracts handler converting RPC devices to UI devices
shared/unlock-folders/engine-actions.desktop.test.ts Updates tests to target new handler signature
shared/tracker/use-profile.tsx New tracker profile hook owning identify/non-user loads + engine listeners
shared/tracker/model.tsx New pure tracker model/update helpers
shared/tracker/model.test.ts Unit tests for tracker model helpers
shared/tracker/desktop-popup-handles.tsx Desktop tracker popup handler registry + resetter
shared/tracker/bio.tsx Makes Bio presentational (props-driven) instead of store-driven
shared/tracker/assertion.tsx Makes Assertion presentational and passes kid to revoke route
shared/teams/team/new-header.tsx Moves “add self” to route-param wizard navigation
shared/teams/new-team/wizard/team-purpose.tsx Route-param wizard state + navigation updates
shared/teams/new-team/wizard/state.tsx New-team wizard state helpers + creation RPC wrapper
shared/teams/new-team/wizard/new-team-info.tsx Route-param wizard state + avatar navigation
shared/teams/new-team/wizard/make-big-team.tsx Route-param wizard state + routing to next step
shared/teams/new-team/wizard/create-subteams.tsx Route-param wizard state + routing to add-members flow
shared/teams/new-team/wizard/create-channels.tsx Splits generic modal vs wizard wrapper; wizard uses route params
shared/teams/new-team/wizard/add-subteam-members.tsx Route-param wizard state and modal header action wiring
shared/teams/common/activity.tsx ModalTitle supports new-team wizard avatar/name via params
shared/teams/add-members-wizard/state.tsx New add-members wizard state helpers (pure functions)
shared/teams/add-members-wizard/add-phone.tsx Uses wizard param + addMembersToWizard then navUpToScreen
shared/teams/add-members-wizard/add-from-where.tsx Uses wizard param; routes to team builder with params
shared/teams/add-members-wizard/add-email.tsx Uses wizard param + addMembersToWizard then navUpToScreen
shared/teams/add-members-wizard/add-contacts.native.tsx Uses wizard param + addMembersToWizard + local banner error
shared/teams/add-members-wizard/add-contacts.desktop.tsx Desktop stub updated to accept wizard prop
shared/teams/add-members-wizard/add-contacts.d.ts Updates type declaration to match new wizard prop
shared/team-building/container.tsx Route params now optionally carry addMembersWizard
shared/styles/class-names.tsx Adds in-repo classnames subset implementation with license
shared/stores/tests/tracker.test.ts Removes tracker store tests (tracker logic moved out)
shared/stores/tests/teams.test.ts Updates tests to use new add-members wizard pure helpers
shared/stores/tests/modal-header.test.ts Adjusts test expectations after modal-header fields removed
shared/stores/tests/archive.test.ts Removes archive store tests (archive store removed)
shared/stores/pinentry.tsx Removes pinentry store (replaced by feature-local popup state)
shared/stores/modal-header.tsx Removes data and editAvatarHasImage fields
shared/stores/archive.tsx Removes archive store (job mapping handled elsewhere)
shared/signup/use-request-auto-invite.tsx New hook to request invite code and route to username entry
shared/settings/contacts-joined.tsx Uses useTrackerProfile + direct follow RPC instead of tracker store
shared/settings/archive/modal.tsx Stops calling archive store load() after starting jobs
shared/settings/archive/job-state.tsx Extracts archive job mapping/progress updates into pure helpers
shared/settings/archive/job-state.test.ts Adds unit tests for new archive job helpers
shared/router-v2/tab-bar.desktop.tsx Reads fullname from users store instead of tracker store
shared/router-v2/account-switcher/index.tsx Reads fullname from users infoMap instead of tracker store
shared/profile/user/teams/index.tsx Makes teams list presentational (team showcase passed in)
shared/profile/user/index.tsx Passes richer profile props (assertions, bio, guiID, etc.)
shared/profile/user/hooks.tsx Refactors to useTrackerProfile + passes assertions objects
shared/profile/user/actions/index.tsx Actions now driven by props + follow RPC (no tracker store dispatch)
shared/profile/showcase-team-offer.tsx Removes tracker reload side-effect on modal close
shared/profile/routes.tsx Removes modal-header dependency; wizard avatar flow uses route params
shared/profile/revoke.tsx Revoke uses route params (platform/kid) rather than looking up from tracker store
shared/profile/proof-utils.tsx Adds proof username normalization helper (http(s), btc)
shared/profile/pgp/validation.tsx Adds pure PGP form validation helper
shared/profile/generic/proofs-list.tsx Uses useTrackerProfile for reload instead of tracker store
shared/profile/edit-profile.tsx Uses useTrackerProfile and preserves in-progress edits on refetch
shared/profile/edit-avatar/index.native.tsx Header options set via navigation options (no modal-header store)
shared/profile/edit-avatar/index.d.ts Adds newTeamWizard prop typing
shared/profile/edit-avatar/hooks.tsx Wizard avatar updates stored in route params and routed forward
shared/pinentry/remote-proxy.desktop.tsx Pinentry popup state is local + engine listener driven
shared/pinentry/desktop-popup-handles.tsx Adds pinentry popup handler registry + reset hooks
shared/pinentry/desktop-popup-handles.test.tsx Tests for pinentry popup handler registry + reset behavior
shared/incoming-share/routes.tsx Removes modal-header usage for header actions/title/right button
shared/incoming-share/index.tsx Sets navigation options directly based on incoming share items
shared/desktop/renderer/remote-event-handler.desktop.tsx Routes pinentry/tracker remote actions through handler registries
shared/crypto/helpers.tsx Converts helper exports to function declarations
shared/constants/router.tsx Enhances navUpToScreen to support params + replace-if-missing + active-stack targeting
shared/constants/init/shared.tsx Removes engine fanout plumbing for deleted/migrated stores
shared/common-adapters/profile-card.tsx Uses useTrackerProfile + new noAssertion import
shared/common-adapters/markdown/service-decoration-parser.tsx Adds base64+utf8 parsing for service decorations
shared/chat/routes.tsx Uses static titles for some modals (less modal-header dependence)
shared/chat/pdf/index.desktop.tsx Sets modal title via navigation options instead of modal-header
shared/chat/inbox/row/big-team-header.tsx Uses chat team hook badge instead of teams store badge state
shared/chat/create-channel/hooks.tsx Uses useChatTeam instead of teams store for teamname/role
shared/chat/conversation/thread-search-route.tsx Adds route-param helpers for thread search state
shared/chat/conversation/pinned-message.tsx Uses chat team hook for permissions instead of teams store
shared/chat/conversation/normal/container.tsx Wraps with ChatTeamProvider instead of loading team members via teams module
shared/chat/conversation/messages/wrapper/wrapper.tsx Uses useChatTeamMembers for author role
shared/chat/conversation/messages/system-simple-to-complex/container.tsx Navigates directly to manage channels route
shared/chat/conversation/messages/system-new-channel/container.tsx Navigates directly to manage channels route
shared/chat/conversation/messages/system-create-team/container.tsx Uses chat team hook + add-members wizard route navigation
shared/chat/conversation/messages/system-change-retention/container.tsx Uses chat team hook for permissions
shared/chat/conversation/messages/system-added-to-team/container.tsx Uses useChatTeamMembers for role checks
shared/chat/conversation/messages/separator-utils.tsx Extracts message separator/author-collapse logic to utility
shared/chat/conversation/messages/retention-notice.tsx Uses chat team hook for permission checks
shared/chat/conversation/messages/message-popup/hooks.tsx Uses chat team hooks for bot/permission/member checks
shared/chat/conversation/messages/cards/team-journey/container.tsx Navigates directly to manage channels route
shared/chat/conversation/input-area/suggestors/channels.tsx Uses chat team-name hook for mutual team channel suggestions
shared/chat/conversation/info-panel/settings/min-writer-role.tsx Uses chat team hook for permissions
shared/chat/conversation/info-panel/settings/index.tsx Uses chat team hooks for permissions/members
shared/chat/conversation/info-panel/menu.tsx Uses chat team hooks; removes TeamsSubscriberMountOnly wrapper
shared/chat/conversation/info-panel/members.tsx Uses useChatTeamMembers and adjusts auditing banner logic
shared/chat/conversation/info-panel/index.tsx Wraps info panel content in ChatTeamProvider
shared/chat/conversation/info-panel/header.tsx Wraps menu popup in ChatTeamProvider; uses chat team hook for admin
shared/chat/conversation/info-panel/common.tsx Uses chat team members hook for bots/human count
shared/chat/conversation/info-panel/bot.tsx Uses chat team hooks instead of teams store selectors
shared/chat/conversation/info-panel/add-to-channel.tsx Uses chat participants + useChatTeamMembers; removes channel-list reload
shared/chat/conversation/info-panel/add-people.tsx Routes into add-members wizard via route params
shared/chat/conversation/fwd-msg.tsx Sets modal title via navigation options instead of modal-header
plans/teams-cleanup.md Adds/updates cleanup plan doc (teams)
plans/store-split.md Removes older cleanup plan doc
plans/fs-cleanup.md Adds FS cleanup plan doc
plans/engine-listener.md Removes older engine listener plan doc
plans/chat-cleanup.md Adds chat cleanup plan doc
AGENTS.md Adds explicit .tsx convention line under shared/

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@chrisnojima-zoom chrisnojima-zoom merged commit 163699b into nojima/ZCLIENT-store-split-4 Apr 22, 2026
4 of 5 checks passed
@chrisnojima-zoom chrisnojima-zoom deleted the nojima/ZCLIENT-store-split-5 branch April 22, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants