feat(assets): show file extension in asset description line#12306
feat(assets): show file extension in asset description line#12306DrJKL wants to merge 4 commits into
Conversation
Add the asset's file extension (uppercase, e.g. PNG, MP4, GLB) to the metadata line beneath the asset name in both the grid (MediaAssetCard) and list (AssetsSidebarListView) views. The badge approach was previously removed because it blocked content; this surfaces the same information in the existing description line. Fixes FE-565
- Use getAssetDisplayFilename so Cloud assets (asset.name = content hash, filename on display_name) still produce a sensible extension label. - Use getPathDetails so path-like filename metadata resolves the basename before extracting the suffix. - Add regression tests for the Cloud hash case and path-prefixed names.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughAdds getAssetExtensionLabel to extract and uppercase asset file extensions, and prepends that label to metadata in the sidebar list view and media asset card, composing extension plus timing/dimensions/size into a single space-separated string. ChangesAsset Extension Label Display
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
🎨 Storybook: ✅ Built — View Storybook |
🎭 Playwright: ❌ 1606 passed, 1 failed❌ Failed Tests📊 Browser Reports
|
📦 Bundle: 5.36 MB gzip 🔴 +690 BDetailsSummary
Category Glance App Entry Points — 26.1 kB (baseline 26.1 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.24 MB (baseline 1.24 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 82.9 kB (baseline 82.9 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 9 added / 9 removed / 2 unchanged Panels & Settings — 527 kB (baseline 527 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 10 added / 10 removed / 14 unchanged User & Accounts — 17.8 kB (baseline 17.8 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 5 added / 5 removed / 2 unchanged Editors & Dialogs — 112 kB (baseline 112 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 4 added / 4 removed UI Components — 58 kB (baseline 58 kB) • ⚪ 0 BReusable component library chunks
Status: 5 added / 5 removed / 8 unchanged Data & Services — 3.16 MB (baseline 3.16 MB) • 🔴 +965 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 4 unchanged Utilities & Hooks — 366 kB (baseline 366 kB) • 🔴 +617 BHelpers, composables, and utility bundles
Status: 14 added / 14 removed / 17 unchanged Vendor & Third-Party — 9.94 MB (baseline 9.94 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 9.16 MB (baseline 9.16 MB) • ⚪ 0 BBundles that do not match a named category
Status: 58 added / 58 removed / 85 unchanged ⚡ Performance Report
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-05-16T03:30:10.241Z",
"gitSha": "6f1ba30996e2276f916c35e4296a361ac431df7e",
"branch": "glary/fe-565-asset-file-extension",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2033.9040000000068,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.014,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 495.82300000000004,
"heapDeltaBytes": 20761032,
"heapUsedBytes": 69470736,
"domNodes": -264,
"jsHeapTotalBytes": 16642048,
"scriptDurationMs": 23.504000000000005,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-idle",
"durationMs": 2018.9129999999977,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.937000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 400.53999999999996,
"heapDeltaBytes": 23235380,
"heapUsedBytes": 71837764,
"domNodes": 18,
"jsHeapTotalBytes": 14680064,
"scriptDurationMs": 23.124000000000002,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 2011.8689999999901,
"styleRecalcs": 78,
"styleRecalcDurationMs": 47.755,
"layouts": 12,
"layoutDurationMs": 4.031,
"taskDurationMs": 975.126,
"heapDeltaBytes": 16845360,
"heapUsedBytes": 65539616,
"domNodes": -267,
"jsHeapTotalBytes": 18477056,
"scriptDurationMs": 140.839,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1836.6320000000087,
"styleRecalcs": 71,
"styleRecalcDurationMs": 37.736,
"layouts": 12,
"layoutDurationMs": 3.855,
"taskDurationMs": 839.972,
"heapDeltaBytes": -4612956,
"heapUsedBytes": 43691428,
"domNodes": 51,
"jsHeapTotalBytes": 15855616,
"scriptDurationMs": 134.023,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1774.091999999996,
"styleRecalcs": 32,
"styleRecalcDurationMs": 18.351,
"layouts": 6,
"layoutDurationMs": 0.6579999999999999,
"taskDurationMs": 401.06700000000006,
"heapDeltaBytes": 18651472,
"heapUsedBytes": 71192648,
"domNodes": 80,
"jsHeapTotalBytes": 33292288,
"scriptDurationMs": 32.508,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1720.0740000000678,
"styleRecalcs": 33,
"styleRecalcDurationMs": 21.180999999999997,
"layouts": 6,
"layoutDurationMs": 0.7919999999999999,
"taskDurationMs": 381.757,
"heapDeltaBytes": 21056780,
"heapUsedBytes": 69328080,
"domNodes": -210,
"jsHeapTotalBytes": 15069184,
"scriptDurationMs": 25.978999999999996,
"eventListeners": -118,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 589.0550000000303,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.931000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 358.84299999999996,
"heapDeltaBytes": 12238396,
"heapUsedBytes": 62158396,
"domNodes": 18,
"jsHeapTotalBytes": 16777216,
"scriptDurationMs": 61.818,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.669999999999998,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "dom-widget-clipping",
"durationMs": 555.7220000000598,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.183000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 358.23400000000004,
"heapDeltaBytes": 15088232,
"heapUsedBytes": 64232512,
"domNodes": 16,
"jsHeapTotalBytes": 17039360,
"scriptDurationMs": 61.340999999999994,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "large-graph-idle",
"durationMs": 2053.4399999999664,
"styleRecalcs": 10,
"styleRecalcDurationMs": 10.114,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 669.089,
"heapDeltaBytes": 48121876,
"heapUsedBytes": 111289784,
"domNodes": 20,
"jsHeapTotalBytes": 52834304,
"scriptDurationMs": 121.287,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2033.1810000000132,
"styleRecalcs": 8,
"styleRecalcDurationMs": 9.566,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 629.148,
"heapDeltaBytes": 5586960,
"heapUsedBytes": 64060832,
"domNodes": -265,
"jsHeapTotalBytes": 28672,
"scriptDurationMs": 107.971,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2244.316999999967,
"styleRecalcs": 70,
"styleRecalcDurationMs": 19.536,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1272.045,
"heapDeltaBytes": 57497160,
"heapUsedBytes": 117399332,
"domNodes": -244,
"jsHeapTotalBytes": 41652224,
"scriptDurationMs": 446.21299999999997,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2104.1979999999967,
"styleRecalcs": 68,
"styleRecalcDurationMs": 16.852000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1123.1689999999999,
"heapDeltaBytes": 28849988,
"heapUsedBytes": 79665756,
"domNodes": -247,
"jsHeapTotalBytes": 1253376,
"scriptDurationMs": 413.03700000000003,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3265.7460000000356,
"styleRecalcs": 65,
"styleRecalcDurationMs": 18.793000000000003,
"layouts": 60,
"layoutDurationMs": 7.564,
"taskDurationMs": 1476.638,
"heapDeltaBytes": 47391568,
"heapUsedBytes": 109691780,
"domNodes": -267,
"jsHeapTotalBytes": 33378304,
"scriptDurationMs": 510.653,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3279.4110000000956,
"styleRecalcs": 66,
"styleRecalcDurationMs": 19.790000000000003,
"layouts": 60,
"layoutDurationMs": 7.635999999999998,
"taskDurationMs": 1518.003,
"heapDeltaBytes": 49533628,
"heapUsedBytes": 111232748,
"domNodes": -266,
"jsHeapTotalBytes": 38825984,
"scriptDurationMs": 530.9670000000001,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2046.436999999969,
"styleRecalcs": 9,
"styleRecalcDurationMs": 11.212000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 665.062,
"heapDeltaBytes": 6308656,
"heapUsedBytes": 66838980,
"domNodes": -264,
"jsHeapTotalBytes": 1077248,
"scriptDurationMs": 111.08999999999999,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2034.310000000005,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.195999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 677.2119999999999,
"heapDeltaBytes": 38738556,
"heapUsedBytes": 100883268,
"domNodes": -245,
"jsHeapTotalBytes": 35713024,
"scriptDurationMs": 114.60900000000001,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 541.8129999999906,
"styleRecalcs": 46,
"styleRecalcDurationMs": 11.391,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 367.881,
"heapDeltaBytes": 9573496,
"heapUsedBytes": 58125436,
"domNodes": 18,
"jsHeapTotalBytes": 15728640,
"scriptDurationMs": 121.406,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 562.0890000000145,
"styleRecalcs": 48,
"styleRecalcDurationMs": 12.094000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 382.541,
"heapDeltaBytes": 11248884,
"heapUsedBytes": 64107568,
"domNodes": 22,
"jsHeapTotalBytes": 18350080,
"scriptDurationMs": 123.147,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-idle",
"durationMs": 2018.2120000000054,
"styleRecalcs": 9,
"styleRecalcDurationMs": 9.409,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 485.33899999999994,
"heapDeltaBytes": 20293956,
"heapUsedBytes": 69364668,
"domNodes": -263,
"jsHeapTotalBytes": 19001344,
"scriptDurationMs": 21.103,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2013.9099999998962,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.779000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 471.49199999999996,
"heapDeltaBytes": 20282536,
"heapUsedBytes": 69369068,
"domNodes": -263,
"jsHeapTotalBytes": 18477056,
"scriptDurationMs": 21.011999999999997,
"eventListeners": -131,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1747.2169999999778,
"styleRecalcs": 77,
"styleRecalcDurationMs": 41.22200000000001,
"layouts": 16,
"layoutDurationMs": 4.721,
"taskDurationMs": 780.2929999999999,
"heapDeltaBytes": 2888204,
"heapUsedBytes": 52254840,
"domNodes": -199,
"jsHeapTotalBytes": 14376960,
"scriptDurationMs": 109.563,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1774.450999999999,
"styleRecalcs": 76,
"styleRecalcDurationMs": 40.43,
"layouts": 16,
"layoutDurationMs": 4.5920000000000005,
"taskDurationMs": 823.239,
"heapDeltaBytes": -8826972,
"heapUsedBytes": 57325784,
"domNodes": -260,
"jsHeapTotalBytes": 29843456,
"scriptDurationMs": 109.071,
"eventListeners": -161,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 1366.1219999999616,
"styleRecalcs": 15,
"styleRecalcDurationMs": 28.790000000000003,
"layouts": 4,
"layoutDurationMs": 15.107,
"taskDurationMs": 988.0040000000001,
"heapDeltaBytes": -15571632,
"heapUsedBytes": 145732148,
"domNodes": 12476,
"jsHeapTotalBytes": -20877312,
"scriptDurationMs": 42.47200000000001,
"eventListeners": 1294,
"totalBlockingTimeMs": 167,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8197.969000000001,
"styleRecalcs": 250,
"styleRecalcDurationMs": 54.723,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4014.308,
"heapDeltaBytes": 4129896,
"heapUsedBytes": 63921052,
"domNodes": -259,
"jsHeapTotalBytes": 6029312,
"scriptDurationMs": 1290.332,
"eventListeners": -113,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8432.446000000027,
"styleRecalcs": 249,
"styleRecalcDurationMs": 55.047000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4583.072,
"heapDeltaBytes": 80901644,
"heapUsedBytes": 139968428,
"domNodes": -265,
"jsHeapTotalBytes": 67866624,
"scriptDurationMs": 1371.136,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 12720.027000000016,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12705.286999999998,
"heapDeltaBytes": -43211528,
"heapUsedBytes": 172229304,
"domNodes": -8331,
"jsHeapTotalBytes": 26275840,
"scriptDurationMs": 622.2220000000001,
"eventListeners": -16463,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 12554.276999999956,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12542.130000000001,
"heapDeltaBytes": -35933400,
"heapUsedBytes": 171368296,
"domNodes": -8329,
"jsHeapTotalBytes": 23916544,
"scriptDurationMs": 599.477,
"eventListeners": -16464,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 17680.743000000006,
"styleRecalcs": 118,
"styleRecalcDurationMs": 21.228000000000023,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17658.280000000002,
"heapDeltaBytes": 29490520,
"heapUsedBytes": 292661020,
"domNodes": -8331,
"jsHeapTotalBytes": 36761600,
"scriptDurationMs": 993.458,
"eventListeners": -16490,
"totalBlockingTimeMs": 23,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14680.05400000004,
"styleRecalcs": 67,
"styleRecalcDurationMs": 17.45100000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14659.482,
"heapDeltaBytes": -32399984,
"heapUsedBytes": 175779228,
"domNodes": -8331,
"jsHeapTotalBytes": -3170304,
"scriptDurationMs": 895.8539999999999,
"eventListeners": -16492,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 461.49699999995164,
"styleRecalcs": 19,
"styleRecalcDurationMs": 27.589999999999996,
"layouts": 5,
"layoutDurationMs": 1.6059999999999999,
"taskDurationMs": 143.81199999999995,
"heapDeltaBytes": 5489844,
"heapUsedBytes": 55586420,
"domNodes": 170,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 34.454,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 451.10299999998915,
"styleRecalcs": 17,
"styleRecalcDurationMs": 22.712999999999997,
"layouts": 5,
"layoutDurationMs": 1.3920000000000001,
"taskDurationMs": 127.37500000000001,
"heapDeltaBytes": 5173164,
"heapUsedBytes": 54376744,
"domNodes": 157,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 28.994,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
}
]
} |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #12306 +/- ##
===========================================
- Coverage 74.67% 59.58% -15.10%
===========================================
Files 1526 1412 -114
Lines 95359 71888 -23471
Branches 27134 19029 -8105
===========================================
- Hits 71212 42834 -28378
- Misses 23285 28581 +5296
+ Partials 862 473 -389
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1020 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Adds AssetsSidebarListView tests asserting the joined description string (extension + size, extension + execution time, extension + duration, extension-only) end-to-end through the component, addressing the review suggestion to exercise the rendered output, not just the helper.
|
Thanks for the review! For follow-up context: a self-review surfaced one suggestion — to exercise the joined description string ( Local checks ( |
Add JSDoc on getAssetSecondaryText (sidebar list view) and the metaInfo computed (MediaAssetCard) describing the <EXT> <detail> composition, priority ordering, and fallback semantics. Resolves CodeRabbit's docstring-coverage pre-merge warning.
|
Thanks for the review. CodeRabbit confirmed no actionable issues in the recent walkthrough — the only failing pre-merge check was Docstring Coverage (66.67% < 80%). Addressed in 28175e0 by adding JSDoc to both description-line composition sites:
|
|
CodeRabbit's latest review on commit 28175e0 is |
PR Created by the Glary-Bot Agent
Summary
Show the asset's file extension (uppercase, e.g.
PNG,MP4,GLB) in the description line beneath the asset name in both the Media Assets grid and sidebar list views — the badge approach was previously removed because it blocked content, so this surfaces the same information in the existing description line.Changes
getAssetExtensionLabel(asset)inassetMetadataUtils.tsand prepended its output to the description line inMediaAssetCard.vue(grid view) andAssetsSidebarListView.vue(list view). Extension resolution goes throughgetAssetDisplayFilenameso the Cloud case (asset.nameis a content hash, real filename ondisplay_name) still works, and usesgetPathDetailsso path-like filename metadata resolves correctly.PNG 512x512,MP4 10 MB,GLB 7 MB,JPG,TXT, etc.Review Focus
<EXT> <existing metadata>separated by single spaces — matches the static Figma frame referenced in the ticket (PNG 512×512). Thexvs×glyph for dimensions is pre-existing and left untouched (out of scope for this ticket).asset.nameis ablake3:...hash; covered by a regression test.Fixes FE-565 (https://linear.app/comfyorg/issue/FE-565)
Screenshots
Description-line variants rendered with the new logic (grid view):
Screenshots
┆Issue is synchronized with this Notion page by Unito