@buoy-gg/assets 7.0.29 → 7.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/AssetDetail.js +10 -1
- package/lib/commonjs/components/AssetDetail.js.map +1 -1
- package/lib/commonjs/components/AssetRow.js +13 -4
- package/lib/commonjs/components/AssetRow.js.map +1 -1
- package/lib/commonjs/components/AssetsFilterBar.js +4 -0
- package/lib/commonjs/components/AssetsFilterBar.js.map +1 -1
- package/lib/commonjs/components/AssetsHeader.js +11 -5
- package/lib/commonjs/components/AssetsHeader.js.map +1 -1
- package/lib/commonjs/components/AssetsListControls.js +5 -3
- package/lib/commonjs/components/AssetsListControls.js.map +1 -1
- package/lib/commonjs/components/AssetsModal.js +10 -0
- package/lib/commonjs/components/AssetsModal.js.map +1 -1
- package/lib/commonjs/components/BaselineBar.js +5 -0
- package/lib/commonjs/components/BaselineBar.js.map +1 -1
- package/lib/commonjs/index.js +53 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/store/assetStore.js +8 -1
- package/lib/commonjs/store/assetStore.js.map +1 -1
- package/lib/commonjs/store/baseline.js +9 -1
- package/lib/commonjs/store/baseline.js.map +1 -1
- package/lib/commonjs/store/insights.js +2 -11
- package/lib/commonjs/store/insights.js.map +1 -1
- package/lib/commonjs/utils/deviceScale.js +50 -0
- package/lib/commonjs/utils/deviceScale.js.map +1 -0
- package/lib/commonjs/utils/testIDs.js +114 -0
- package/lib/commonjs/utils/testIDs.js.map +1 -0
- package/lib/module/components/AssetDetail.js +10 -1
- package/lib/module/components/AssetDetail.js.map +1 -1
- package/lib/module/components/AssetRow.js +13 -4
- package/lib/module/components/AssetRow.js.map +1 -1
- package/lib/module/components/AssetsFilterBar.js +4 -0
- package/lib/module/components/AssetsFilterBar.js.map +1 -1
- package/lib/module/components/AssetsHeader.js +11 -5
- package/lib/module/components/AssetsHeader.js.map +1 -1
- package/lib/module/components/AssetsListControls.js +5 -3
- package/lib/module/components/AssetsListControls.js.map +1 -1
- package/lib/module/components/AssetsModal.js +10 -0
- package/lib/module/components/AssetsModal.js.map +1 -1
- package/lib/module/components/BaselineBar.js +5 -0
- package/lib/module/components/BaselineBar.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/store/assetStore.js +8 -1
- package/lib/module/store/assetStore.js.map +1 -1
- package/lib/module/store/baseline.js +9 -1
- package/lib/module/store/baseline.js.map +1 -1
- package/lib/module/store/insights.js +1 -10
- package/lib/module/store/insights.js.map +1 -1
- package/lib/module/utils/deviceScale.js +46 -0
- package/lib/module/utils/deviceScale.js.map +1 -0
- package/lib/module/utils/testIDs.js +103 -0
- package/lib/module/utils/testIDs.js.map +1 -0
- package/lib/typescript/components/AssetDetail.d.ts.map +1 -1
- package/lib/typescript/components/AssetRow.d.ts.map +1 -1
- package/lib/typescript/components/AssetsFilterBar.d.ts.map +1 -1
- package/lib/typescript/components/AssetsHeader.d.ts.map +1 -1
- package/lib/typescript/components/AssetsListControls.d.ts.map +1 -1
- package/lib/typescript/components/AssetsModal.d.ts.map +1 -1
- package/lib/typescript/components/BaselineBar.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/store/assetStore.d.ts +6 -0
- package/lib/typescript/store/assetStore.d.ts.map +1 -1
- package/lib/typescript/store/baseline.d.ts.map +1 -1
- package/lib/typescript/store/insights.d.ts.map +1 -1
- package/lib/typescript/utils/deviceScale.d.ts +25 -0
- package/lib/typescript/utils/deviceScale.d.ts.map +1 -0
- package/lib/typescript/utils/testIDs.d.ts +75 -0
- package/lib/typescript/utils/testIDs.d.ts.map +1 -0
- package/package.json +5 -6
- package/src/capture/expo.ts +0 -45
- package/src/capture/install.ts +0 -73
- package/src/capture/measure.ts +0 -167
- package/src/capture/metroGraph.ts +0 -146
- package/src/capture/registry.ts +0 -137
- package/src/components/AssetDetail.tsx +0 -207
- package/src/components/AssetRow.tsx +0 -243
- package/src/components/AssetsFilterBar.tsx +0 -99
- package/src/components/AssetsHeader.tsx +0 -75
- package/src/components/AssetsIcon.tsx +0 -9
- package/src/components/AssetsListControls.tsx +0 -101
- package/src/components/AssetsModal.tsx +0 -371
- package/src/components/BaselineBar.tsx +0 -98
- package/src/export.ts +0 -110
- package/src/format.ts +0 -53
- package/src/hooks/useAssetRecords.ts +0 -26
- package/src/index.tsx +0 -87
- package/src/preset.tsx +0 -35
- package/src/remote.ts +0 -65
- package/src/state.ts +0 -84
- package/src/store/assetStore.ts +0 -209
- package/src/store/baseline.ts +0 -152
- package/src/store/insights.ts +0 -145
- package/src/sync/assetsSyncAdapter.ts +0 -151
- package/src/types.ts +0 -160
package/lib/commonjs/index.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "ASSETS_ICON_COLOR", {
|
|
|
9
9
|
return _AssetsIcon.ASSETS_ICON_COLOR;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "ASSETS_TEST_IDS", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _testIDs.ASSETS_TEST_IDS;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "AssetsIcon", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -27,6 +33,48 @@ Object.defineProperty(exports, "AssetsToolView", {
|
|
|
27
33
|
return _AssetsModal.AssetsToolView;
|
|
28
34
|
}
|
|
29
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "assetBadgeTestID", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _testIDs.assetBadgeTestID;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "assetDetailRowTestID", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _testIDs.assetDetailRowTestID;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "assetFilterTestID", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _testIDs.assetFilterTestID;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "assetFindingTestID", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _testIDs.assetFindingTestID;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "assetFontChipTestID", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _testIDs.assetFontChipTestID;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "assetRowTestID", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _testIDs.assetRowTestID;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "assetSlug", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _testIDs.assetSlug;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
30
78
|
Object.defineProperty(exports, "assetsSyncAdapter", {
|
|
31
79
|
enumerable: true,
|
|
32
80
|
get: function () {
|
|
@@ -215,6 +263,7 @@ var _useAssetRecords = require("./hooks/useAssetRecords");
|
|
|
215
263
|
var _export = require("./export");
|
|
216
264
|
var _assetsSyncAdapter = require("./sync/assetsSyncAdapter");
|
|
217
265
|
var _remote = require("./remote");
|
|
266
|
+
var _testIDs = require("./utils/testIDs");
|
|
218
267
|
/**
|
|
219
268
|
* @buoy-gg/assets — bundled-asset inventory for React Native / Expo.
|
|
220
269
|
*
|
|
@@ -249,6 +298,10 @@ var _remote = require("./remote");
|
|
|
249
298
|
// External sync (desktop dashboard + MCP)
|
|
250
299
|
// ---------------------------------------------------------------------------
|
|
251
300
|
|
|
301
|
+
// ---------------------------------------------------------------------------
|
|
302
|
+
// Automation handles
|
|
303
|
+
// ---------------------------------------------------------------------------
|
|
304
|
+
|
|
252
305
|
// ---------------------------------------------------------------------------
|
|
253
306
|
// Types
|
|
254
307
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_preset","require","_AssetsModal","_AssetsIcon","_install","_measure","_metroGraph","_expo","_assetStore","_insights","_baseline","_useAssetRecords","_export","_assetsSyncAdapter","_remote","installOnImport"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_preset","require","_AssetsModal","_AssetsIcon","_install","_measure","_metroGraph","_expo","_assetStore","_insights","_baseline","_useAssetRecords","_export","_assetsSyncAdapter","_remote","_testIDs","installOnImport"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAP,OAAA;AAQA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAOA,IAAAU,gBAAA,GAAAV,OAAA;AAKA,IAAAW,OAAA,GAAAX,OAAA;AAKA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAUA,IAAAc,QAAA,GAAAd,OAAA;AArEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AAMA;AACA;AACA;;AAmBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAYA;AACA;AACA;;AAeA;AACA;;AAEA,IAAAe,4BAAe,EAAC,CAAC","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ exports.subscribe = subscribe;
|
|
|
16
16
|
exports.updateRecord = updateRecord;
|
|
17
17
|
exports.upsertRecord = upsertRecord;
|
|
18
18
|
var _state = require("../state");
|
|
19
|
+
var _deviceScale = require("../utils/deviceScale");
|
|
19
20
|
/**
|
|
20
21
|
* assetStore
|
|
21
22
|
*
|
|
@@ -177,10 +178,16 @@ function clearRecords() {
|
|
|
177
178
|
/**
|
|
178
179
|
* Estimated decoded-bitmap memory (RGBA8888) at the scale this device would
|
|
179
180
|
* pick — the size fallback when bytes can't be measured (release builds).
|
|
181
|
+
*
|
|
182
|
+
* `resolvedScale` is React Native's own answer and is authoritative, but it
|
|
183
|
+
* only exists once the asset has been REGISTERED. For everything still known
|
|
184
|
+
* only from the Metro graph — the never-loaded set, which is most of what this
|
|
185
|
+
* tool is for — the scale has to be predicted the same way AssetSourceResolver
|
|
186
|
+
* would, not taken as the largest variant shipped.
|
|
180
187
|
*/
|
|
181
188
|
function estDecodedBytes(record) {
|
|
182
189
|
if (record.kind !== "image" || !record.width || !record.height) return 0;
|
|
183
|
-
const scale = record.resolvedScale ?? (
|
|
190
|
+
const scale = record.resolvedScale ?? (0, _deviceScale.pickScale)(record.scales, (0, _deviceScale.effectivePixelRatio)());
|
|
184
191
|
return Math.round(record.width * scale * record.height * scale * 4);
|
|
185
192
|
}
|
|
186
193
|
function computeStats(list) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_state","require","emit","s","assetsState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","KIND_BY_EXT","png","jpg","jpeg","gif","webp","bmp","psd","svg","tiff","ktx","heic","heif","avif","ttf","otf","woff","woff2","ttc","mp4","m4v","mov","mpeg","mpg","webm","avi","mp3","wav","aac","aiff","caf","m4a","ogg","json","db","yaml","yml","xml","html","pdf","zip","kindForType","type","toLowerCase","assetKey","httpServerLocation","name","location","decodeURIComponent","upsertRecord","input","record","byKey","get","key","id","nextId","kind","scales","loaded","origin","firstSeenAt","Date","now","push","set","byId","registryId","hash","width","height","length","Set","sort","a","b","resolvedUri","resolvedScale","fileSystemLocation","files","fileHashes","updateRecord","patch","undefined","Object","assign","getRecord","getRecordByKey","getSnapshot","subscribe","add","delete","clearRecords","Map","measuredCount","graphCount","estDecodedBytes","scale","Math","round","computeStats","list","byKind","image","count","bytes","font","video","audio","data","other","stats","total","neverLoaded","totalBytes","fontFamilies","r","sizeBytes","sizeSource"],"sourceRoot":"../../../src","sources":["store/assetStore.ts"],"mappings":";;;;;;;;;;;;;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_state","require","_deviceScale","emit","s","assetsState","emitScheduled","requestAnimationFrame","listener","listeners","invalidate","snapshot","records","KIND_BY_EXT","png","jpg","jpeg","gif","webp","bmp","psd","svg","tiff","ktx","heic","heif","avif","ttf","otf","woff","woff2","ttc","mp4","m4v","mov","mpeg","mpg","webm","avi","mp3","wav","aac","aiff","caf","m4a","ogg","json","db","yaml","yml","xml","html","pdf","zip","kindForType","type","toLowerCase","assetKey","httpServerLocation","name","location","decodeURIComponent","upsertRecord","input","record","byKey","get","key","id","nextId","kind","scales","loaded","origin","firstSeenAt","Date","now","push","set","byId","registryId","hash","width","height","length","Set","sort","a","b","resolvedUri","resolvedScale","fileSystemLocation","files","fileHashes","updateRecord","patch","undefined","Object","assign","getRecord","getRecordByKey","getSnapshot","subscribe","add","delete","clearRecords","Map","measuredCount","graphCount","estDecodedBytes","scale","pickScale","effectivePixelRatio","Math","round","computeStats","list","byKind","image","count","bytes","font","video","audio","data","other","stats","total","neverLoaded","totalBytes","fontFamilies","r","sizeBytes","sizeSource"],"sourceRoot":"../../../src","sources":["store/assetStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -134,7 +134,15 @@ function computeDiff(records, baseline) {
|
|
|
134
134
|
name: entry.name,
|
|
135
135
|
type: entry.type
|
|
136
136
|
});
|
|
137
|
-
if (entry.sizeBytes != null)
|
|
137
|
+
if (entry.sizeBytes != null) {
|
|
138
|
+
// A removal is as comparable as a survivor: its bytes were measured
|
|
139
|
+
// then and are definitionally zero now. Counting them toward the
|
|
140
|
+
// baseline total without marking the diff comparable meant a branch
|
|
141
|
+
// that only DELETED assets reported "12 removed" and no size at all —
|
|
142
|
+
// the one number anyone reads that bar for.
|
|
143
|
+
comparable = true;
|
|
144
|
+
baselineBytes += entry.sizeBytes;
|
|
145
|
+
}
|
|
138
146
|
}
|
|
139
147
|
}
|
|
140
148
|
// Added assets' measured bytes count toward the net even without a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sharedUi","require","_remote","_state","_assetStore","STORAGE_KEY","GROWN_THRESHOLD_BYTES","loadBaseline","s","assetsState","baselineLoaded","baseline","raw","persistentStorage","getItem","parsed","JSON","parse","savedAt","entries","invalidate","saveBaseline","remote","remoteAssetsDispatch","Date","now","r","getSnapshot","key","hash","sizeBytes","sizeSource","name","type","setItem","stringify","clearBaseline","removeItem","computeDiff","records","added","grown","seen","Set","currentBytes","baselineBytes","comparable","add","then","push","id","deltaBytes","removed","entry","Object","has","find","rec","baselineSavedAt","sort","a","b","netBytes","getDiff","mirrorDiff"],"sourceRoot":"../../../src","sources":["store/baseline.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_sharedUi","require","_remote","_state","_assetStore","STORAGE_KEY","GROWN_THRESHOLD_BYTES","loadBaseline","s","assetsState","baselineLoaded","baseline","raw","persistentStorage","getItem","parsed","JSON","parse","savedAt","entries","invalidate","saveBaseline","remote","remoteAssetsDispatch","Date","now","r","getSnapshot","key","hash","sizeBytes","sizeSource","name","type","setItem","stringify","clearBaseline","removeItem","computeDiff","records","added","grown","seen","Set","currentBytes","baselineBytes","comparable","add","then","push","id","deltaBytes","removed","entry","Object","has","find","rec","baselineSavedAt","sort","a","b","netBytes","getDiff","mirrorDiff"],"sourceRoot":"../../../src","sources":["store/baseline.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.computeInsights = computeInsights;
|
|
7
|
-
var _state = require("../state");
|
|
8
7
|
var _assetStore = require("./assetStore");
|
|
8
|
+
var _deviceScale = require("../utils/deviceScale");
|
|
9
9
|
/**
|
|
10
10
|
* Derived insights over the asset inventory — the Lighthouse/Emerge-style
|
|
11
11
|
* audit findings, each pointing at concrete record ids.
|
|
@@ -26,15 +26,6 @@ const SCALE_ANOMALY_RATIO = 0.9;
|
|
|
26
26
|
* for tiny icons PNG overhead dominates and byte ordering is pure noise.
|
|
27
27
|
*/
|
|
28
28
|
const SCALE_ANOMALY_MIN_BYTES = 4 * 1024;
|
|
29
|
-
function effectivePixelRatio() {
|
|
30
|
-
const mirror = (0, _state.assetsState)().mirrorPixelRatio;
|
|
31
|
-
if (mirror != null) return mirror;
|
|
32
|
-
try {
|
|
33
|
-
return require("react-native").PixelRatio.get();
|
|
34
|
-
} catch {
|
|
35
|
-
return 2;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
29
|
|
|
39
30
|
/** Physical pixels of the entire screen (fallback ≈ a 6.1" phone). */
|
|
40
31
|
function screenPixels() {
|
|
@@ -67,7 +58,7 @@ function hasScaleAnomaly(record) {
|
|
|
67
58
|
return false;
|
|
68
59
|
}
|
|
69
60
|
function computeInsights(list) {
|
|
70
|
-
const deviceScale = effectivePixelRatio();
|
|
61
|
+
const deviceScale = (0, _deviceScale.effectivePixelRatio)();
|
|
71
62
|
const byHash = new Map();
|
|
72
63
|
for (const r of list) {
|
|
73
64
|
if (!r.hash) continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_assetStore","require","_deviceScale","WEBP_CANDIDATE_BYTES","HEAVY_GIF_BYTES","HEAVY_FONT_BYTES","OVER_DECODE_SCREENS","SCALE_ANOMALY_RATIO","SCALE_ANOMALY_MIN_BYTES","screenPixels","Dimensions","PixelRatio","screen","get","ratio","width","height","hasScaleAnomaly","record","sizes","sizesByScale","ordered","Object","entries","map","scale","bytes","Number","filter","e","isFinite","sort","a","b","i","length","computeInsights","list","deviceScale","effectivePixelRatio","byHash","Map","r","hash","group","push","set","duplicates","measured","find","sizeBytes","ids","id","wastedBytes","screenPx","scaleGaps","webpCandidates","neverLoaded","overDecode","heavyGifs","heavyFonts","scaleAnomalies","loaded","kind","scales","some","s","type","estDecodedBytes"],"sourceRoot":"../../../src","sources":["store/insights.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.effectivePixelRatio = effectivePixelRatio;
|
|
7
|
+
exports.pickScale = pickScale;
|
|
8
|
+
var _state = require("../state");
|
|
9
|
+
/**
|
|
10
|
+
* Which scale variant this device would actually use.
|
|
11
|
+
*
|
|
12
|
+
* Shared by the decoded-memory estimate and the scale-gap insight so the two
|
|
13
|
+
* can't disagree about the same asset — they were written apart and did.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* PixelRatio, or the DEVICE's when this store is a dashboard mirror.
|
|
18
|
+
*
|
|
19
|
+
* A desktop dashboard renders another machine's inventory, and its own
|
|
20
|
+
* PixelRatio has nothing to do with which variant the phone will pick.
|
|
21
|
+
*/
|
|
22
|
+
function effectivePixelRatio() {
|
|
23
|
+
const mirror = (0, _state.assetsState)().mirrorPixelRatio;
|
|
24
|
+
if (mirror != null) return mirror;
|
|
25
|
+
try {
|
|
26
|
+
return require("react-native").PixelRatio.get();
|
|
27
|
+
} catch {
|
|
28
|
+
return 2;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The variant React Native would resolve, by AssetSourceResolver's rule: the
|
|
34
|
+
* smallest scale that covers the device, or the largest available when none
|
|
35
|
+
* does.
|
|
36
|
+
*
|
|
37
|
+
* Not simply "the biggest one shipped". An asset with @1x…@4x variants on a
|
|
38
|
+
* @3x phone decodes at 3, and calling it 4 overstates its memory by 78% —
|
|
39
|
+
* on exactly the never-loaded assets this tool exists to point at, since a
|
|
40
|
+
* loaded one carries the scale RN already picked.
|
|
41
|
+
*/
|
|
42
|
+
function pickScale(scales, deviceScale) {
|
|
43
|
+
if (!scales.length) return 1;
|
|
44
|
+
const ordered = [...scales].sort((a, b) => a - b);
|
|
45
|
+
for (const scale of ordered) {
|
|
46
|
+
if (scale >= deviceScale) return scale;
|
|
47
|
+
}
|
|
48
|
+
return ordered[ordered.length - 1];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=deviceScale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_state","require","effectivePixelRatio","mirror","assetsState","mirrorPixelRatio","PixelRatio","get","pickScale","scales","deviceScale","length","ordered","sort","a","b","scale"],"sourceRoot":"../../../src","sources":["utils/deviceScale.ts"],"mappings":";;;;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAAA,EAAW;EAC5C,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,CAAC,CAACC,gBAAgB;EAC7C,IAAIF,MAAM,IAAI,IAAI,EAAE,OAAOA,MAAM;EACjC,IAAI;IACF,OAAOF,OAAO,CAAC,cAAc,CAAC,CAACK,UAAU,CAACC,GAAG,CAAC,CAAC;EACjD,CAAC,CAAC,MAAM;IACN,OAAO,CAAC;EACV;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,SAASA,CAACC,MAAgB,EAAEC,WAAmB,EAAU;EACvE,IAAI,CAACD,MAAM,CAACE,MAAM,EAAE,OAAO,CAAC;EAC5B,MAAMC,OAAO,GAAG,CAAC,GAAGH,MAAM,CAAC,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;EACjD,KAAK,MAAMC,KAAK,IAAIJ,OAAO,EAAE;IAC3B,IAAII,KAAK,IAAIN,WAAW,EAAE,OAAOM,KAAK;EACxC;EACA,OAAOJ,OAAO,CAACA,OAAO,CAACD,MAAM,GAAG,CAAC,CAAC;AACpC","ignoreList":[]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ASSETS_TEST_IDS = void 0;
|
|
7
|
+
exports.assetBadgeTestID = assetBadgeTestID;
|
|
8
|
+
exports.assetDetailRowTestID = assetDetailRowTestID;
|
|
9
|
+
exports.assetFilterTestID = assetFilterTestID;
|
|
10
|
+
exports.assetFindingTestID = assetFindingTestID;
|
|
11
|
+
exports.assetFontChipTestID = assetFontChipTestID;
|
|
12
|
+
exports.assetRowTestID = assetRowTestID;
|
|
13
|
+
exports.assetSlug = assetSlug;
|
|
14
|
+
/**
|
|
15
|
+
* Automation handles for the Assets tool.
|
|
16
|
+
*
|
|
17
|
+
* Every handle the tool renders is built here rather than inlined at the call
|
|
18
|
+
* site, for the same reason the highlight tool does it: the ids for rows,
|
|
19
|
+
* badges, filter chips and detail fields are DERIVED from data, and a suite
|
|
20
|
+
* that reimplements the derivation is a suite that can drift from the tool
|
|
21
|
+
* without either side failing. `detox-e2e/assets/fixture.js` mirrors these
|
|
22
|
+
* rules in CommonJS (the tests can't import TypeScript) and asserts the two
|
|
23
|
+
* still agree before any flow trusts a handle.
|
|
24
|
+
*
|
|
25
|
+
* Naming: `buoy-assets-<area>[-<detail>]`, one prefix for the whole tool.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Lowercase, hyphen-joined, never empty.
|
|
30
|
+
*
|
|
31
|
+
* Shared by rows, badges, filter chips and detail fields so one asset's row
|
|
32
|
+
* handle and its detail handles are slugged the same way — `back-icon.png`
|
|
33
|
+
* becomes `back-icon-png` everywhere it appears.
|
|
34
|
+
*/
|
|
35
|
+
function assetSlug(value) {
|
|
36
|
+
return String(value).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "unknown";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* One inventory row, addressed by filename rather than by store id.
|
|
41
|
+
*
|
|
42
|
+
* The store's numeric ids are assigned in first-sighting order and are NOT
|
|
43
|
+
* stable: clearing the inventory and rescanning renumbers everything, and the
|
|
44
|
+
* order the registry walk and the Metro graph merge in depends on what the app
|
|
45
|
+
* has evaluated so far. A handle built from those makes a test that passes
|
|
46
|
+
* only on the run that recorded it.
|
|
47
|
+
*
|
|
48
|
+
* The tradeoff is that two assets with the same filename in different
|
|
49
|
+
* directories collide. That's a real ambiguity rather than a hidden one —
|
|
50
|
+
* Detox reports it as "multiple elements matched", which names the problem —
|
|
51
|
+
* and it's the same tradeoff the row itself makes, since the row shows the
|
|
52
|
+
* filename and not the path.
|
|
53
|
+
*/
|
|
54
|
+
function assetRowTestID(name, type) {
|
|
55
|
+
return `buoy-assets-row-${assetSlug(`${name}.${type}`)}`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** A finding badge inside a row: `…-badge-low-res`, `…-badge-dup`. */
|
|
59
|
+
function assetBadgeTestID(name, type, label) {
|
|
60
|
+
return `${assetRowTestID(name, type)}-badge-${assetSlug(label)}`;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** A kind/status filter chip: `buoy-assets-filter-font`, `…-filter-unused`. */
|
|
64
|
+
function assetFilterTestID(filter) {
|
|
65
|
+
return `buoy-assets-filter-${assetSlug(filter)}`;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** One label/value pair in the detail view: `buoy-assets-detail-row-hash`. */
|
|
69
|
+
function assetDetailRowTestID(label) {
|
|
70
|
+
return `buoy-assets-detail-row-${assetSlug(label)}`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** A loaded font-family chip: `buoy-assets-font-ionicons`. */
|
|
74
|
+
function assetFontChipTestID(family) {
|
|
75
|
+
return `buoy-assets-font-${assetSlug(family)}`;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Fixed handles — everything that isn't derived from a record. */
|
|
79
|
+
const ASSETS_TEST_IDS = exports.ASSETS_TEST_IDS = {
|
|
80
|
+
// header
|
|
81
|
+
title: "buoy-assets-title",
|
|
82
|
+
copy: "buoy-assets-copy",
|
|
83
|
+
clear: "buoy-assets-clear",
|
|
84
|
+
// list chrome
|
|
85
|
+
list: "buoy-assets-list",
|
|
86
|
+
search: "buoy-assets-search",
|
|
87
|
+
sort: "buoy-assets-sort",
|
|
88
|
+
saveBaseline: "buoy-assets-save-baseline",
|
|
89
|
+
filterBar: "buoy-assets-filter-bar",
|
|
90
|
+
notice: "buoy-assets-notice",
|
|
91
|
+
noticeText: "buoy-assets-notice-text",
|
|
92
|
+
fonts: "buoy-assets-fonts",
|
|
93
|
+
fontsTitle: "buoy-assets-fonts-title",
|
|
94
|
+
empty: "buoy-assets-empty",
|
|
95
|
+
emptyTitle: "buoy-assets-empty-title",
|
|
96
|
+
emptyText: "buoy-assets-empty-text",
|
|
97
|
+
// baseline bar
|
|
98
|
+
baseline: "buoy-assets-baseline",
|
|
99
|
+
baselineSummary: "buoy-assets-baseline-summary",
|
|
100
|
+
baselineUpdate: "buoy-assets-baseline-update",
|
|
101
|
+
baselineClear: "buoy-assets-baseline-clear",
|
|
102
|
+
// detail
|
|
103
|
+
detail: "buoy-assets-detail",
|
|
104
|
+
detailScroll: "buoy-assets-detail-scroll",
|
|
105
|
+
detailPreview: "buoy-assets-detail-preview",
|
|
106
|
+
detailFontPreview: "buoy-assets-detail-font-preview",
|
|
107
|
+
detailFindings: "buoy-assets-detail-findings"
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/** One finding sentence in the detail view, by position. */
|
|
111
|
+
function assetFindingTestID(index) {
|
|
112
|
+
return `buoy-assets-detail-finding-${index}`;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=testIDs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["assetSlug","value","String","toLowerCase","replace","assetRowTestID","name","type","assetBadgeTestID","label","assetFilterTestID","filter","assetDetailRowTestID","assetFontChipTestID","family","ASSETS_TEST_IDS","exports","title","copy","clear","list","search","sort","saveBaseline","filterBar","notice","noticeText","fonts","fontsTitle","empty","emptyTitle","emptyText","baseline","baselineSummary","baselineUpdate","baselineClear","detail","detailScroll","detailPreview","detailFontPreview","detailFindings","assetFindingTestID","index"],"sourceRoot":"../../../src","sources":["utils/testIDs.ts"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAACC,KAAsB,EAAU;EACxD,OACEC,MAAM,CAACD,KAAK,CAAC,CACVE,WAAW,CAAC,CAAC,CACbC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAC3BA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS;AAE3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAACC,IAAY,EAAEC,IAAY,EAAU;EACjE,OAAO,mBAAmBP,SAAS,CAAC,GAAGM,IAAI,IAAIC,IAAI,EAAE,CAAC,EAAE;AAC1D;;AAEA;AACO,SAASC,gBAAgBA,CAC9BF,IAAY,EACZC,IAAY,EACZE,KAAa,EACL;EACR,OAAO,GAAGJ,cAAc,CAACC,IAAI,EAAEC,IAAI,CAAC,UAAUP,SAAS,CAACS,KAAK,CAAC,EAAE;AAClE;;AAEA;AACO,SAASC,iBAAiBA,CAACC,MAAc,EAAU;EACxD,OAAO,sBAAsBX,SAAS,CAACW,MAAM,CAAC,EAAE;AAClD;;AAEA;AACO,SAASC,oBAAoBA,CAACH,KAAa,EAAU;EAC1D,OAAO,0BAA0BT,SAAS,CAACS,KAAK,CAAC,EAAE;AACrD;;AAEA;AACO,SAASI,mBAAmBA,CAACC,MAAc,EAAU;EAC1D,OAAO,oBAAoBd,SAAS,CAACc,MAAM,CAAC,EAAE;AAChD;;AAEA;AACO,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7B;EACAE,KAAK,EAAE,mBAAmB;EAC1BC,IAAI,EAAE,kBAAkB;EACxBC,KAAK,EAAE,mBAAmB;EAC1B;EACAC,IAAI,EAAE,kBAAkB;EACxBC,MAAM,EAAE,oBAAoB;EAC5BC,IAAI,EAAE,kBAAkB;EACxBC,YAAY,EAAE,2BAA2B;EACzCC,SAAS,EAAE,wBAAwB;EACnCC,MAAM,EAAE,oBAAoB;EAC5BC,UAAU,EAAE,yBAAyB;EACrCC,KAAK,EAAE,mBAAmB;EAC1BC,UAAU,EAAE,yBAAyB;EACrCC,KAAK,EAAE,mBAAmB;EAC1BC,UAAU,EAAE,yBAAyB;EACrCC,SAAS,EAAE,wBAAwB;EACnC;EACAC,QAAQ,EAAE,sBAAsB;EAChCC,eAAe,EAAE,8BAA8B;EAC/CC,cAAc,EAAE,6BAA6B;EAC7CC,aAAa,EAAE,4BAA4B;EAC3C;EACAC,MAAM,EAAE,oBAAoB;EAC5BC,YAAY,EAAE,2BAA2B;EACzCC,aAAa,EAAE,4BAA4B;EAC3CC,iBAAiB,EAAE,iCAAiC;EACpDC,cAAc,EAAE;AAClB,CAAU;;AAEV;AACO,SAASC,kBAAkBA,CAACC,KAAa,EAAU;EACxD,OAAO,8BAA8BA,KAAK,EAAE;AAC9C","ignoreList":[]}
|
|
@@ -15,19 +15,23 @@ import { night } from "@buoy-gg/shared-ui";
|
|
|
15
15
|
import { displaySource } from "../capture/measure";
|
|
16
16
|
import { formatBytes, formatDimensions, formatScales } from "../format";
|
|
17
17
|
import { estDecodedBytes } from "../store/assetStore";
|
|
18
|
+
import { ASSETS_TEST_IDS, assetDetailRowTestID, assetFindingTestID } from "../utils/testIDs";
|
|
18
19
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
20
|
function Row({
|
|
20
21
|
label,
|
|
21
22
|
value
|
|
22
23
|
}) {
|
|
24
|
+
const testID = assetDetailRowTestID(label);
|
|
23
25
|
return /*#__PURE__*/_jsxs(View, {
|
|
24
26
|
style: styles.kvRow,
|
|
27
|
+
testID: testID,
|
|
25
28
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
26
29
|
style: styles.kvLabel,
|
|
27
30
|
children: label
|
|
28
31
|
}), /*#__PURE__*/_jsx(Text, {
|
|
29
32
|
style: styles.kvValue,
|
|
30
33
|
selectable: true,
|
|
34
|
+
testID: `${testID}-value`,
|
|
31
35
|
children: value
|
|
32
36
|
})]
|
|
33
37
|
});
|
|
@@ -40,6 +44,7 @@ function Preview({
|
|
|
40
44
|
if (source == null) return null;
|
|
41
45
|
return /*#__PURE__*/_jsx(View, {
|
|
42
46
|
style: styles.previewBox,
|
|
47
|
+
testID: ASSETS_TEST_IDS.detailPreview,
|
|
43
48
|
children: /*#__PURE__*/_jsx(Image, {
|
|
44
49
|
testID: "buoy-internal-assets-preview",
|
|
45
50
|
source: source,
|
|
@@ -51,6 +56,7 @@ function Preview({
|
|
|
51
56
|
if (record.kind === "font") {
|
|
52
57
|
return /*#__PURE__*/_jsx(View, {
|
|
53
58
|
style: styles.previewBox,
|
|
59
|
+
testID: ASSETS_TEST_IDS.detailFontPreview,
|
|
54
60
|
children: /*#__PURE__*/_jsx(Text, {
|
|
55
61
|
style: [styles.fontPreview, {
|
|
56
62
|
fontFamily: record.name
|
|
@@ -95,12 +101,15 @@ export function AssetDetail({
|
|
|
95
101
|
return /*#__PURE__*/_jsxs(ScrollView, {
|
|
96
102
|
style: styles.scroll,
|
|
97
103
|
contentContainerStyle: styles.content,
|
|
104
|
+
testID: ASSETS_TEST_IDS.detailScroll,
|
|
98
105
|
children: [/*#__PURE__*/_jsx(Preview, {
|
|
99
106
|
record: record
|
|
100
107
|
}), findings.length > 0 ? /*#__PURE__*/_jsx(View, {
|
|
101
108
|
style: styles.findings,
|
|
102
|
-
|
|
109
|
+
testID: ASSETS_TEST_IDS.detailFindings,
|
|
110
|
+
children: findings.map((finding, index) => /*#__PURE__*/_jsx(Text, {
|
|
103
111
|
style: styles.findingText,
|
|
112
|
+
testID: assetFindingTestID(index),
|
|
104
113
|
children: finding
|
|
105
114
|
}, finding))
|
|
106
115
|
}) : null, /*#__PURE__*/_jsx(Row, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Image","ScrollView","StyleSheet","Text","View","night","displaySource","formatBytes","formatDimensions","formatScales","estDecodedBytes","jsx","_jsx","jsxs","_jsxs","Row","label","value","style","styles","kvRow","children","kvLabel","kvValue","selectable","Preview","record","kind","source","previewBox","
|
|
1
|
+
{"version":3,"names":["Image","ScrollView","StyleSheet","Text","View","night","displaySource","formatBytes","formatDimensions","formatScales","estDecodedBytes","ASSETS_TEST_IDS","assetDetailRowTestID","assetFindingTestID","jsx","_jsx","jsxs","_jsxs","Row","label","value","testID","style","styles","kvRow","children","kvLabel","kvValue","selectable","Preview","record","kind","source","previewBox","detailPreview","previewImage","resizeMode","detailFontPreview","fontPreview","fontFamily","name","AssetDetail","insights","findings","neverLoaded","includes","id","push","scaleGaps","webpCandidates","duplicate","duplicates","find","d","ids","length","overDecode","heavyGifs","heavyFonts","scaleAnomalies","estimate","scroll","contentContainerStyle","content","detailScroll","detailFindings","map","finding","index","findingText","type","loaded","scales","sizesByScale","Object","entries","scale","bytes","sizeBytes","sizeSource","registryId","String","hash","httpServerLocation","fileSystemLocation","resolvedUri","create","flex","padding","gap","borderRadius","backgroundColor","color","bg","alignItems","justifyContent","minHeight","width","height","text","fontSize","textAlign","borderWidth","borderColor","border","surface","textSecondary","lineHeight","textTertiary","fontWeight","letterSpacing","textTransform"],"sourceRoot":"../../../src","sources":["components/AssetDetail.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,17 +18,20 @@ import { macOSColors, night } from "@buoy-gg/shared-ui";
|
|
|
18
18
|
import { displaySource } from "../capture/measure";
|
|
19
19
|
import { formatDimensions, formatScales, formatSize, KIND_COLORS, KIND_LABELS } from "../format";
|
|
20
20
|
import { estDecodedBytes } from "../store/assetStore";
|
|
21
|
+
import { assetBadgeTestID, assetRowTestID } from "../utils/testIDs";
|
|
21
22
|
|
|
22
23
|
/** Which audit findings apply to this record (drives the row badges). */
|
|
23
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
25
|
function Badge({
|
|
25
26
|
label,
|
|
26
|
-
color
|
|
27
|
+
color,
|
|
28
|
+
testID
|
|
27
29
|
}) {
|
|
28
30
|
// Quiet chip: legibility from light-gray text on a neutral fill. Only the
|
|
29
31
|
// serious tiers (red) and WEBP (blue) carry a small dot; the rest are plain.
|
|
30
32
|
return /*#__PURE__*/_jsxs(View, {
|
|
31
33
|
style: styles.badgePill,
|
|
34
|
+
testID: testID,
|
|
32
35
|
children: [color ? /*#__PURE__*/_jsx(View, {
|
|
33
36
|
style: [styles.badgeDot, {
|
|
34
37
|
backgroundColor: color
|
|
@@ -73,14 +76,17 @@ export function AssetRow({
|
|
|
73
76
|
});
|
|
74
77
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
75
78
|
style: styles.card,
|
|
76
|
-
testID:
|
|
79
|
+
testID: assetRowTestID(record.name, record.type),
|
|
77
80
|
onPress: () => onPress(record.id),
|
|
78
81
|
activeOpacity: 0.7,
|
|
79
82
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
80
83
|
style: styles.body,
|
|
81
84
|
children: [/*#__PURE__*/_jsx(View, {
|
|
82
85
|
style: styles.thumbBox,
|
|
83
|
-
children: thumbSource != null ? /*#__PURE__*/_jsx(Image
|
|
86
|
+
children: thumbSource != null ? /*#__PURE__*/_jsx(Image
|
|
87
|
+
// buoy-internal- prefix: the images tool skips its own toolchain's
|
|
88
|
+
// views, so previewing an asset never records a render of itself.
|
|
89
|
+
, {
|
|
84
90
|
testID: "buoy-internal-assets-thumb",
|
|
85
91
|
source: thumbSource,
|
|
86
92
|
style: styles.thumb,
|
|
@@ -96,6 +102,7 @@ export function AssetRow({
|
|
|
96
102
|
children: [/*#__PURE__*/_jsxs(Text, {
|
|
97
103
|
style: styles.name,
|
|
98
104
|
numberOfLines: 1,
|
|
105
|
+
testID: `${assetRowTestID(record.name, record.type)}-name`,
|
|
99
106
|
children: [record.name, /*#__PURE__*/_jsxs(Text, {
|
|
100
107
|
style: styles.ext,
|
|
101
108
|
children: [".", record.type]
|
|
@@ -114,12 +121,14 @@ export function AssetRow({
|
|
|
114
121
|
style: styles.right,
|
|
115
122
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
116
123
|
style: styles.size,
|
|
124
|
+
testID: `${assetRowTestID(record.name, record.type)}-size`,
|
|
117
125
|
children: formatSize(record, estDecodedBytes(record))
|
|
118
126
|
}), badges.length ? /*#__PURE__*/_jsx(View, {
|
|
119
127
|
style: styles.badgeRow,
|
|
120
128
|
children: badges.slice(0, 3).map(b => /*#__PURE__*/_jsx(Badge, {
|
|
121
129
|
label: b.label,
|
|
122
|
-
color: b.color
|
|
130
|
+
color: b.color,
|
|
131
|
+
testID: assetBadgeTestID(record.name, record.type, b.label)
|
|
123
132
|
}, b.label))
|
|
124
133
|
}) : null]
|
|
125
134
|
})]
|