Skip to content

Release: develop -> main#1065

Merged
TaprootFreak merged 13 commits into
mainfrom
develop
Apr 28, 2026
Merged

Release: develop -> main#1065
TaprootFreak merged 13 commits into
mainfrom
develop

Conversation

@github-actions

Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

* feat: add bank transaction details screen in compliance

Adds a dedicated details page for unassigned bank transactions in the
compliance search results. Replaces the inline return icon with a chevron
that opens the new details view, which lists all fields returned by the
search API and exposes a Return button linking to the existing refund flow.

The search row data is cached in sessionStorage on navigation to survive
the URL-param stripping in app-handling.context that wipes router state.

* style: use blue color for Return button instead of default red

* refactor: align bank-tx details with existing compliance screen style

- Switch to card-based layout matching compliance-support-issue
- Replace alarmist ErrorHint with neutral no-data message on the
  missing-state fallback
- Explain the sessionStorage cache with a comment
- Drop leading slash in navigate() call to match nearby compliance
  routes
- Use static title Bank Transaction Details to differentiate from the
  refund screen

* refactor: extract bank-tx cache helper and remove redundant header

- Move sessionStorage get/set into src/util/bank-tx-cache.ts so list
  and details screens share one cache-key definition
- Drop the in-card h2 Bank Transaction in the details screen since
  the layout title already reads Bank Transaction Details

* refactor: render bank-tx fields with shared DetailRow helper

Use the DetailRow component from compliance-helpers so the details
screen matches how bank-tx fields are rendered elsewhere in the
compliance UI (see transactions-tab.tsx). Also aligns labels (Name
instead of User name) and switches IBAN to mono formatting to match
that pattern.

* refactor: prefix bank-tx cache keys with dfx. to match session-store convention
TaprootFreak and others added 12 commits April 23, 2026 13:16
* feat: add recall creation for bank transactions in compliance

Adds a Recall erfassen button to the bank transaction details screen
that opens a form to create a recall (POST /recall). Form captures
reason, fee and comment; sequence is fixed to 1 and bankTxId is taken
from the URL.

* fix: cancel/back buttons return to details, pre-fill fee and comment

- Cancel and success Back now use navigate(-1) so they return to the
  bank-tx details screen instead of falling through to /account
- Pre-fill fee with 500 and comment with n.a. as sensible defaults

* style: translate submit label and success title for consistency

Match the return-screen pattern where button labels and success
messages use translate().

* style: translate form title and field labels

Match the refund-creditor-fields pattern where field labels and the
layout title go through translate() so future translations can
override the English defaults.

* style: translate details-page action button labels
* feat: add recall button to user-data transactions tab

Adds a Recall action button to the expanded transaction detail, shown
for rows with a linked bank tx. Opens a modal that captures reason, fee
and comment and submits POST /recall. userId is derived server-side from
the bank tx (see api PR feat/recall-auto-derive-user).

* refactor: use reset() without args to rely on useForm defaultValues

Matches the ChargebackModal pattern and avoids repeating the default
values in three places.
* feat: rename compliance bank tx section and hide return button for non-unassigned types

* i18n: update de/fr/it translation keys for matching bank transactions section

* refactor: move BankTxUnassignedTypes constant to compliance-helpers

* i18n: shorten section title to Bank Transactions for consistency with sibling sections
* feat: show existing recall state on bank-tx views

When a bank tx already has a recall, hide the Recall erfassen action
and show the recall info instead:

- Bank Transaction Details page: inline Recall card below the details
- Transactions tab (user data): Recall #ID button opens a details modal

Shared RecallDetails component renders the fields (id, created,
sequence, reason, fee, comment) via the DetailRow helper. The api
now includes recall on BankTxInfo and BankTxSearchResult so no extra
roundtrip is needed.

* style: add h2 header to bank transaction card for multi-card consistency
* feat: add mros creation page in compliance

Standalone page at compliance/mros/create. Form captures the full
CreateMrosDto: userDataId, status (default Draft), submissionDate
(optional), authorityReference (optional), caseManager.

* feat: simplify mros create form

- Rename Authority Reference label to MROS ID
- Remove Case Manager input; auto-populate from the logged-in user's
  firstName + lastName (via useUser().getProfile)
- Default Submission Date to today

* style: move useEffect after useForm to match return-screen ordering
Clicking a row on the MROS list navigates to compliance/mros/:id,
which fetches GET /mros/:id and renders all fields via DetailRow.

- getMrosById hook method
- ComplianceMrosDetailScreen with loading/error/not-found states
- mrosStatusBadge moved to compliance-helpers and reused in both
  list and detail
Only visible when session.role === UserRole.ADMIN, placed after the
other role-gated entries (Compliance, Support Dashboard, RealUnit).
…ixes (#1058)

* feat: support dashboard state refactor, configurable clerks, layout fixes

- load clerks dynamically from GET /support/issue/clerks (no more hardcoded names)
- validate assigned clerk against loaded list, fall back to first entry
- refactor tab state into Record<Tab, TabData> to kill 12 useStates + 5 ternary chains
- replace 3× count requests with single getIssueCounts() call
- migrate all state filters to comma-separated states param
- split loadMessages(boolean) into loadMessages() + pollForNewMessages()
- add support-helpers with typeLabel()/reasonLabel() reused in 3 screens
- drop dead client-side open-state filter and unreachable messageAuthor fallback
- replace 100vh calc with flex-1 min-h-0 + layout noPadding so table fills bottom
- add top scroll shadow on message list, fix import order

* feat: dashboard reload banner for new support messages
Shows all kyc_step and bank_data entries in ManualReview or InternalReview
grouped by type, with counts per status. Click on a row opens a drilldown
listing affected users.
Converts the MROS detail page into an always-edit form so compliance
officers can fill in all goAML-required data without leaving DFX.

Sections:
- Overview (read-only: ID, created, updated, userData ID, status badge)
- Report: status, submission date, MROS ID, case manager, reason
  (Sachverhalt), action (Grund/Unternommen), indicators (checkbox
  list prefilled with DFX's 6 standard goAML codes)
- Person Overrides: gender, middle name, birth place, profession,
  source of wealth, canton, ID document issue/expiry/country
- Transactions: checkbox list of the userData's transactions

Save calls PUT /mros/:id and reloads the entry. Requires api PR 1.2
(personOverrides) + 1.3 (transactions relation) to be deployed for
the full feature to work; untouched fields stay undefined until then.
@TaprootFreak TaprootFreak merged commit a5a7dd2 into main Apr 28, 2026
8 checks 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.

3 participants