Skip to content

feat(team-inbox): add unified team inbox#531

Open
Harry19081 wants to merge 5 commits into
developfrom
feat/team-inbox-v2
Open

feat(team-inbox): add unified team inbox#531
Harry19081 wants to merge 5 commits into
developfrom
feat/team-inbox-v2

Conversation

@Harry19081

Copy link
Copy Markdown
Member

Reopens the work from #521, which was merged accidentally and then reverted on develop.

This branch reapplies the reverted changes so the feature can go through review before landing.

This reverts commit 8668bae.

Pre-commit hook ran. Total eslint: 1, total circular: 0
useNarrowChatFocus force-maximized the docked chat panel whenever the
workbench fell under 480px, and it evaluated mid-drag. Dragging the panel
wider therefore snapped it to a full takeover instead of stopping, which
reads as the panel maximizing itself unprompted.

Remove the hook and its call site so the panel is maximized only by its
explicit toggle, and drop the two useSidebarState comments that pointed
at it for narrow-viewport adaptation.

Pre-commit hook ran. Total eslint: 1, total circular: 0
Resizing
- Give the list a plain width range (240/280/320) matching the shape of
  WORK_STATION_PRIMARY_SIDEBAR; the old 160 floor could not fit the three
  filter pills.
- ResizableSplitPanel clamped the committed width only during a drag, so a
  width chosen in a wide container survived the container shrinking and
  starved the right panel to zero. Re-clamp on container resize and cap the
  panel in CSS so the ceiling holds regardless of how the width was set.
- Guard the clamp when the container cannot honour both minimums: the
  bounds inverted and collapsed the right panel instead of the left.

List rows
- Drop `block` from the summary span. It set display:block, overriding the
  display:-webkit-box that line-clamp-2 needs, so the clamp never applied
  and previews ran to full height.
- Render the GitHub brand icon for GitHub-backed work items, identified by
  their status vocabulary via a new isGitHubIssueStatus domain helper.

Detail surface
- Paint the pane with the chat pane colour and drop the two nested
  bg-surface-selected cards. InfoCard gains an opt-in `plain` variant so the
  shared tokens keep their filled default for the ~30 other call sites.

Header
- Remove the redundant title/subtitle row and move refresh and mark-all-read
  into the breadcrumb trailing slot, which drops onRefresh, loading,
  totalUnread and onMarkAllRead from TeamInboxList.

Default groupTeamInboxItemsByRecency's timestamp inside the domain so the
list no longer calls Date.now() during render, which the purity rule gates.

Pre-commit hook ran. Total eslint: 1, total circular: 0
The effect reset state synchronously on every selection change, cascading an
extra render (react-hooks/set-state-in-effect). Store the resolved body with
the key it was fetched for and derive `loading` by comparing that key against
the current target, so the reset falls out of the render pass.

Pre-commit hook ran. Total eslint: 2, total circular: 0
The assigned detail rebuilt a reduced view of a work item from the list
payload: a Markdown body plus a four-row InfoCard. It now composes the same
pair the chat panel's work-item pane uses, so the two surfaces stay in step.

- Replace useTeamInboxWorkItemBody with useTeamInboxWorkItem, which resolves
  the full item instead of just its body and persists property edits through
  updateWorkItemPartial. Standalone items stay read-only; writing those needs
  the full frontmatter round-trip only the owning pane assembles.
- Render WorkItemContent for the body and WorkItemProperties inside a
  PropertiesRailFrame. The inbox pane is narrower than the work-item pane, so
  the rail appears only past a 720px container width.
- Extract toWorkItemPartialUpdate out of WorkItemPanelView into a shared
  module so both surfaces build the same wire payload rather than diverging.
- Give TeamInboxDetailLayout a `fill` content mode and make `metadata`
  optional; comment mentions keep the padded scroll column and InfoCard.

Pre-commit hook ran. Total eslint: 2, total circular: 0
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.

1 participant