base
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import type { IconName } from "./registry";
|
||||
import { ICON_REGISTRY } from "./registry";
|
||||
|
||||
/**
|
||||
* Get the icon component by name
|
||||
* @param name - The icon name from the registry
|
||||
* @returns The icon component or default icon if not found
|
||||
*/
|
||||
export const getIconComponent = (name: IconName) => ICON_REGISTRY[name] || ICON_REGISTRY.default;
|
||||
|
||||
/**
|
||||
* Check if the icon name exists in the registry
|
||||
* @param name - The icon name to check
|
||||
* @returns True if the icon exists in the registry
|
||||
*/
|
||||
export const isValidIconName = (name: string): name is IconName => name in ICON_REGISTRY;
|
||||
|
||||
/**
|
||||
* Get all available icon names
|
||||
* @returns Array of all icon names in the registry
|
||||
*/
|
||||
export const getIconNames = (): IconName[] => Object.keys(ICON_REGISTRY) as IconName[];
|
||||
|
||||
/**
|
||||
* Get icons by category
|
||||
* @param category - The category prefix (e.g., 'workspace', 'project')
|
||||
* @returns Array of icon names matching the category
|
||||
*/
|
||||
export const getIconsByCategory = (category: string): IconName[] =>
|
||||
getIconNames().filter((name) => name.startsWith(`${category}.`));
|
||||
Reference in New Issue
Block a user