Display user badges
This commit is contained in:
parent
927c22ef73
commit
f647c4e053
95 changed files with 2891 additions and 424 deletions
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;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue