predix-ui
Version:
px-* web components as React styled components
71 lines (61 loc) • 1.96 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import styled, { css } from 'styled-components';
const SubItem = styled.div`
position: relative;
display: flex;
align-items: center;
padding-left: 1rem;
padding-right: 1rem;
cursor: pointer;
height: var(--px-app-nav-subitem-height, 2rem);
color: var(--px-app-nav-subitem-text-color, darkgray);
background-color: var(--px-app-nav-subitem-background-color, white);
&:hover {
color: var(--px-app-nav-subitem-text-color--hover, darkgray);
background-color: var(--px-app-nav-subitem-background-color--hover, lightgray);
}
${props => props.selected && css`
color: var(--px-app-nav-subitem-text-color--selected, white);
background-color: var(--px-app-nav-subitem-background-color--selected, blue);
&:hover {
color: var(--px-app-nav-subitem-text-color--selected, white);
background-color: var(--px-app-nav-subitem-background-color--selected, blue);
}
`}
${props => props.collapsed && css`
color: var(--px-app-nav-subitem-text-color--collapsed, darkgray);
background-color: var(--px-app-nav-subitem-background-color--collapsed, darkgray);
padding-left: 3.66667rem;
&:hover {
background-color: var(--px-app-nav-subitem-background-color--collapsed-hover, darkgray);
}
`}
`;
/* eslint-disable */
const AppNavSubItem = ({item, selected, collapsed, onClick}) => (
<SubItem
collapsed={collapsed}
selected={selected}
data-id={item.id}
onClick={onClick}>
<p className="app-nav-subitem__label">{item.label}</p>
</SubItem>
)
AppNavSubItem.defaultProps = {
item: null,
selected: null,
collapsed: null,
onClick: null
};
AppNavSubItem.propTypes = {
item: PropTypes.shape({
id: PropTypes.string,
label: PropTypes.string,
icon: PropTypes.string
}),
selected: PropTypes.bool,
collapsed: PropTypes.bool,
onClick: PropTypes.func
};
export default AppNavSubItem;