@ui5/webcomponents-react
Version:
React Wrapper for UI5 Web Components and additional components
41 lines • 1.53 kB
JavaScript
import ValueState from '@ui5/webcomponents-base/dist/types/ValueState.js';
import iconAlert from '@ui5/webcomponents-icons/dist/alert.js';
import iconError from '@ui5/webcomponents-icons/dist/error.js';
import iconInformation from '@ui5/webcomponents-icons/dist/information.js';
import iconSysEnter from '@ui5/webcomponents-icons/dist/sys-enter-2.js';
import { isValidElement } from 'react';
import { ERROR, WARNING, SUCCESS, INFORMATION } from '../../i18n/i18n-defaults.js';
export const getIconNameForType = type => {
switch (type) {
case ValueState.Negative:
case 'Negative':
return iconError;
case ValueState.Positive:
case 'Positive':
return iconSysEnter;
case ValueState.Critical:
case 'Critical':
return iconAlert;
default:
return iconInformation;
}
};
export const getValueStateMap = i18nBundle => ({
[ValueState.Negative]: i18nBundle.getText(ERROR),
[ValueState.Critical]: i18nBundle.getText(WARNING),
[ValueState.Positive]: i18nBundle.getText(SUCCESS),
[ValueState.Information]: i18nBundle.getText(INFORMATION),
[ValueState.None]: i18nBundle.getText(INFORMATION)
});
export const resolveTitleTextStr = titleText => {
if (typeof titleText === 'string' || typeof titleText === 'number') {
return String(titleText);
}
if (/*#__PURE__*/isValidElement(titleText)) {
const linkChild = titleText.props.children;
if (typeof linkChild === 'string' || typeof linkChild === 'number') {
return String(linkChild);
}
}
return '';
};