2022-01-24 08:16:45 +00:00
|
|
|
import React, { useState } from "react";
|
|
|
|
import PropTypes from "prop-types";
|
2022-01-25 08:17:38 +00:00
|
|
|
import ComboBox from "../combobox/index.js";
|
|
|
|
import DropDownItem from "../drop-down-item/index.js";
|
|
|
|
import Badge from "../badge/index.js";
|
|
|
|
|
|
|
|
import {
|
|
|
|
StyledAccessRightWrapper,
|
|
|
|
StyledAccessRightIcon,
|
|
|
|
StyledAccessRightDescriptionItem,
|
|
|
|
StyledAccessRightItem,
|
|
|
|
StyledAccessRightItemIcon,
|
|
|
|
StyledAccessRightItemContent,
|
|
|
|
StyledAccessRightItemTitleAndBadge,
|
|
|
|
} from "./styled-accessright.js";
|
2022-01-24 08:16:45 +00:00
|
|
|
|
|
|
|
const AccessRightSelect = ({ accessRightsList, quotaList, ...props }) => {
|
|
|
|
const [currentItem, setCurrentItem] = useState(accessRightsList[6]);
|
|
|
|
|
|
|
|
const formatToAccessRightItem = (data) => {
|
2022-01-25 08:17:38 +00:00
|
|
|
return (
|
|
|
|
<>
|
|
|
|
{data.map((it) => {
|
|
|
|
const itQuota = quotaList.find(
|
|
|
|
(elem) => elem.accessRightKey == it.key
|
|
|
|
);
|
|
|
|
return it.isSeparator ? (
|
|
|
|
<DropDownItem isSeparator />
|
|
|
|
) : (
|
|
|
|
<DropDownItem key={it.key} onClick={() => setCurrentItem(it)}>
|
|
|
|
<StyledAccessRightItem>
|
|
|
|
<StyledAccessRightItemIcon src={it.icon} />
|
|
|
|
<StyledAccessRightItemContent>
|
|
|
|
<StyledAccessRightItemTitleAndBadge>
|
|
|
|
{it.title}
|
|
|
|
{itQuota && (
|
|
|
|
<Badge
|
|
|
|
label={itQuota.quota}
|
|
|
|
backgroundColor={itQuota.color}
|
|
|
|
fontSize="8px"
|
|
|
|
/>
|
|
|
|
)}
|
|
|
|
</StyledAccessRightItemTitleAndBadge>
|
|
|
|
<StyledAccessRightDescriptionItem>
|
|
|
|
{it.description}
|
|
|
|
</StyledAccessRightDescriptionItem>
|
|
|
|
</StyledAccessRightItemContent>
|
|
|
|
</StyledAccessRightItem>
|
|
|
|
</DropDownItem>
|
|
|
|
);
|
|
|
|
})}
|
|
|
|
</>
|
|
|
|
);
|
2022-01-24 08:16:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
2022-01-25 08:17:38 +00:00
|
|
|
<StyledAccessRightWrapper>
|
|
|
|
<StyledAccessRightIcon src={currentItem?.icon} />
|
|
|
|
<ComboBox
|
|
|
|
advancedOptions={formatToAccessRightItem(accessRightsList)}
|
|
|
|
directionX="left"
|
|
|
|
directionY="bottom"
|
|
|
|
opened
|
|
|
|
noBorder
|
|
|
|
options={[]}
|
|
|
|
scaled={false}
|
|
|
|
selectedOption={{
|
|
|
|
default: true,
|
|
|
|
key: 0,
|
|
|
|
label: currentItem?.title,
|
|
|
|
}}
|
|
|
|
size="content"
|
|
|
|
/>
|
|
|
|
</StyledAccessRightWrapper>
|
2022-01-24 08:16:45 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
AccessRightSelect.propTypes = {
|
|
|
|
/** List of rights */
|
|
|
|
accessRightsList: PropTypes.arrayOf(PropTypes.object),
|
|
|
|
/** List of quotas */
|
|
|
|
quotaList: PropTypes.arrayOf(PropTypes.object),
|
|
|
|
};
|
|
|
|
|
|
|
|
export default AccessRightSelect;
|