Skip to content

fix(compliance): keep field labels out of a copied value in the profile tables - #1458

Merged
TaprootFreak merged 5 commits into
DFXswiss:developfrom
Blume1977:fix/profile-label-not-selectable
Sep 8, 2026
Merged

TaprootFreak merged 5 commits into
DFXswiss:developfrom
Blume1977:fix/profile-label-not-selectable

Conversation

@Blume1977

@Blume1977 Blume1977 commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

EN:
Profile table labels are no longer copied with the value. A second KYC-status click is blocked by a synchronous in-flight lock.

DE:
In den Profiltabellen wird das Label nicht mehr mit dem Wert kopiert. Ein zweiter Klick auf den KYC-Status wird durch eine synchrone In-Flight-Sperre blockiert.

Details

Click-to-copy uses select-none on labels and select-all on identifier values. That CSS does not change pixels, so the existing darwin review-header baselines already match. The user-overview darwin file is unchanged for the same reason.

The KYC in-flight useRef is restored; the double-click unit test batches two clicks in one act().

Per-file coverage (Node 20, CI=true npm test -- --coverage --collectCoverageFrom=…):

File Stmts Branch Funcs Lines
src/components/compliance/compliance-review-header.tsx 100 100 100 100
src/components/support/info-panel.tsx 100 100 100 100

@Blume1977
Blume1977 force-pushed the fix/profile-label-not-selectable branch from ba3e466 to 51657af Compare September 7, 2026 13:06
@Blume1977 Blume1977 changed the title fix(compliance): keep field labels out of a text selection in the profile tables fix(compliance): keep field labels out of a copied value in the profile tables Sep 7, 2026
@Blume1977

Copy link
Copy Markdown
Contributor Author

@TaprootFreak bereit zum Review. Fork-PR, bitte das Label ci setzen, damit CI läuft.

…le tables

Dragging over a value in the compliance profile header or in the ticket's
Account Data usually starts the selection in the label cell, so the copied
text carried the cell boundary as a leading tab or space.

The label cells are now non-selectable (select-none): a drag that starts in
a label selects nothing, so the label can no longer end up in the clipboard.
Values that are always copied as a whole select on a single click
(select-all): the header's UserDataId, Name, VerifiedName, Mail,
Organization and Ansprechsperson, and the mono InfoRow values (ids, hashes,
IBANs). All other cells, including the KYC Status button, keep the default
selection, so partial selection of an address or a comment still works.

The header's never-used link branch (no field sets isLink/href) and its
redundant re-entry guard (the button is disabled while a save runs) are
removed; both were unreachable. New tests cover the shared info-panel
building blocks and the header's personal and organization field sets.
@Blume1977
Blume1977 force-pushed the fix/profile-label-not-selectable branch from 51657af to 86fa093 Compare September 7, 2026 13:16
@TaprootFreakAI TaprootFreakAI added the ci Run PR CI on this draft label Sep 7, 2026
A second click could fire onSetKycStatusCheck twice before React
re-rendered isSettingKycStatus. Restore the synchronous ref guard
without changing the copy/select-none behaviour.
Drop the unreachable isSaving check from the handler (the button is
already disabled). Dispatch two clicks in one act so the test fails
without the ref and stays at one confirm with it.
@TaprootFreakAI

Copy link
Copy Markdown
Collaborator

EN:
Ready after 2 review passes.
Profile table labels stay out of a copied value, and a second KYC-status click is blocked.

DE:
Bereit nach 2 Review-Durchläufen.
Profil-Labels werden nicht mitkopiert, und ein zweiter KYC-Status-Klick wird blockiert.

Details

Grok quality and logic: 0 findings on HEAD 74314c95. Codex logic: 0 findings in-scope (a mono note on a transaction ID lives in support-dashboard-issue.screen.tsx, which this PR does not change). Codex quality: coverage figures were missing from the body; measured 100/100/100/100 on both touched files (Node 20) and added to the description. ci label present. Checks on this head: Build and test, review, CodeQL, Analyze, Full-stack E2E SUCCESS. mergeable=MERGEABLE. No open review threads.

@TaprootFreakAI
TaprootFreakAI marked this pull request as ready for review September 7, 2026 18:05
@TaprootFreakAI
TaprootFreakAI marked this pull request as draft September 7, 2026 20:33
@TaprootFreakAI

Copy link
Copy Markdown
Collaborator

EN:
Ready after 3 review passes.
Profile table labels stay out of a copied value, and a second KYC-status click is blocked.

DE:
Bereit nach 3 Review-Durchläufen.
Profil-Labels werden nicht mitkopiert, und ein zweiter KYC-Status-Klick ist gesperrt.

Details

This pass re-checked the darwin baselines. Copy-without-labels is CSS (select-none / select-all) and does not change pixels; the existing review-header shots already match. A sparse-seed user-overview PNG was reverted. Grok and Codex quality+logic: 0 findings at fd990fd. CI Build and test green. MERGEABLE. No open review threads. Jana's earlier note about the ci label is addressed (label is set).

@TaprootFreakAI
TaprootFreakAI marked this pull request as ready for review September 7, 2026 21:32
@TaprootFreak
TaprootFreak merged commit b02eb6e into DFXswiss:develop Sep 8, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Run PR CI on this draft

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants