mirror of
https://github.com/apache/superset.git
synced 2026-04-24 18:44:53 +00:00
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { Panel, Row, Col, Tabs, Tab, FormControl } from 'react-bootstrap';
|
|
import RecentActivity from '../profile/components/RecentActivity';
|
|
import Favorites from '../profile/components/Favorites';
|
|
import DashboardTable from './DashboardTable';
|
|
import { t } from '../locales';
|
|
|
|
const propTypes = {
|
|
user: PropTypes.object.isRequired,
|
|
};
|
|
|
|
export default class App extends React.PureComponent {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
search: '',
|
|
};
|
|
this.onSearchChange = this.onSearchChange.bind(this);
|
|
}
|
|
onSearchChange(event) {
|
|
this.setState({ search: event.target.value });
|
|
}
|
|
render() {
|
|
return (
|
|
<div className="container welcome">
|
|
<Tabs defaultActiveKey={1} id="uncontrolled-tab-example">
|
|
<Tab eventKey={1} title={t('Dashboards')}>
|
|
<Panel>
|
|
<Row>
|
|
<Col md={8}><h2>{t('Dashboards')}</h2></Col>
|
|
<Col md={4}>
|
|
<FormControl
|
|
type="text"
|
|
bsSize="sm"
|
|
style={{ marginTop: '25px' }}
|
|
placeholder="Search"
|
|
value={this.state.search}
|
|
onChange={this.onSearchChange}
|
|
/>
|
|
</Col>
|
|
</Row>
|
|
<hr />
|
|
<DashboardTable search={this.state.search} />
|
|
</Panel>
|
|
</Tab>
|
|
<Tab eventKey={2} title={t('Recently Viewed')}>
|
|
<Panel>
|
|
<Row>
|
|
<Col md={8}><h2>{t('Recently Viewed')}</h2></Col>
|
|
</Row>
|
|
<hr />
|
|
<RecentActivity user={this.props.user} />
|
|
</Panel>
|
|
</Tab>
|
|
<Tab eventKey={3} title={t('Favorites')}>
|
|
<Panel>
|
|
<Row>
|
|
<Col md={8}><h2>{t('Favorites')}</h2></Col>
|
|
</Row>
|
|
<hr />
|
|
<Favorites user={this.props.user} />
|
|
</Panel>
|
|
</Tab>
|
|
</Tabs>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
App.propTypes = propTypes;
|