Files
flipper/desktop/flipper-ui-core/src/utils/icons.tsx
Anton Kastritskiy fd774a2d52 remove density mentions
Summary: removing dead code

Reviewed By: lblasa

Differential Revision: D50495989

fbshipit-source-id: 769f853b50bf6ec48705dbcec03977ec6a5bffa3
2023-10-20 07:23:34 -07:00

57 lines
1.4 KiB
TypeScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {getRenderHostInstance} from 'flipper-frontend-core';
import {IconSize} from '../ui/components/Glyph';
const AVAILABLE_SIZES: IconSize[] = [8, 10, 12, 16, 18, 20, 24, 28, 32, 48];
export type Icon = {
name: string;
variant: 'outline' | 'filled';
size: IconSize;
};
function normalizeIcon(icon: Icon): Icon {
let requestedSize = icon.size as number;
if (!AVAILABLE_SIZES.includes(icon.size as any)) {
// find the next largest size
const possibleSize = AVAILABLE_SIZES.find((size) => {
return size > requestedSize;
});
// set to largest size if the real size is larger than what we have
if (possibleSize == null) {
requestedSize = Math.max(...AVAILABLE_SIZES);
} else {
requestedSize = possibleSize;
}
}
return {
...icon,
size: requestedSize as IconSize,
};
}
export function getPublicIconUrl({name, variant, size}: Icon) {
return `https://facebook.com/images/assets_DO_NOT_HARDCODE/facebook_icons/${name}_${variant}_${size}.png`;
}
export function getIconURL(icon: Icon) {
if (icon.name.indexOf('/') > -1) {
return icon.name;
}
icon = normalizeIcon(icon);
const baseUrl = getPublicIconUrl(icon);
return getRenderHostInstance().getLocalIconUrl?.(icon, baseUrl) ?? baseUrl;
}