mirror of
https://github.com/n8n-io/n8n.git
synced 2025-01-11 21:07:28 -08:00
fix(editor): Fix node icon in node creator header (#9782)
This commit is contained in:
parent
08c6e9b571
commit
b7d356f49c
|
@ -24,6 +24,8 @@ import CategorizedItemsRenderer from '../Renderers/CategorizedItemsRenderer.vue'
|
|||
import NoResults from '../Panel/NoResults.vue';
|
||||
import { useI18n } from '@/composables/useI18n';
|
||||
import { useTelemetry } from '@/composables/useTelemetry';
|
||||
import { getNodeIcon, getNodeIconColor, getNodeIconUrl } from '@/utils/nodeTypesUtils';
|
||||
import { useUIStore } from '@/stores/ui.store';
|
||||
|
||||
export interface Props {
|
||||
rootView: 'trigger' | 'action';
|
||||
|
@ -35,6 +37,8 @@ const emit = defineEmits({
|
|||
|
||||
const i18n = useI18n();
|
||||
const telemetry = useTelemetry();
|
||||
const uiStore = useUIStore();
|
||||
const rootStore = useRootStore();
|
||||
|
||||
const { mergedNodes, actions } = useNodeCreatorStore();
|
||||
const { baseUrl } = useRootStore();
|
||||
|
@ -86,11 +90,10 @@ function onSelected(item: INodeCreateElement) {
|
|||
return;
|
||||
}
|
||||
|
||||
const icon = item.properties.iconUrl
|
||||
? `${baseUrl}${item.properties.iconUrl}`
|
||||
: typeof item.properties.icon === 'string'
|
||||
? item.properties.icon?.split(':')[1]
|
||||
: undefined;
|
||||
const iconUrl = getNodeIconUrl(item.properties, uiStore.appliedTheme);
|
||||
const icon = iconUrl
|
||||
? rootStore.baseUrl + iconUrl
|
||||
: getNodeIcon(item.properties, uiStore.appliedTheme)?.split(':')[1];
|
||||
|
||||
const transformedActions = nodeActions?.map((a) =>
|
||||
transformNodeType(a, item.properties.displayName, 'action'),
|
||||
|
@ -100,9 +103,9 @@ function onSelected(item: INodeCreateElement) {
|
|||
subcategory: item.properties.displayName,
|
||||
title: item.properties.displayName,
|
||||
nodeIcon: {
|
||||
color: item.properties.defaults?.color?.toString(),
|
||||
color: getNodeIconColor(item.properties),
|
||||
icon,
|
||||
iconType: item.properties.iconUrl ? 'file' : 'icon',
|
||||
iconType: iconUrl ? 'file' : 'icon',
|
||||
},
|
||||
|
||||
rootView: activeViewStack.value.rootView,
|
||||
|
|
|
@ -19,7 +19,12 @@
|
|||
import type { IVersionNode, SimplifiedNodeType } from '@/Interface';
|
||||
import { useRootStore } from '@/stores/n8nRoot.store';
|
||||
import { useUIStore } from '@/stores/ui.store';
|
||||
import { getBadgeIconUrl, getNodeIcon, getNodeIconUrl } from '@/utils/nodeTypesUtils';
|
||||
import {
|
||||
getBadgeIconUrl,
|
||||
getNodeIcon,
|
||||
getNodeIconColor,
|
||||
getNodeIconUrl,
|
||||
} from '@/utils/nodeTypesUtils';
|
||||
import type { INodeTypeDescription } from 'n8n-workflow';
|
||||
import { computed } from 'vue';
|
||||
|
||||
|
@ -75,14 +80,7 @@ const iconType = computed(() => {
|
|||
return 'unknown';
|
||||
});
|
||||
|
||||
const color = computed(() => {
|
||||
const nodeType = props.nodeType;
|
||||
|
||||
if (nodeType && 'iconColor' in nodeType && nodeType.iconColor) {
|
||||
return `var(--color-node-icon-${nodeType.iconColor})`;
|
||||
}
|
||||
return nodeType?.defaults?.color?.toString() ?? props.colorDefault ?? '';
|
||||
});
|
||||
const color = computed(() => getNodeIconColor(props.nodeType) ?? props.colorDefault ?? '');
|
||||
|
||||
const iconSource = computed<NodeIconSource>(() => {
|
||||
const nodeType = props.nodeType;
|
||||
|
|
|
@ -471,3 +471,12 @@ export const getBadgeIconUrl = (
|
|||
): string | null => {
|
||||
return getThemedValue(nodeType.badgeIconUrl, theme);
|
||||
};
|
||||
|
||||
export const getNodeIconColor = (
|
||||
nodeType?: INodeTypeDescription | SimplifiedNodeType | IVersionNode | null,
|
||||
) => {
|
||||
if (nodeType && 'iconColor' in nodeType && nodeType.iconColor) {
|
||||
return `var(--color-node-icon-${nodeType.iconColor})`;
|
||||
}
|
||||
return nodeType?.defaults?.color?.toString();
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue