"react/no-unknown-property": 2,
"react/react-in-jsx-scope": 2,
"react/require-render-return": 2,
- "react/self-closing-comp": 2
+ "react/self-closing-comp": 2,
+ "react/sort-comp": [2, {
+ "order": [
+ "type-annotations",
+ "static-methods",
+ "lifecycle",
+ "everything-else",
+ "rendering"
+ ],
+ "groups": {
+ "rendering": [
+ "/^render.+$/",
+ "render"
+ ]
+ }
+ }]
},
"settings": {
loading: true
};
- finishLoading = () => {
- if (this.mounted) {
- this.setState({ loading: false });
- }
- };
-
componentDidMount() {
this.mounted = true;
this.mounted = false;
}
+ finishLoading = () => {
+ if (this.mounted) {
+ this.setState({ loading: false });
+ }
+ };
+
render() {
if (this.state.loading) {
return <GlobalLoading />;
loading: true
};
- finishLoading = () => {
- if (this.mounted) {
- this.setState({ loading: false });
- }
- };
-
componentDidMount() {
this.mounted = true;
requestMessages().then(this.finishLoading, this.finishLoading);
this.mounted = false;
}
+ finishLoading = () => {
+ if (this.mounted) {
+ this.setState({ loading: false });
+ }
+ };
+
render() {
return this.state.loading ? null : this.props.children;
}
this.setState({ open: false });
};
- renderSearchView = () => {
- const searchContainer = this.refs.container;
- this.searchView = new SearchView({
- model: new Backbone.Model(this.props),
- hide: this.closeSearch
- });
- this.searchView.render().$el.appendTo(searchContainer);
- };
-
resetSearchView = () => {
if (this.searchView) {
this.searchView.destroy();
}
};
+ renderSearchView = () => {
+ const searchContainer = this.refs.container;
+ this.searchView = new SearchView({
+ model: new Backbone.Model(this.props),
+ hide: this.closeSearch
+ });
+ this.searchView.render().$el.appendTo(searchContainer);
+ };
+
render() {
const dropdownClassName = 'dropdown' + (this.state.open ? ' open' : '');
return (
this.destroyView();
}
+ destroyView() {
+ if (this.destroyView) {
+ this.tokensView.destroy();
+ }
+ }
+
renderView() {
const account = new Backbone.Model({
id: this.props.user.login
}).render();
}
- destroyView() {
- if (this.destroyView) {
- this.tokensView.destroy();
- }
- }
-
render() {
return <div ref="container" />;
}
}
}
- renderOption = option => {
- return (
- <span>
- <Organization organizationKey={option.organization} link={false} />
- <strong>{option.label}</strong>
- </span>
- );
- };
loadOptions = (query, cb) => {
if (query.length < 2) {
cb(null, { options: [] });
});
};
+ renderOption = option => {
+ return (
+ <span>
+ <Organization organizationKey={option.organization} link={false} />
+ <strong>{option.label}</strong>
+ </span>
+ );
+ };
+
render() {
const allProjects = [...this.props.projects, ...this.state.addedProjects];
class CreateOrganizationForm extends React.Component {
mounted: boolean;
-
+ state: State;
props: {
createOrganization: () => Promise<*>,
router: { push: (string) => void }
};
- state: State = {
- loading: false,
- avatar: '',
- avatarImage: '',
- description: '',
- key: '',
- name: '',
- url: ''
- };
-
constructor(props) {
super(props);
+ this.state = {
+ loading: false,
+ avatar: '',
+ avatarImage: '',
+ description: '',
+ key: '',
+ name: '',
+ url: ''
+ };
this.changeAvatarImage = debounce(this.changeAvatarImage, 500);
}
return sortBy(options, option => QUALIFIERS_ORDER.indexOf(option.value));
},
+ onCheck(checked) {
+ if (checked) {
+ this.props.onAllSelected();
+ } else {
+ this.props.onAllDeselected();
+ }
+ },
+
+ deleteProjects() {
+ new DeleteView({
+ deleteProjects: this.props.deleteProjects
+ }).render();
+ },
+
renderCheckbox() {
const isAllChecked = this.props.projects.length > 0 &&
this.props.selection.length === this.props.projects.length;
return <Checkbox checked={checked} thirdState={thirdState} onCheck={this.onCheck} />;
},
- renderSpinner() {
- return <i className="spinner" />;
- },
-
- onCheck(checked) {
- if (checked) {
- this.props.onAllSelected();
- } else {
- this.props.onAllDeselected();
- }
- },
-
renderGhostsDescription() {
if (this.props.type !== TYPE.GHOSTS || !this.props.ready) {
return null;
);
},
- deleteProjects() {
- new DeleteView({
- deleteProjects: this.props.deleteProjects
- }).render();
- },
-
renderQualifierFilter() {
const options = this.getQualifierOptions();
if (options.length < 2) {
);
},
+ renderSpinner() {
+ return <i className="spinner" />;
+ },
+
render() {
const isSomethingSelected = this.props.projects.length > 0 && this.props.selection.length > 0;
return (
class ProjectTagsSelectorContainer extends React.PureComponent {
props: Props;
- state: State = {
- searchResult: []
- };
+ state: State;
constructor(props: Props) {
super(props);
+ this.state = { searchResult: [] };
this.onSearch = debounce(this.onSearch, 250);
}
property = 'coverage';
+ getFacetValueForOption(facet, option) {
+ const map = ['80.0-*', '70.0-80.0', '50.0-70.0', '30.0-50.0', '*-30.0'];
+ return facet[map[option - 1]];
+ }
+
renderOption(option, selected) {
return (
<span>
);
}
- getFacetValueForOption(facet, option) {
- const map = ['80.0-*', '70.0-80.0', '50.0-70.0', '30.0-50.0', '*-30.0'];
- return facet[map[option - 1]];
- }
-
render() {
return (
<FilterContainer
property = 'duplications';
+ getFacetValueForOption(facet, option) {
+ const map = ['*-3.0', '3.0-5.0', '5.0-10.0', '10.0-20.0', '20.0-*'];
+ return facet[map[option - 1]];
+ }
+
renderOption(option, selected) {
return (
<span>
);
}
- getFacetValueForOption(facet, option) {
- const map = ['*-3.0', '3.0-5.0', '5.0-10.0', '10.0-20.0', '20.0-*'];
- return facet[map[option - 1]];
- }
-
render() {
return (
<FilterContainer
organization: React.PropTypes.object
};
+ getFacetValueForOption(facet, option) {
+ return facet[option];
+ }
+
renderOption(option, selected) {
return (
<span>
);
}
- getFacetValueForOption(facet, option) {
- return facet[option];
- }
-
render() {
return (
<FilterContainer
props: Props;
property = 'languages';
- renderOption = (option: string) => (
- <SearchableFilterOption
- optionKey={option}
- option={getLanguageByKey(this.props.languages, option)}
- />
- );
-
getSearchOptions(facet: {}, languages: {}) {
let languageKeys = Object.keys(languages);
if (facet) {
getFacetValueForOption = (facet: {} = {}, option: string) => facet[option];
+ renderOption = (option: string) => (
+ <SearchableFilterOption
+ optionKey={option}
+ option={getLanguageByKey(this.props.languages, option)}
+ />
+ );
+
render() {
return (
<Filter
organization: React.PropTypes.object
};
- renderOption(option, selected) {
- return <Level level={option} small={true} muted={!selected} />;
- }
-
getFacetValueForOption(facet, option) {
return facet[option];
}
+ renderOption(option, selected) {
+ return <Level level={option} small={true} muted={!selected} />;
+ }
+
render() {
return (
<FilterContainer
property = 'size';
+ getFacetValueForOption(facet, option) {
+ const map = [
+ '*-1000.0',
+ '1000.0-10000.0',
+ '10000.0-100000.0',
+ '100000.0-500000.0',
+ '500000.0-*'
+ ];
+ return facet[map[option - 1]];
+ }
+
renderOption(option, selected) {
return (
<span>
);
};
- getFacetValueForOption(facet, option) {
- const map = [
- '*-1000.0',
- '1000.0-10000.0',
- '10000.0-100000.0',
- '100000.0-500000.0',
- '500000.0-*'
- ];
- return facet[map[option - 1]];
- }
-
render() {
return (
<FilterContainer
export default class TagsFilter extends React.PureComponent {
getSearchOptions: () => [{ label: string, value: string }];
props: Props;
- state: State = {
- isLoading: false,
- search: '',
- tags: []
- };
- property = 'tags';
+ state: State;
+ property: string;
constructor(props: Props) {
super(props);
+ this.state = {
+ isLoading: false,
+ search: '',
+ tags: []
+ };
+ this.property = 'tags';
this.handleSearch = debounce(this.handleSearch.bind(this), 250);
}
- renderOption = (option: string) => <SearchableFilterOption optionKey={option} />;
-
getSearchOptions(facet: {}, tags: Array<string>) {
let tagsCopy = [...tags];
if (facet) {
getFacetValueForOption = (facet: {}, option: string) => facet[option];
+ renderOption = (option: string) => <SearchableFilterOption optionKey={option} />;
+
render() {
return (
<Filter
this.destroyView();
}
+ destroyView() {
+ if (this.projectsView) {
+ this.projectsView.destroy();
+ }
+ }
+
renderView() {
const { qualityGate, edit } = this.props;
this.projectsView.render();
}
- destroyView() {
- if (this.projectsView) {
- this.projectsView.destroy();
- }
- }
-
render() {
return <div ref="container" />;
}
);
}
+ getTooltipForType(type) {
+ const { count } = this.state.activatedByType[type];
+ const total = this.state.allByType[type].count;
+ return this.getTooltip(count, total);
+ }
+
renderActiveTitle() {
return (
<strong>
);
}
- getTooltipForType(type) {
- const { count } = this.state.activatedByType[type];
- const total = this.state.allByType[type].count;
- return this.getTooltip(count, total);
- }
-
renderTitleForType(type) {
return (
<span>
export default class UsersSearch extends React.PureComponent {
props: Props;
- state: State = {
- query: ''
- };
+ state: State;
constructor(props: Props) {
super(props);
+ this.state = {
+ query: ''
+ };
this.handleSearch = debounce(this.handleSearch, 250);
}
export default class SourceViewerIssueLocations extends React.Component {
fixedNode: HTMLElement;
- locations: { [string]: HTMLElement } = {};
+ locations: { [string]: HTMLElement };
node: HTMLElement;
props: Props;
rootNode: HTMLElement;
constructor(props: Props) {
super(props);
this.state = { fixed: true, locationBlink: false };
+ this.locations = {};
this.handleScroll = throttle(this.handleScroll, 50);
}
container: HTMLElement;
searchInput: HTMLInputElement;
props: Props;
- state: State = {
- query: '',
- selectedElements: [],
- unselectedElements: [],
- activeIdx: 0
- };
+ state: State;
static defaultProps = {
listSize: 10,
validateSearchInput: (value: string) => value
};
+ constructor(props: Props) {
+ super(props);
+ this.state = {
+ query: '',
+ selectedElements: [],
+ unselectedElements: [],
+ activeIdx: 0
+ };
+ }
+
componentDidMount() {
this.updateSelectedElements(this.props);
this.updateUnselectedElements(this.props);
}
};
+ destroyIssueView() {
+ this.issueView.destroy();
+ }
+
renderIssueView() {
const model = this.props.issue.toJSON ? this.props.issue : new IssueModel(this.props.issue);
this.issueView = new IssueView({
}
}
- destroyIssueView() {
- this.issueView.destroy();
- }
-
render() {
return <div className="issue-container" ref={node => this.node = node} />;
}