]> source.dussan.org Git - sonarqube.git/commitdiff
[NO JIRA] Fix Code Smells
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Tue, 13 Jun 2023 06:55:32 +0000 (08:55 +0200)
committersonartech <sonartech@sonarsource.com>
Tue, 13 Jun 2023 20:03:37 +0000 (20:03 +0000)
server/sonar-web/src/main/js/apps/projectKey/UpdateForm.tsx
server/sonar-web/src/main/js/apps/projects/filters/SearchFilterContainer.tsx
server/sonar-web/src/main/js/apps/projectsManagement/Header.tsx
server/sonar-web/src/main/js/components/activity-graph/DataTableModal.tsx
server/sonar-web/src/main/js/components/activity-graph/GraphsHistory.tsx
server/sonar-web/src/main/js/components/hoc/utils.ts
server/sonar-web/src/main/js/components/tutorials/other/TokenStep.tsx

index 1f962e7e50af609d8268104bf072db3a9a9ba19d..b30a0b824f9c78fffad6f43ae3032df3cf2e877d 100644 (file)
@@ -19,8 +19,8 @@
  */
 import * as React from 'react';
 import ProjectKeyInput from '../../components/common/ProjectKeyInput';
-import { Button, SubmitButton } from '../../components/controls/buttons';
 import ConfirmButton from '../../components/controls/ConfirmButton';
+import { Button, SubmitButton } from '../../components/controls/buttons';
 import MandatoryFieldsExplanation from '../../components/ui/MandatoryFieldsExplanation';
 import { translate, translateWithParameters } from '../../helpers/l10n';
 import { validateProjectKey } from '../../helpers/projects';
@@ -34,11 +34,10 @@ export interface UpdateFormProps {
 
 export default function UpdateForm(props: UpdateFormProps) {
   const { component } = props;
-  const [newKey, setNewKey] = React.useState<string | undefined>(undefined);
-  const value = newKey !== undefined ? newKey : component.key;
-  const hasChanged = value !== component.key;
+  const [newKey, setNewKey] = React.useState(component.key);
+  const hasChanged = newKey !== component.key;
 
-  const validationResult = validateProjectKey(value);
+  const validationResult = validateProjectKey(newKey);
   const error =
     validationResult === ProjectKeyValidationResult.Valid
       ? undefined
@@ -78,7 +77,7 @@ export default function UpdateForm(props: UpdateFormProps) {
             }}
             touched={hasChanged}
             placeholder={translate('update_key.new_key')}
-            projectKey={value}
+            projectKey={newKey}
             autofocus
           />
 
@@ -92,7 +91,7 @@ export default function UpdateForm(props: UpdateFormProps) {
               disabled={!hasChanged}
               id="update-key-reset"
               onClick={() => {
-                setNewKey(undefined);
+                setNewKey(component.key);
               }}
               type="reset"
             >
index 65ce28411392c5acea16cb4a9ad443b27681732a..b22eaaccdcae510c3bf8917c046cf9d047a5cba1 100644 (file)
@@ -38,7 +38,7 @@ export default class SearchFilterContainer extends React.PureComponent<Props> {
           minLength={2}
           onChange={this.handleSearch}
           placeholder={translate('projects.search')}
-          value={this.props.query.search || ''}
+          value={this.props.query.search ?? ''}
         />
       </div>
     );
index de75e3e971320c6ed224cbadc2e2faa351d88b25..1c3dd413f3c922f7e6b02f8cb2f95ec0e6abcac6 100644 (file)
@@ -79,7 +79,7 @@ export default class Header extends React.PureComponent<Props, State> {
 
         {visibilityForm && (
           <ChangeDefaultVisibilityForm
-            defaultVisibility={defaultProjectVisibility || Visibility.Public}
+            defaultVisibility={defaultProjectVisibility ?? Visibility.Public}
             onClose={this.closeVisiblityForm}
             onConfirm={this.props.onChangeDefaultProjectVisibility}
           />
index 4c40977f44c7d0848a425ba07285e50c2d21c70e..eee2bdbfca39315e691c3e4626574012f9785f93 100644 (file)
@@ -23,8 +23,8 @@ import { FormattedMessage } from 'react-intl';
 import { translate, translateWithParameters } from '../../helpers/l10n';
 import { formatMeasure } from '../../helpers/measures';
 import { ParsedAnalysis, Serie } from '../../types/project-activity';
-import { Button } from '../controls/buttons';
 import Modal from '../controls/Modal';
+import { Button } from '../controls/buttons';
 import DateFormatter from '../intl/DateFormatter';
 import TimeFormatter from '../intl/TimeFormatter';
 import { Alert } from '../ui/Alert';
@@ -101,7 +101,7 @@ export default function DataTableModal(props: DataTableModalProps) {
       </td>
       {metrics.map((metric) => (
         <td key={metric} className="thin nowrap">
-          {values[metric] || '-'}
+          {values[metric] ?? '-'}
         </td>
       ))}
       <td>
index a3c8aeae3bc1f53fa28693dbe02482c997ebef66..b9790af566d53846052c3a3bdf0c48ca707cc177 100644 (file)
@@ -122,7 +122,7 @@ export default class GraphsHistory extends React.PureComponent<Props, State> {
               selectedDate={this.state.selectedDate}
               series={graphSeries}
               graphDescription={
-                ariaLabel ||
+                ariaLabel ??
                 translateWithParameters(
                   'project_activity.graphs.explanation_x',
                   uniqBy(graphSeries, 'name')
index c86c6e99aeac9cf82b9158b8d4824413a45d5ec2..ce211c3244a8b0b6425bad8f994aaa8b3418c971 100644 (file)
@@ -21,6 +21,6 @@ export function getWrappedDisplayName<P>(
   WrappedComponent: React.ComponentType<P>,
   hocName: string
 ) {
-  const wrappedDisplayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
+  const wrappedDisplayName = WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component';
   return `${hocName}(${wrappedDisplayName})`;
 }
index 1610bdfb02120267ed18ed2b2fc0e1b842aa801f..9eb8e33cb6c01665439bd62ca68d1e7a0c8b3b9c 100644 (file)
@@ -22,17 +22,17 @@ import { FormattedMessage } from 'react-intl';
 import { generateToken, getTokens, revokeToken } from '../../../api/user-tokens';
 import { translate } from '../../../helpers/l10n';
 import {
-  computeTokenExpirationDate,
   EXPIRATION_OPTIONS,
+  computeTokenExpirationDate,
   getAvailableExpirationOptions,
 } from '../../../helpers/tokens';
 import { TokenExpiration, TokenType, UserToken } from '../../../types/token';
 import { LoggedInUser } from '../../../types/users';
 import DocumentationTooltip from '../../common/DocumentationTooltip';
 import Link from '../../common/Link';
-import { Button, DeleteButton, SubmitButton } from '../../controls/buttons';
 import Radio from '../../controls/Radio';
 import Select from '../../controls/Select';
+import { Button, DeleteButton, SubmitButton } from '../../controls/buttons';
 import AlertErrorIcon from '../../icons/AlertErrorIcon';
 import AlertSuccessIcon from '../../icons/AlertSuccessIcon';
 import ProjectTokenScopeInfo from '../components/ProjectTokenScopeInfo';
@@ -109,7 +109,7 @@ export default class TokenStep extends React.PureComponent<Props, State> {
 
   canContinue = () => {
     const { existingToken, selection, token } = this.state;
-    const validExistingToken = existingToken.match(TOKEN_FORMAT_REGEX) != null;
+    const validExistingToken = TOKEN_FORMAT_REGEX.exec(existingToken) != null;
     return (
       (selection === 'generate' && token != null) ||
       (selection === 'use-existing' && existingToken && validExistingToken)
@@ -222,7 +222,7 @@ export default class TokenStep extends React.PureComponent<Props, State> {
                   onChange={this.handleTokenNameChange}
                   required
                   type="text"
-                  value={tokenName || ''}
+                  value={tokenName ?? ''}
                 />
               </div>
               <div className="display-flex-column spacer-left big-spacer-right">
@@ -260,7 +260,7 @@ export default class TokenStep extends React.PureComponent<Props, State> {
 
   renderUseExistingOption = () => {
     const { existingToken } = this.state;
-    const validInput = !existingToken || existingToken.match(TOKEN_FORMAT_REGEX) != null;
+    const validInput = !existingToken || TOKEN_FORMAT_REGEX.exec(existingToken) != null;
 
     return (
       <div className="big-spacer-top">