mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
fix: content-min-height
* fix: add min height calculation based on footer and header height * fix: set flex-shrink to 0 * fix: lint * feat: add support for navigating to feature from reporting dash * fix: tests
This commit is contained in:
parent
72e2981cf5
commit
e1078ef822
@ -1,3 +1,8 @@
|
||||
|
||||
|
||||
html { height: 100%; overflow:auto; }
|
||||
body { height: 100%; }
|
||||
|
||||
:root {
|
||||
/* FONT SIZE */
|
||||
--h1-size: 1.25rem;
|
||||
|
@ -15,6 +15,10 @@ const dateOptions = {
|
||||
year: 'numeric',
|
||||
};
|
||||
|
||||
export const scrollToTop = () => {
|
||||
window.scrollTo(0, 0);
|
||||
};
|
||||
|
||||
export const formatFullDateTimeWithLocale = (v, locale, tz) => {
|
||||
if (tz) {
|
||||
dateTimeOptions.timeZone = tz;
|
||||
|
@ -17,6 +17,8 @@ import FeatureTagComponent from '../feature-tag-component';
|
||||
import StatusUpdateComponent from './status-update-component';
|
||||
import AddTagDialog from '../add-tag-dialog-container';
|
||||
|
||||
import { scrollToTop } from '../../common/util';
|
||||
|
||||
const TABS = {
|
||||
strategies: 0,
|
||||
view: 1,
|
||||
@ -31,6 +33,10 @@ export default class ViewFeatureToggleComponent extends React.Component {
|
||||
this.isFeatureView = !!props.fetchFeatureToggles;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
scrollToTop();
|
||||
}
|
||||
|
||||
static propTypes = {
|
||||
activeTab: PropTypes.string.isRequired,
|
||||
featureToggleName: PropTypes.string.isRequired,
|
||||
|
@ -1,5 +1,6 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classnames from 'classnames';
|
||||
import { Layout, Content, Footer, Grid, Cell } from 'react-mdl';
|
||||
|
||||
import styles from '../styles.module.scss';
|
||||
@ -17,8 +18,8 @@ export default class App extends PureComponent {
|
||||
return (
|
||||
<Layout fixedHeader>
|
||||
<Header location={this.props.location} />
|
||||
<Content className="mdl-color--grey-50">
|
||||
<Grid noSpacing className={styles.content} style={{ flex: 1 }}>
|
||||
<Content className={classnames('mdl-color--grey-50', styles.contentWrapper)}>
|
||||
<Grid noSpacing className={styles.content}>
|
||||
<Cell col={12}>
|
||||
{this.props.children}
|
||||
<ErrorContainer />
|
||||
|
@ -1,5 +1,7 @@
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import { HashRouter } from 'react-router-dom';
|
||||
|
||||
import { createStore } from 'redux';
|
||||
import { mount } from 'enzyme/build';
|
||||
|
||||
@ -22,9 +24,11 @@ jest.mock('react-mdl', () => ({
|
||||
|
||||
test('changing projects renders only toggles from that project', () => {
|
||||
const wrapper = mount(
|
||||
<Provider store={createStore(mockReducer, mockStore)}>
|
||||
<Reporting projects={testProjects} features={testFeatures} fetchFeatureToggles={() => {}} />
|
||||
</Provider>
|
||||
<HashRouter>
|
||||
<Provider store={createStore(mockReducer, mockStore)}>
|
||||
<Reporting projects={testProjects} features={testFeatures} fetchFeatureToggles={() => {}} />
|
||||
</Provider>
|
||||
</HashRouter>
|
||||
);
|
||||
|
||||
const select = wrapper.find('.mdl-textfield__input').first();
|
||||
|
@ -1,6 +1,7 @@
|
||||
import React from 'react';
|
||||
import classnames from 'classnames';
|
||||
import PropTypes from 'prop-types';
|
||||
import { useHistory } from 'react-router-dom';
|
||||
|
||||
import { Checkbox } from 'react-mdl';
|
||||
import CheckIcon from '@material-ui/icons/Check';
|
||||
@ -14,6 +15,7 @@ import styles from './reporting.module.scss';
|
||||
|
||||
const ReportToggleListItem = ({ name, stale, lastSeenAt, createdAt, type, checked, bulkActionsOn, setFeatures }) => {
|
||||
const nameMatches = feature => feature.name === name;
|
||||
const history = useHistory();
|
||||
|
||||
const handleChange = () => {
|
||||
setFeatures(prevState => {
|
||||
@ -91,12 +93,16 @@ const ReportToggleListItem = ({ name, stale, lastSeenAt, createdAt, type, checke
|
||||
return renderStatus(<CheckIcon className={styles.reportIcon} />, 'Active');
|
||||
};
|
||||
|
||||
const navigateToFeature = () => {
|
||||
history.push(`/features/strategies/${name}`);
|
||||
};
|
||||
|
||||
const statusClasses = classnames(styles.active, {
|
||||
[styles.stale]: stale,
|
||||
});
|
||||
|
||||
return (
|
||||
<tr>
|
||||
<tr role="button" tabIndex={0} onClick={navigateToFeature} className={styles.tableRow}>
|
||||
<ConditionallyRender
|
||||
condition={bulkActionsOn}
|
||||
show={
|
||||
|
@ -169,3 +169,7 @@
|
||||
font-size: 1.5rem;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.tableRow {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -9,12 +9,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
.contentWrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 1100px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 16px;
|
||||
flex: 1 0 0%;
|
||||
}
|
||||
|
||||
@media (max-width: 1260px) {
|
||||
|
@ -1,7 +1,6 @@
|
||||
import React, { PureComponent } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import ViewFeatureToggle from './../../component/archive/view-container';
|
||||
|
||||
export default class Features extends PureComponent {
|
||||
static propTypes = {
|
||||
match: PropTypes.object.isRequired,
|
||||
|
Loading…
Reference in New Issue
Block a user