import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { HotKeysPreferences } from './HotKeysPreferences'; import { WindowLevelPreferences } from './WindowLevelPreferences'; import { GeneralPreferences } from './GeneralPreferences'; import './UserPreferences.styl'; export class UserPreferences extends Component { static defaultProps = { hotkeyDefinitions: [], windowLevelData: {}, generalData: {}, }; // TODO: Make this more generic. Tabs should not be restricted to these entries static propTypes = { hotkeyDefinitions: PropTypes.arrayOf( PropTypes.shape({ commandName: PropTypes.string, keys: PropTypes.arrayOf(PropTypes.string), label: PropTypes.string, }) ).isRequired, windowLevelData: PropTypes.object.isRequired, generalData: PropTypes.object.isRequired, }; state = { tabIndex: 0, }; tabClick(tabIndex) { this.setState({ tabIndex }); } renderHotkeysTab() { return (
); } renderWindowLevelTab() { if (this.props.windowLevelData) { return (
); } } renderGeneralTab() { return (
); } renderTabs(tabIndex) { switch (tabIndex) { case 0: return this.renderHotkeysTab(); /* case 1: return this.renderWindowLevelTab(); */ case 2: return this.renderGeneralTab(); default: break; } } getTabClass(tabIndex) { return tabIndex === this.state.tabIndex ? 'nav-link active' : 'nav-link'; } render() { return (
{this.renderTabs(this.state.tabIndex)}
); } }