Skip to content

Keep the GitHub issue composer within reach - #720

Merged
sudomaggie merged 1 commit into
dev/rich-text-shared-toolbar-controlsfrom
dev/github-issue-floating-composer
Aug 6, 2026
Merged

Keep the GitHub issue composer within reach#720
sudomaggie merged 1 commit into
dev/rich-text-shared-toolbar-controlsfrom
dev/github-issue-floating-composer

Conversation

@Harry19081

Copy link
Copy Markdown
Member

Problem

GitHub issue comments sit at the end of long threads, mix issue-level status actions into the text-input footer, and allow users to select the already-current status. Duplicate-search loading also uses a full loading bar inside a compact dropdown.

Solution

Pin the issue composer to the bottom of the thread with measured content padding, move issue-level status actions above the comment input, use compact upward-opening formatting controls, disable the current status option, and use an inline spinner for duplicate-search loading. Extend property options with a native disabled state and keep other work-item editors on the same compact toolbar configuration.

Potential risks

The floating footer reserves at least 240 px and then tracks its measured height; unusually tall composers may reduce visible thread space until they collapse. Closed-issue coloring consumes the purple theme variables introduced by PR #716. This PR is stacked on PR #719 for the rich-text toolbar API and should merge after both dependencies. Manual narrow-panel, keyboard, and theme evidence is pending, so this PR remains a draft.

Performance guard

Verdict: pass. A footer owns one ResizeObserver and one existing resize listener only while mounted; enabled: false prevents ownership when no footer exists, and cleanup is asserted on unmount. Hidden, idle, and repeated-open behavior adds no timer, poll, subscription, cache, or retained observer. Multi-instance behavior is per mounted thread and bounded to one observer per visible composer.

Audit

The configured frontend-ui-audit skill file was unavailable at both documented locations. A direct pass confirmed reuse of Button, Dropdown, PropertyField, RichMarkdownEditor, and existing semantic tokens. Current status options are native disabled buttons with aria-disabled, and the floating composer remains a labeled section.

Verification

  • Vitest for PropertyDropdownField, GitHubIssueComposer, GitHubIssueThreadSurface, and WorkItemThreadLayout — passed (16 tests across 4 files).
  • ESLint on all 17 changed TypeScript/TSX implementation and test files — passed.
  • pnpm typecheck — passed after correcting the strict React test fixture.
  • git diff --cached --check — passed before commit.
  • Manual desktop verification was not run because local UI control was not authorized for this task.

@Harry19081
Harry19081 marked this pull request as ready for review August 6, 2026 13:00
@sudomaggie
sudomaggie merged commit 04ceda8 into dev/rich-text-shared-toolbar-controls Aug 6, 2026
1 check passed
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.

2 participants