import React from "react";
import PropTypes from "prop-types";
import { ReactSVG } from "react-svg";
import { StyledViewSelector, IconWrapper } from "./styled-view-selector";
const ViewSelector = ({
isDisabled,
viewSettings,
viewAs,
onChangeView,
...rest
}) => {
const onChangeViewHandler = (e) => {
if (isDisabled) return;
const el = e.target.closest(".view-selector-icon");
const view = el.dataset.view;
if (view !== viewAs) {
const option = viewSettings.find((setting) => view === setting.value);
option.callback && option.callback();
onChangeView(view);
}
};
const lastIndx = viewSettings && viewSettings.length - 1;
const loadingSVG = () => ;
return (
{viewSettings &&
viewSettings.map((el, indx) => {
const { value, icon } = el;
return (
);
})}
);
};
ViewSelector.propTypes = {
/* Disables the button default functionality */
isDisabled: PropTypes.bool,
/* The event triggered when the button is clicked */
onChangeView: PropTypes.func,
/* Object containing view settings */
viewSettings: PropTypes.arrayOf(PropTypes.object).isRequired,
/* Current application view */
viewAs: PropTypes.string.isRequired,
};
export default ViewSelector;