summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/common/search/metadata-ribbon/developer-metadata-ribbon-item.js
blob: 3a451a2cc80505314cbf3850c80ebeb0ac595a48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { isNothing, isSome } from "@jet/environment";
import * as models from "../../../api/models";
import { attributeAsString } from "../../../foundation/media/attributes";
import * as contentArtwork from "../../content/artwork/artwork";
import * as metricsHelpersImpressions from "../../metrics/helpers/impressions";
export function createMetadataRibbonItems(objectGraph, data, lockup, dedupeSet, metricsOptions) {
    var _a;
    let developerName = lockup.developerName;
    if (isNothing(developerName)) {
        developerName = (_a = attributeAsString(data, "artistName")) !== null && _a !== void 0 ? _a : attributeAsString(data, "developerName");
    }
    if (developerName != null) {
        if (dedupeSet.has(developerName)) {
            return null;
        }
        else {
            dedupeSet.add(developerName);
        }
    }
    if (isSome(developerName) && developerName.length > 0) {
        const developerItem = new models.MetadataRibbonItem("imageWithLabel");
        developerItem.moduleType = "developerInfo";
        developerItem.labelText = developerName;
        developerItem.artwork = contentArtwork.createArtworkForResource(objectGraph, "systemimage://person.crop.square");
        const characterCountThreshold = 6;
        developerItem.maxCharacterCount = 16;
        developerItem.truncationLegibilityCharacterCountThreshold = Math.min(characterCountThreshold, developerName.length);
        developerItem.allowsTruncation = developerName.length >= characterCountThreshold;
        const impressionOptions = metricsHelpersImpressions.impressionOptionsForMetadataRibbonItem(metricsOptions, "developerInfo", developerItem.labelText, "static");
        metricsHelpersImpressions.addImpressionFieldsToSearchMetadataRibbonItem(objectGraph, developerItem, impressionOptions);
        return [developerItem];
    }
    else {
        return null;
    }
}
//# sourceMappingURL=developer-metadata-ribbon-item.js.map