network-resurrector/frontend/src/components/common/NavigationButtons.js

46 lines
1.2 KiB
JavaScript
Raw Normal View History

2023-03-25 00:28:48 +02:00
import React, { useState } from "react";
import PropTypes from "prop-types";
import ToggleButton from "@material-ui/lab/ToggleButton";
import ToggleButtonGroup from "@material-ui/lab/ToggleButtonGroup";
import { Tooltip } from "@material-ui/core";
2023-03-25 01:16:11 +02:00
const NavigationButtons = ({ tabs, onTabChange }) => {
2023-03-25 00:28:48 +02:00
const [selected, setSelected] = useState(tabs[0].code);
const handleTabSelection = (_event, tabCode) => {
setSelected(tabCode);
onTabChange && onTabChange(tabCode);
};
return (
<ToggleButtonGroup
size="small"
value={selected}
exclusive
onChange={handleTabSelection}
>
{tabs.map(tab => (
<ToggleButton
key={tab.code}
value={tab.code}
2023-03-25 01:16:11 +02:00
aria-label="navigation buttons"
disabled={selected === tab.code}
2023-03-25 00:28:48 +02:00
>
<Tooltip title={tab.tooltip}>
2023-03-26 22:44:31 +03:00
<tab.icon color="primary" />
2023-03-25 00:28:48 +02:00
</Tooltip>
</ToggleButton>
))}
</ToggleButtonGroup>
);
};
2023-03-25 01:16:11 +02:00
NavigationButtons.propTypes = {
2023-03-25 00:28:48 +02:00
tabs: PropTypes.arrayOf(
PropTypes.shape({ code: PropTypes.string.isRequired })
).isRequired,
onTabChange: PropTypes.func
};
2023-03-25 01:16:11 +02:00
export default NavigationButtons;