Skip to content

CMG-1094/1095/1096/1097 | Delta Map Entry UI fixes: asset URL overflow, CT list - #1124

Merged
vikrantraut-cstk merged 1 commit into
devfrom
bugfix/cmg-1094-97-delta-ui
Jul 28, 2026
Merged

CMG-1094/1095/1096/1097 | Delta Map Entry UI fixes: asset URL overflow, CT list #1124
vikrantraut-cstk merged 1 commit into
devfrom
bugfix/cmg-1094-97-delta-ui

Conversation

@chetan-contentstack

Copy link
Copy Markdown

🔗 Jira Tickets

Parent story: CMG-789 — Delta Migration | v1.0.0 | Update Feature Implementation


📋 PR Type

  • ✨ Feature
  • 🐛 Bug Fix
  • 🔥 Hotfix
  • ♻️ Refactor
  • 🧹 Chore / Dependency Update
  • 📝 Documentation

📝 Description

What changed?

  • CMG-1094 — Asset Path URLs no longer bleed into Size / Contentstack UIDs columns. Venus's own CSS forces .Table__body__column { min-width: auto !important; width: auto !important }, so every column width we configured was being ignored and an unbreakable URL expanded the Path cell over its neighbours. Added a top-level override (.table-wrapper .Table__body__column, .asset-mapper-table .Table__body__column { min-width: 0 !important }) so the cell can shrink to its flex-basis, and duplicated the .cms-field / .cms-field--wrap wrap rules under .asset-mapper-table (they previously only existed under .table-wrapper, so AssetMapper never got them). .cms-field--wrap now uses overflow: hidden, min-width: 0, overflow-wrap: anywhere, and word-break: break-all so URL text breaks character-by-character inside its column.
  • CMG-1095 — Last few content types on the Map Entry step are now reachable. .ct-list-wrapper had height: calc(100vh - 375px), tuned for the Map Content Fields step. Delta iterations render a 6-step horizontal stepper (vs 5) plus the Entries/Assets tab bar, pushing the wrapper's top down to ~490px. The wrapper's bottom then sat below the viewport, so the internal overflow-y: auto scroll ended off-screen and the last rows couldn't be reached. Changed to height: calc(100vh - 500px) so the wrapper's bottom stays ~10px above the viewport edge and the scroll region is fully visible.
  • CMG-1097 — Search empty-state renders below the column header, with heading and description. Removed type="secondary" from the three customEmptyState blocks (assetMapper.tsx, entryMapper.tsx, ContentMapper/index.tsx) — secondary was rendering just the icon and hiding the heading/description. Added min-height: 300px + centred flex layout to .custom-empty-state so the empty area occupies the body instead of collapsing into (and overlapping) the header row.

Why?

Three UI regressions filed against Delta Migration v1.0.0 (all subtasks of CMG-789). Two are pure CSS regressions caused by venus overrides / hard-coded viewport offsets that no longer match the delta layout; one is a wrong-prop on venus's EmptyState. Grouping them because they all live in ui/src/components/ContentMapper/* and share the same review context.

CMG-1096 (Save button cut off on Map Entries) is not included — I couldn't reproduce the clip from the shared screenshots. It will be handled in a follow-up once repro steps are confirmed.


🧩 Affected Areas

  • api — Node.js backend
  • ui — React frontend
  • upload-api — Upload API server
  • docker / docker-compose
  • CI / GitHub Actions workflows
  • Environment variables / config
  • Other:

🧪 How to Test

Complete an initial migration on a Contentful project (any project with ≥15 content types and ≥5 assets), then click Restart Migration to enter delta iteration 2 and land on Map Entry (step 4).

CMG-1094 — Asset URL overflow

  1. Open the Assets tab on Map Entry.
  2. Confirm each row's Path URL wraps/truncates inside its own column — no text bleeding into the Size or Contentstack UIDs columns.

CMG-1095 — Content types list scroll

  1. On the Entries tab, view the Content Models panel on the left.
  2. Scroll the list — confirm every content type (all N of N) is reachable, including the last 3-4 that were previously off-screen.

CMG-1097 — Empty-state on search

  1. On the Assets tab, type a query that returns no matches (e.g. qwerf).
  2. Confirm the empty-state renders in the body area with the illustration + "No matching result found" heading + description — not overlapping the column-header row.

Expected result: All three defects resolved on the delta Map Entry step, and no regression on the initial (iter-1) Map Content Fields step.


📸 Screenshots / Recordings

Before After
Path URLs overlap Size / Contentstack UIDs columns (see CMG-1094) Each URL constrained to its column, wraps within cell
Only ~8 of 19 content types visible; scroll bar unreachable (see CMG-1095) All 19 accessible via internal scroll on the list
Empty-state icon rendered on top of column headers, no text (see CMG-1097) Illustration + heading + description render inside the body area

🔗 Related PRs / Dependencies


✅ Author Checklist

  • Branch follows naming convention: bugfix/cmg-1094-97-delta-ui
  • Jira tickets linked above
  • Self-reviewed the diff — no debug logs, commented-out code, or TODOs left in
  • .env / example.env updated if new environment variables were added — N/A
  • No sensitive credentials or secrets committed
  • Existing tests pass locally (npm test)
  • New tests written (or not applicable — CSS-only changes and one venus prop removal; no unit-test surface. UI verified manually per the steps above)
  • README.md / docs updated if behaviour changed — N/A
  • Talisman pre-push scan passes (no secrets flagged)

👀 Reviewer Notes

  • The !important on .Table__body__column { min-width: 0 !important } is required to beat venus's own !important on the same property. It's scoped to .table-wrapper and .asset-mapper-table only, so it doesn't leak to other venus tables in the app.
  • CMG-1095's fix is a viewport-height calc (100vh - 500px) tuned against a measured wrapper-top of ~490px on the delta Map Entry step. If the header stack above the wrapper changes materially (extra tab bars, taller stepper), this constant would need re-tuning — a follow-up to switch to a JS-measured height (like useMeasuredTableHeight used for the entry table) would remove the constant entirely, but felt out-of-scope for a bug fix.
  • No changes outside ui/src/components/ContentMapper/.

@github-actions

Copy link
Copy Markdown

🔒 Security Scan Results

ℹ️ Note: Only vulnerabilities with available fixes (upgrades or patches) are counted toward thresholds.

Check Type Count (with fixes) Without fixes Threshold Result
🔴 Critical Severity 0 0 10 ✅ Passed
🟠 High Severity 14 390 25 ✅ Passed
🟡 Medium Severity 13 12 500 ✅ Passed
🔵 Low Severity 1 0 1000 ✅ Passed

⏱️ SLA Breach Summary

✅ No SLA breaches detected. All vulnerabilities are within acceptable time thresholds.

Severity Breaches (with fixes) Breaches (no fixes) SLA Threshold (with/no fixes) Status
🔴 Critical 0 0 15 / 30 days ✅ Passed
🟠 High 0 0 30 / 120 days ✅ Passed
🟡 Medium 0 0 90 / 365 days ✅ Passed
🔵 Low 0 0 180 / 365 days ✅ Passed

ℹ️ Vulnerabilities Without Available Fixes (Informational Only)

The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:

  • Critical without fixes: 0
  • High without fixes: 390
  • Medium without fixes: 12
  • Low without fixes: 0

✅ BUILD PASSED - All security checks passed

@vikrantraut-cstk
vikrantraut-cstk merged commit e71a776 into dev Jul 28, 2026
9 checks passed
@vikrantraut-cstk
vikrantraut-cstk deleted the bugfix/cmg-1094-97-delta-ui branch July 28, 2026 13:58
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