UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

45 lines (44 loc) 1.07 kB
"use client"; import useTheme from './useTheme'; export default function VisibilityByTheme({ children, visible, hidden }) { const theme = useTheme(); const visibleList = Array.isArray(visible) ? visible : [visible]; const hiddenList = Array.isArray(hidden) ? hidden : [hidden]; if (visible) { if (!visibleList.some(match(theme))) { return null; } } else if (hidden) { if (hiddenList.some(match(theme))) { return null; } } return children; function match(theme) { return themeItem => { return typeof themeItem === 'string' ? theme.name === themeItem : matchObject(theme, themeItem); }; } function matchObject(theme, themeItem) { return Object.keys(themeItem).every(key => { return theme[key] === themeItem[key]; }); } } VisibilityByTheme.Name = function ThemeName() { const theme = useTheme(); if (theme.isEiendom) { return 'Eiendom'; } if (theme.isSbanken) { return 'Sbanken'; } if (theme.isUi) { return 'DNB'; } }; //# sourceMappingURL=VisibilityByTheme.js.map