houdini/javascripts/src/components/common/wizard/WizardPanel.tsx
2018-06-27 16:19:55 -05:00

37 lines
898 B
TypeScript

// License: LGPL-3.0-or-later
import * as React from 'react';
import { TabPanel } from "react-aria-tabpanel";
import { observer } from 'mobx-react'
import { WizardTabPanelState} from './wizard_state';
import {computed} from 'mobx';
import * as _ from 'lodash'
export interface WizardTabPanelProps {
tab: WizardTabPanelState
}
export interface WizardPanelProps extends WizardTabPanelProps {
[props:string]:any
}
@observer
export class WizardPanel extends React.Component<WizardPanelProps, {}> {
@computed
get tab():WizardTabPanelState{
return this.props.tab
}
@computed
get isActive(){
return this.tab.active
}
render() {
let props = _.omit(this.props, ['tab'])
return <TabPanel {...props} tabId={this.tab.id} active={this.isActive}
className="wizard-step">
{this.props.children}
</TabPanel>
}
}