Browse Source

update typescript to 2.7 (#3054)

tags/7.5
Stas Vilchik 6 years ago
parent
commit
c4bd5d2945
No account linked to committer's email address
100 changed files with 152 additions and 134 deletions
  1. 1
    0
      server/sonar-web/.eslintrc
  2. 3
    3
      server/sonar-web/package.json
  3. 1
    1
      server/sonar-web/src/main/js/app/components/App.tsx
  4. 1
    1
      server/sonar-web/src/main/js/app/components/ComponentContainer.tsx
  5. 1
    1
      server/sonar-web/src/main/js/app/components/LocalizationContainer.tsx
  6. 1
    1
      server/sonar-web/src/main/js/app/components/SimpleContainer.tsx
  7. 1
    1
      server/sonar-web/src/main/js/app/components/nav/component/ComponentNav.tsx
  8. 1
    1
      server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBranch.tsx
  9. 1
    1
      server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBranchesMenu.tsx
  10. 1
    1
      server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx
  11. 1
    1
      server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.tsx
  12. 1
    1
      server/sonar-web/src/main/js/apps/account/projects/ProjectsContainer.tsx
  13. 1
    1
      server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx
  14. 1
    1
      server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx
  15. 1
    1
      server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx
  16. 1
    1
      server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx
  17. 1
    1
      server/sonar-web/src/main/js/apps/code/components/App.tsx
  18. 10
    8
      server/sonar-web/src/main/js/apps/code/components/Component.tsx
  19. 1
    1
      server/sonar-web/src/main/js/apps/code/components/Search.tsx
  20. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx
  21. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx
  22. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx
  23. 13
    5
      server/sonar-web/src/main/js/apps/coding-rules/components/BulkChange.tsx
  24. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/BulkChangeModal.tsx
  25. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx
  26. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx
  27. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx
  28. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx
  29. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx
  30. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx
  31. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx
  32. 1
    1
      server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx
  33. 13
    5
      server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx
  34. 1
    1
      server/sonar-web/src/main/js/apps/custom-measures/components/App.tsx
  35. 1
    1
      server/sonar-web/src/main/js/apps/custom-measures/components/CreateButton.tsx
  36. 1
    1
      server/sonar-web/src/main/js/apps/custom-measures/components/EditButton.tsx
  37. 1
    1
      server/sonar-web/src/main/js/apps/custom-measures/components/Form.tsx
  38. 1
    1
      server/sonar-web/src/main/js/apps/custom-metrics/components/App.tsx
  39. 1
    1
      server/sonar-web/src/main/js/apps/custom-metrics/components/CreateButton.tsx
  40. 1
    1
      server/sonar-web/src/main/js/apps/custom-metrics/components/EditButton.tsx
  41. 1
    1
      server/sonar-web/src/main/js/apps/groups/components/App.tsx
  42. 1
    1
      server/sonar-web/src/main/js/apps/groups/components/EditGroup.tsx
  43. 1
    1
      server/sonar-web/src/main/js/apps/groups/components/EditMembers.tsx
  44. 1
    1
      server/sonar-web/src/main/js/apps/groups/components/Header.tsx
  45. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js
  46. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js
  47. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js
  48. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js
  49. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js
  50. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js
  51. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js
  52. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js
  53. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/ResolutionFacet.js
  54. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js
  55. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/SeverityFacet.js
  56. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js
  57. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js
  58. 2
    2
      server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js
  59. 1
    1
      server/sonar-web/src/main/js/apps/marketplace/App.tsx
  60. 1
    1
      server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx
  61. 1
    1
      server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionSet.tsx
  62. 1
    1
      server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx
  63. 1
    1
      server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx
  64. 1
    1
      server/sonar-web/src/main/js/apps/overview/badges/BadgeParams.tsx
  65. 1
    1
      server/sonar-web/src/main/js/apps/overview/components/OverviewApp.tsx
  66. 1
    1
      server/sonar-web/src/main/js/apps/overview/events/AnalysesList.tsx
  67. 1
    1
      server/sonar-web/src/main/js/apps/overview/meta/MetaLinks.tsx
  68. 1
    1
      server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx
  69. 3
    3
      server/sonar-web/src/main/js/apps/overview/meta/MetaTags.tsx
  70. 1
    1
      server/sonar-web/src/main/js/apps/overview/qualityGate/ApplicationQualityGate.tsx
  71. 1
    1
      server/sonar-web/src/main/js/apps/portfolio/components/Activity.tsx
  72. 1
    1
      server/sonar-web/src/main/js/apps/portfolio/components/App.tsx
  73. 1
    1
      server/sonar-web/src/main/js/apps/portfolio/components/Report.tsx
  74. 1
    1
      server/sonar-web/src/main/js/apps/portfolio/components/Subscription.tsx
  75. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/App.tsx
  76. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/BranchRow.tsx
  77. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx
  78. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx
  79. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPattern.tsx
  80. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx
  81. 1
    1
      server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx
  82. 2
    2
      server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/App-test.tsx
  83. 1
    1
      server/sonar-web/src/main/js/apps/projectQualityGate/App.tsx
  84. 1
    1
      server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx
  85. 1
    1
      server/sonar-web/src/main/js/apps/projectQualityProfiles/App.tsx
  86. 1
    1
      server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx
  87. 1
    1
      server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx
  88. 1
    1
      server/sonar-web/src/main/js/apps/projects/filters/TagsFilter.tsx
  89. 1
    1
      server/sonar-web/src/main/js/apps/projectsManagement/App.tsx
  90. 1
    1
      server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx
  91. 2
    2
      server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx
  92. 1
    1
      server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx
  93. 1
    1
      server/sonar-web/src/main/js/apps/projectsManagement/ProjectRowActions.tsx
  94. 1
    1
      server/sonar-web/src/main/js/apps/projectsManagement/RestoreAccessModal.tsx
  95. 1
    2
      server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx
  96. 1
    1
      server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx
  97. 1
    1
      server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx
  98. 1
    1
      server/sonar-web/src/main/js/apps/quality-gates/components/DeleteConditionForm.tsx
  99. 1
    1
      server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx
  100. 0
    0
      server/sonar-web/src/main/js/apps/quality-gates/components/RenameQualityGateForm.tsx

+ 1
- 0
server/sonar-web/.eslintrc View File

{ {
"order": [ "order": [
"type-annotations", "type-annotations",
"instance-variables",
"static-methods", "static-methods",
"lifecycle", "lifecycle",
"everything-else", "everything-else",

+ 3
- 3
server/sonar-web/package.json View File

"@types/jest": "22.0.1", "@types/jest": "22.0.1",
"@types/jquery": "3.2.11", "@types/jquery": "3.2.11",
"@types/keymaster": "1.6.28", "@types/keymaster": "1.6.28",
"@types/lodash": "4.14.80",
"@types/lodash": "4.14.102",
"@types/prop-types": "15.5.2", "@types/prop-types": "15.5.2",
"@types/react": "16.0.29", "@types/react": "16.0.29",
"@types/react-dom": "16.0.3", "@types/react-dom": "16.0.3",
"rimraf": "2.6.2", "rimraf": "2.6.2",
"style-loader": "0.19.0", "style-loader": "0.19.0",
"ts-jest": "22.0.1", "ts-jest": "22.0.1",
"typescript": "2.6.2",
"typescript-eslint-parser": "12.0.0",
"typescript": "2.7.1",
"typescript-eslint-parser": "13.0.0",
"webpack": "3.8.1", "webpack": "3.8.1",
"webpack-bundle-analyzer": "2.9.0", "webpack-bundle-analyzer": "2.9.0",
"webpack-dev-server": "2.9.3" "webpack-dev-server": "2.9.3"

+ 1
- 1
server/sonar-web/src/main/js/app/components/App.tsx View File

} }


class App extends React.PureComponent<Props, State> { class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static childContextTypes = { static childContextTypes = {
branchesEnabled: PropTypes.bool.isRequired, branchesEnabled: PropTypes.bool.isRequired,

+ 1
- 1
server/sonar-web/src/main/js/app/components/ComponentContainer.tsx View File

} }


export class ComponentContainer extends React.PureComponent<Props, State> { export class ComponentContainer extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
organizationsEnabled: PropTypes.bool organizationsEnabled: PropTypes.bool

+ 1
- 1
server/sonar-web/src/main/js/app/components/LocalizationContainer.tsx View File

} }


export default class LocalizationContainer extends React.PureComponent<Props, State> { export default class LocalizationContainer extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


state: State = { loading: true }; state: State = { loading: true };



+ 1
- 1
server/sonar-web/src/main/js/app/components/SimpleContainer.tsx View File

} }


export default class SimpleContainer extends React.PureComponent<Props, State> { export default class SimpleContainer extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static childContextTypes = { static childContextTypes = {
onSonarCloud: PropTypes.bool onSonarCloud: PropTypes.bool

+ 1
- 1
server/sonar-web/src/main/js/app/components/nav/component/ComponentNav.tsx View File

} }


export default class ComponentNav extends React.PureComponent<Props> { export default class ComponentNav extends React.PureComponent<Props> {
mounted: boolean;
mounted = false;


componentDidMount() { componentDidMount() {
this.populateRecentHistory(); this.populateRecentHistory();

+ 1
- 1
server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBranch.tsx View File

} }


export default class ComponentNavBranch extends React.PureComponent<Props, State> { export default class ComponentNavBranch extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
branchesEnabled: PropTypes.bool.isRequired, branchesEnabled: PropTypes.bool.isRequired,

+ 1
- 1
server/sonar-web/src/main/js/app/components/nav/component/ComponentNavBranchesMenu.tsx View File

} }


export default class ComponentNavBranchesMenu extends React.PureComponent<Props, State> { export default class ComponentNavBranchesMenu extends React.PureComponent<Props, State> {
private node: HTMLElement | null;
private node?: HTMLElement | null;


static contextTypes = { static contextTypes = {
router: PropTypes.object router: PropTypes.object

+ 1
- 1
server/sonar-web/src/main/js/apps/account/organizations/CreateOrganizationForm.tsx View File

} }


class CreateOrganizationForm extends React.PureComponent<Props, State> { class CreateOrganizationForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object router: PropTypes.object

+ 1
- 1
server/sonar-web/src/main/js/apps/account/organizations/UserOrganizations.tsx View File

} }


class UserOrganizations extends React.PureComponent<Props, State> { class UserOrganizations extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { createOrganization: false, loading: true }; state: State = { createOrganization: false, loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/account/projects/ProjectsContainer.tsx View File

} }


export default class ProjectsContainer extends React.PureComponent<{}, State> { export default class ProjectsContainer extends React.PureComponent<{}, State> {
mounted: boolean;
mounted = false;
state: State = { state: State = {
loading: true, loading: true,
page: 1, page: 1,

+ 1
- 1
server/sonar-web/src/main/js/apps/background-tasks/components/ScannerContext.tsx View File

} }


export default class ScannerContext extends React.PureComponent<Props, State> { export default class ScannerContext extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = {}; state: State = {};


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/background-tasks/components/Stacktrace.tsx View File

} }


export default class Stacktrace extends React.PureComponent<Props, State> { export default class Stacktrace extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/background-tasks/components/Workers.tsx View File

} }


export default class Workers extends React.PureComponent<{}, State> { export default class Workers extends React.PureComponent<{}, State> {
mounted: boolean;
mounted = false;
state: State = { state: State = {
canSetWorkerCount: false, canSetWorkerCount: false,
formOpen: false, formOpen: false,

+ 1
- 1
server/sonar-web/src/main/js/apps/background-tasks/components/WorkersForm.tsx View File

} }


export default class WorkersForm extends React.PureComponent<Props, State> { export default class WorkersForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/code/components/App.tsx View File

} }


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { state: State = {
loading: true, loading: true,
breadcrumbs: [], breadcrumbs: [],

+ 10
- 8
server/sonar-web/src/main/js/apps/code/components/Component.tsx View File

} }


export default class Component extends React.PureComponent<Props> { export default class Component extends React.PureComponent<Props> {
node: HTMLElement;
node?: HTMLElement | null;


componentDidMount() { componentDidMount() {
this.handleUpdate(); this.handleUpdate();
} }


handleScroll() { handleScroll() {
const position = this.node.getBoundingClientRect();
const { top, bottom } = position;
if (bottom > window.innerHeight - BOTTOM_OFFSET) {
window.scrollTo(0, bottom - window.innerHeight + window.pageYOffset + BOTTOM_OFFSET);
} else if (top < TOP_OFFSET) {
window.scrollTo(0, top + window.pageYOffset - TOP_OFFSET);
if (this.node) {
const position = this.node.getBoundingClientRect();
const { top, bottom } = position;
if (bottom > window.innerHeight - BOTTOM_OFFSET) {
window.scrollTo(0, bottom - window.innerHeight + window.pageYOffset + BOTTOM_OFFSET);
} else if (top < TOP_OFFSET) {
window.scrollTo(0, top + window.pageYOffset - TOP_OFFSET);
}
} }
} }


].filter(Boolean) as Array<{ metric: string; type: string }>); ].filter(Boolean) as Array<{ metric: string; type: string }>);


return ( return (
<tr className={classNames({ selected })} ref={node => (this.node = node as HTMLElement)}>
<tr className={classNames({ selected })} ref={node => (this.node = node)}>
<td className="thin nowrap"> <td className="thin nowrap">
<span className="spacer-right">{componentAction}</span> <span className="spacer-right">{componentAction}</span>
</td> </td>

+ 1
- 1
server/sonar-web/src/main/js/apps/code/components/Search.tsx View File

} }


export default class Search extends React.PureComponent<Props, State> { export default class Search extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object.isRequired router: PropTypes.object.isRequired

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx View File

} }


export default class ActivationButton extends React.PureComponent<Props, State> { export default class ActivationButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx View File

} }


export default class ActivationFormModal extends React.PureComponent<Props, State> { export default class ActivationFormModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx View File

// TODO redirect to default organization's rules page // TODO redirect to default organization's rules page


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
organizationsEnabled: PropTypes.bool, organizationsEnabled: PropTypes.bool,

+ 13
- 5
server/sonar-web/src/main/js/apps/coding-rules/components/BulkChange.tsx View File

} }


export default class BulkChange extends React.PureComponent<Props, State> { export default class BulkChange extends React.PureComponent<Props, State> {
closeDropdown: () => void;
closeDropdown?: () => void;
state: State = { modal: false }; state: State = { modal: false };


getSelectedProfile = () => { getSelectedProfile = () => {
handleActivateClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleActivateClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.setState({ action: 'activate', modal: true, profile: undefined }); this.setState({ action: 'activate', modal: true, profile: undefined });
}; };


handleActivateInProfileClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleActivateInProfileClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.setState({ action: 'activate', modal: true, profile: this.getSelectedProfile() }); this.setState({ action: 'activate', modal: true, profile: this.getSelectedProfile() });
}; };


handleDeactivateClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleDeactivateClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.setState({ action: 'deactivate', modal: true, profile: undefined }); this.setState({ action: 'deactivate', modal: true, profile: undefined });
}; };


handleDeactivateInProfileClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleDeactivateInProfileClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.setState({ action: 'deactivate', modal: true, profile: this.getSelectedProfile() }); this.setState({ action: 'deactivate', modal: true, profile: this.getSelectedProfile() });
}; };



+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/BulkChangeModal.tsx View File

} }


export default class BulkChangeModal extends React.PureComponent<Props, State> { export default class BulkChangeModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx View File

} }


export default class CustomRuleButton extends React.PureComponent<Props, State> { export default class CustomRuleButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx View File

} }


export default class CustomRuleFormModal extends React.PureComponent<Props, State> { export default class CustomRuleFormModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx View File

} }


export default class RuleDetails extends React.PureComponent<Props, State> { export default class RuleDetails extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx View File

} }


export default class RuleDetailsCustomRules extends React.PureComponent<Props, State> { export default class RuleDetailsCustomRules extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx View File

} }


export default class RuleDetailsDescription extends React.PureComponent<Props, State> { export default class RuleDetailsDescription extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { state: State = {
description: '', description: '',
descriptionForm: false, descriptionForm: false,

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx View File

} }


export default class RuleDetailsIssues extends React.PureComponent<Props, State> { export default class RuleDetailsIssues extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx View File

} }


export default class RuleDetailsProfiles extends React.PureComponent<Props, State> { export default class RuleDetailsProfiles extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


componentDidMount() { componentDidMount() {
this.mounted = true; this.mounted = true;

+ 1
- 1
server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx View File

const LIST_SIZE = 10; const LIST_SIZE = 10;


export default class RuleDetailsTagsPopup extends React.PureComponent<Props, State> { export default class RuleDetailsTagsPopup extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { searchResult: [] }; state: State = { searchResult: [] };


componentDidMount() { componentDidMount() {

+ 13
- 5
server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx View File

} }


export default class SimilarRulesFilter extends React.PureComponent<Props> { export default class SimilarRulesFilter extends React.PureComponent<Props> {
closeDropdown: () => void;
closeDropdown?: () => void;


handleLanguageClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleLanguageClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.props.onFilterChange({ languages: [this.props.rule.lang] }); this.props.onFilterChange({ languages: [this.props.rule.lang] });
}; };


handleTypeClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleTypeClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
this.props.onFilterChange({ types: [this.props.rule.type] }); this.props.onFilterChange({ types: [this.props.rule.type] });
}; };


handleSeverityClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleSeverityClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
if (this.props.rule.severity) { if (this.props.rule.severity) {
this.props.onFilterChange({ severities: [this.props.rule.severity] }); this.props.onFilterChange({ severities: [this.props.rule.severity] });
} }
handleTagClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { handleTagClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => {
event.preventDefault(); event.preventDefault();
event.currentTarget.blur(); event.currentTarget.blur();
this.closeDropdown();
if (this.closeDropdown) {
this.closeDropdown();
}
const { tag } = event.currentTarget.dataset; const { tag } = event.currentTarget.dataset;
if (tag) { if (tag) {
this.props.onFilterChange({ tags: [tag] }); this.props.onFilterChange({ tags: [tag] });

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-measures/components/App.tsx View File

const PAGE_SIZE = 50; const PAGE_SIZE = 50;


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-measures/components/CreateButton.tsx View File

} }


export default class CreateButton extends React.PureComponent<Props, State> { export default class CreateButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-measures/components/EditButton.tsx View File

} }


export default class EditButton extends React.PureComponent<Props, State> { export default class EditButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-measures/components/Form.tsx View File

} }


export default class Form extends React.PureComponent<Props, State> { export default class Form extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-metrics/components/App.tsx View File

const PAGE_SIZE = 50; const PAGE_SIZE = 50;


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-metrics/components/CreateButton.tsx View File

} }


export default class CreateButton extends React.PureComponent<Props, State> { export default class CreateButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/custom-metrics/components/EditButton.tsx View File

} }


export default class EditButton extends React.PureComponent<Props, State> { export default class EditButton extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/groups/components/App.tsx View File

} }


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true, query: '' }; state: State = { loading: true, query: '' };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/groups/components/EditGroup.tsx View File

} }


export default class EditGroup extends React.PureComponent<Props, State> { export default class EditGroup extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/groups/components/EditMembers.tsx View File



export default class EditMembers extends React.PureComponent<Props, State> { export default class EditMembers extends React.PureComponent<Props, State> {
container?: HTMLElement | null; container?: HTMLElement | null;
mounted: boolean;
mounted = false;
state: State = { modal: false }; state: State = { modal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/groups/components/Header.tsx View File

} }


export default class Header extends React.PureComponent<Props, State> { export default class Header extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { createModal: false }; state: State = { createModal: false };


componentDidMount() { componentDidMount() {

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/AssigneeFacet.js View File

export default class AssigneeFacet extends React.PureComponent { export default class AssigneeFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'assignees';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'assignees';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
if (itemValue === '') { if (itemValue === '') {
// unassigned // unassigned

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/AuthorFacet.js View File

export default class AuthorFacet extends React.PureComponent { export default class AuthorFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'authors';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'authors';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { authors } = this.props; const { authors } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/CreationDateFacet.js View File

export default class CreationDateFacet extends React.PureComponent { export default class CreationDateFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'createdAt';

static defaultProps = { static defaultProps = {
open: true open: true
}; };
intl: intlShape intl: intlShape
}; };


property = 'createdAt';

hasValue = () => hasValue = () =>
this.props.createdAfter.length > 0 || this.props.createdAfter.length > 0 ||
this.props.createdAt.length > 0 || this.props.createdAt.length > 0 ||

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/DirectoryFacet.js View File

export default class DirectoryFacet extends React.PureComponent { export default class DirectoryFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'directories';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'directories';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { directories } = this.props; const { directories } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/FileFacet.js View File

export default class FileFacet extends React.PureComponent { export default class FileFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'files';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'files';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { files } = this.props; const { files } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/LanguageFacet.js View File

export default class LanguageFacet extends React.PureComponent { export default class LanguageFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'languages';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'languages';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { languages } = this.props; const { languages } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/ModuleFacet.js View File

export default class ModuleFacet extends React.PureComponent { export default class ModuleFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'modules';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'modules';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { modules } = this.props; const { modules } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/ProjectFacet.js View File

export default class ProjectFacet extends React.PureComponent { export default class ProjectFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'projects';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'projects';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { projects } = this.props; const { projects } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/ResolutionFacet.js View File

export default class ResolutionFacet extends React.PureComponent { export default class ResolutionFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'resolutions';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'resolutions';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
if (itemValue === '') { if (itemValue === '') {
// unresolved // unresolved

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.js View File

export default class RuleFacet extends React.PureComponent { export default class RuleFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'rules';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'rules';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { rules } = this.props; const { rules } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/SeverityFacet.js View File

export default class SeverityFacet extends React.PureComponent { export default class SeverityFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'severities';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'severities';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { severities } = this.props; const { severities } = this.props;
const newValue = orderBy( const newValue = orderBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/StatusFacet.js View File

export default class StatusFacet extends React.PureComponent { export default class StatusFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'statuses';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'statuses';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { statuses } = this.props; const { statuses } = this.props;
const newValue = orderBy( const newValue = orderBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/TagFacet.js View File

export default class TagFacet extends React.PureComponent { export default class TagFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'tags';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'tags';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { tags } = this.props; const { tags } = this.props;
const newValue = sortBy( const newValue = sortBy(

+ 2
- 2
server/sonar-web/src/main/js/apps/issues/sidebar/TypeFacet.js View File

export default class TypeFacet extends React.PureComponent { export default class TypeFacet extends React.PureComponent {
/*:: props: Props; */ /*:: props: Props; */


property = 'types';

static defaultProps = { static defaultProps = {
open: true open: true
}; };


property = 'types';

handleItemClick = (itemValue /*: string */) => { handleItemClick = (itemValue /*: string */) => {
const { types } = this.props; const { types } = this.props;
const newValue = orderBy( const newValue = orderBy(

+ 1
- 1
server/sonar-web/src/main/js/apps/marketplace/App.tsx View File

} }


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object.isRequired router: PropTypes.object.isRequired

+ 1
- 1
server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionForm.tsx View File

} }


export default class LicenseEditionForm extends React.PureComponent<Props, State> { export default class LicenseEditionForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { license: '', submitting: false }; state: State = { license: '', submitting: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/marketplace/components/LicenseEditionSet.tsx View File

} }


export default class LicenseEditionSet extends React.PureComponent<Props, State> { export default class LicenseEditionSet extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/marketplace/components/PluginActions.tsx View File

} }


export default class PluginActions extends React.PureComponent<Props, State> { export default class PluginActions extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { acceptTerms: false, loading: false }; state: State = { acceptTerms: false, loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/marketplace/components/UninstallEditionForm.tsx View File

} }


export default class UninstallEditionForm extends React.PureComponent<Props, State> { export default class UninstallEditionForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/overview/badges/BadgeParams.tsx View File

} }


export default class BadgeParams extends React.PureComponent<Props> { export default class BadgeParams extends React.PureComponent<Props> {
mounted: boolean;
mounted = false;


state: State = { badgeMetrics: [] }; state: State = { badgeMetrics: [] };



+ 1
- 1
server/sonar-web/src/main/js/apps/overview/components/OverviewApp.tsx View File

} }


export class OverviewApp extends React.PureComponent<Props, State> { export class OverviewApp extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true, measures: [] }; state: State = { loading: true, measures: [] };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/overview/events/AnalysesList.tsx View File

const PAGE_SIZE = 3; const PAGE_SIZE = 3;


export default class AnalysesList extends React.PureComponent<Props, State> { export default class AnalysesList extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { analyses: [], loading: true }; state: State = { analyses: [], loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/overview/meta/MetaLinks.tsx View File

} }


export default class MetaLinks extends React.PureComponent<Props, State> { export default class MetaLinks extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = {}; state: State = {};


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx View File

} }


class MetaQualityProfiles extends React.PureComponent<StateProps & OwnProps, State> { class MetaQualityProfiles extends React.PureComponent<StateProps & OwnProps, State> {
mounted: boolean;
mounted = false;
state: State = { deprecatedByKey: {} }; state: State = { deprecatedByKey: {} };


componentDidMount() { componentDidMount() {

+ 3
- 3
server/sonar-web/src/main/js/apps/overview/meta/MetaTags.tsx View File

} }


export default class MetaTags extends React.PureComponent<Props, State> { export default class MetaTags extends React.PureComponent<Props, State> {
card: HTMLDivElement | null;
tagsList: HTMLButtonElement | null;
tagsSelector: HTMLDivElement | null;
card?: HTMLDivElement | null;
tagsList?: HTMLButtonElement | null;
tagsSelector?: HTMLDivElement | null;
state: State = { popupOpen: false, popupPosition: { top: 0, right: 0 } }; state: State = { popupOpen: false, popupPosition: { top: 0, right: 0 } };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/overview/qualityGate/ApplicationQualityGate.tsx View File

}; };


export default class ApplicationQualityGate extends React.PureComponent<Props, State> { export default class ApplicationQualityGate extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/portfolio/components/Activity.tsx View File

} }


export default class Activity extends React.PureComponent<Props> { export default class Activity extends React.PureComponent<Props> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/portfolio/components/App.tsx View File

} }


export class App extends React.PureComponent<Props, State> { export class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/portfolio/components/Report.tsx View File

} }


export default class Report extends React.PureComponent<Props, State> { export default class Report extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/portfolio/components/Subscription.tsx View File

} }


export default class Subscription extends React.PureComponent<Props, State> { export default class Subscription extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/App.tsx View File

const BRANCH_LIFETIME_SETTING = 'sonar.dbcleaner.daysBeforeDeletingInactiveShortLivingBranches'; const BRANCH_LIFETIME_SETTING = 'sonar.dbcleaner.daysBeforeDeletingInactiveShortLivingBranches';


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/BranchRow.tsx View File

} }


export default class BranchRow extends React.PureComponent<Props, State> { export default class BranchRow extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { changingLeak: false, deleting: false, renaming: false }; state: State = { changingLeak: false, deleting: false, renaming: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/DeleteBranchModal.tsx View File

} }


export default class DeleteBranchModal extends React.PureComponent<Props, State> { export default class DeleteBranchModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/LeakPeriodForm.tsx View File

const LEAK_PERIOD = 'sonar.leak.period'; const LEAK_PERIOD = 'sonar.leak.period';


export default class LeakPeriodForm extends React.PureComponent<Props, State> { export default class LeakPeriodForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true, submitting: false }; state: State = { loading: true, submitting: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/LongBranchesPattern.tsx View File

export const LONG_BRANCH_PATTERN = 'sonar.branch.longLivedBranches.regex'; export const LONG_BRANCH_PATTERN = 'sonar.branch.longLivedBranches.regex';


export default class LongBranchesPattern extends React.PureComponent<Props, State> { export default class LongBranchesPattern extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { formOpen: false }; state: State = { formOpen: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/RenameBranchModal.tsx View File

} }


export default class RenameBranchModal extends React.PureComponent<Props, State> { export default class RenameBranchModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectBranches/components/SettingForm.tsx View File

} }


export default class SettingForm extends React.PureComponent<Props, State> { export default class SettingForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 2
- 2
server/sonar-web/src/main/js/apps/projectBranches/components/__tests__/App-test.tsx View File

import * as React from 'react'; import * as React from 'react';
import { mount, shallow } from 'enzyme'; import { mount, shallow } from 'enzyme';
import App from '../App'; import App from '../App';
import { Branch, BranchType } from '../../../../app/types';
import { BranchType, MainBranch, LongLivingBranch, ShortLivingBranch } from '../../../../app/types';


const getValues = require('../../../../api/settings').getValues as jest.Mock<any>; const getValues = require('../../../../api/settings').getValues as jest.Mock<any>;


}); });


it('renders sorted list of branches', () => { it('renders sorted list of branches', () => {
const branches: Branch[] = [
const branches: [MainBranch, LongLivingBranch, ShortLivingBranch] = [
{ isMain: true, name: 'master' }, { isMain: true, name: 'master' },
{ isMain: false, name: 'branch-1.0', type: BranchType.LONG }, { isMain: false, name: 'branch-1.0', type: BranchType.LONG },
{ isMain: false, name: 'branch-1.0', mergeBranch: 'master', type: BranchType.SHORT } { isMain: false, name: 'branch-1.0', mergeBranch: 'master', type: BranchType.SHORT }

+ 1
- 1
server/sonar-web/src/main/js/apps/projectQualityGate/App.tsx View File

} }


export default class App extends React.PureComponent<Props> { export default class App extends React.PureComponent<Props> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectQualityGate/Form.tsx View File

} }


export default class Form extends React.PureComponent<Props, State> { export default class Form extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectQualityProfiles/App.tsx View File

} }


export default class QualityProfiles extends React.PureComponent<Props, State> { export default class QualityProfiles extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: true }; state: State = { loading: true };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectQualityProfiles/ProfileRow.tsx View File

} }


export default class ProfileRow extends React.PureComponent<Props, State> { export default class ProfileRow extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projects/components/AllProjects.tsx View File

} }


export default class AllProjects extends React.PureComponent<Props, State> { export default class AllProjects extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object.isRequired router: PropTypes.object.isRequired

+ 1
- 1
server/sonar-web/src/main/js/apps/projects/filters/TagsFilter.tsx View File

const LIST_SIZE = 10; const LIST_SIZE = 10;


export default class TagsFilter extends React.PureComponent<Props, State> { export default class TagsFilter extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/projectsManagement/App.tsx View File

} }


export default class App extends React.PureComponent<Props, State> { export default class App extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/projectsManagement/BulkApplyTemplateModal.tsx View File

} }


export default class BulkApplyTemplateModal extends React.PureComponent<Props, State> { export default class BulkApplyTemplateModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { done: false, loading: true, submitting: false }; state: State = { done: false, loading: true, submitting: false };


componentDidMount() { componentDidMount() {

+ 2
- 2
server/sonar-web/src/main/js/apps/projectsManagement/CreateProjectForm.tsx View File

} }


export default class CreateProjectForm extends React.PureComponent<Props, State> { export default class CreateProjectForm extends React.PureComponent<Props, State> {
closeButton: HTMLElement | null;
mounted: boolean;
closeButton?: HTMLElement | null;
mounted = false;


constructor(props: Props) { constructor(props: Props) {
super(props); super(props);

+ 1
- 1
server/sonar-web/src/main/js/apps/projectsManagement/DeleteModal.tsx View File

} }


export default class DeleteModal extends React.PureComponent<Props, State> { export default class DeleteModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectsManagement/ProjectRowActions.tsx View File

} }


export default class ProjectRowActions extends React.PureComponent<Props, State> { export default class ProjectRowActions extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false, restoreAccessModal: false }; state: State = { loading: false, restoreAccessModal: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/projectsManagement/RestoreAccessModal.tsx View File

} }


export default class RestoreAccessModal extends React.PureComponent<Props, State> { export default class RestoreAccessModal extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 2
server/sonar-web/src/main/js/apps/projectsManagement/Search.tsx View File

} }


export default class Search extends React.PureComponent<Props, State> { export default class Search extends React.PureComponent<Props, State> {
input: HTMLInputElement;
mounted: boolean;
mounted = false;
state: State = { bulkApplyTemplateModal: false, deleteModal: false }; state: State = { bulkApplyTemplateModal: false, deleteModal: false };


getQualifierOptions = () => { getQualifierOptions = () => {

+ 1
- 1
server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx View File

} }


export default class CopyQualityGateForm extends React.PureComponent<Props, State> { export default class CopyQualityGateForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object router: PropTypes.object

+ 1
- 1
server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx View File

} }


export default class CreateQualityGateForm extends React.PureComponent<Props, State> { export default class CreateQualityGateForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object router: PropTypes.object

+ 1
- 1
server/sonar-web/src/main/js/apps/quality-gates/components/DeleteConditionForm.tsx View File

} }


export default class DeleteConditionForm extends React.PureComponent<Props, State> { export default class DeleteConditionForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;
state: State = { loading: false }; state: State = { loading: false };


componentDidMount() { componentDidMount() {

+ 1
- 1
server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx View File

} }


export default class DeleteQualityGateForm extends React.PureComponent<Props, State> { export default class DeleteQualityGateForm extends React.PureComponent<Props, State> {
mounted: boolean;
mounted = false;


static contextTypes = { static contextTypes = {
router: PropTypes.object router: PropTypes.object

+ 0
- 0
server/sonar-web/src/main/js/apps/quality-gates/components/RenameQualityGateForm.tsx View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save