mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-02 14:21:05 +01:00
Display user badges
This commit is contained in:
33
ts/badges/getBadgeImageFileLocalPath.ts
Normal file
33
ts/badges/getBadgeImageFileLocalPath.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
// Copyright 2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { first, last } from 'lodash';
|
||||
import type { BadgeType, BadgeImageType } from './types';
|
||||
import type { BadgeImageTheme } from './BadgeImageTheme';
|
||||
|
||||
export function getBadgeImageFileLocalPath(
|
||||
badge: Readonly<undefined | BadgeType>,
|
||||
size: number,
|
||||
theme: BadgeImageTheme
|
||||
): undefined | string {
|
||||
if (!badge) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const { images } = badge;
|
||||
|
||||
// We expect this to be defined for valid input, but defend against unexpected array
|
||||
// lengths.
|
||||
let idealImage: undefined | BadgeImageType;
|
||||
if (size < 24) {
|
||||
idealImage = first(images);
|
||||
} else if (size < 36) {
|
||||
idealImage = images[1] || first(images);
|
||||
} else if (size < 160) {
|
||||
idealImage = images[2] || first(images);
|
||||
} else {
|
||||
idealImage = last(images);
|
||||
}
|
||||
|
||||
return idealImage?.[theme]?.localPath;
|
||||
}
|
||||
Reference in New Issue
Block a user