pacificclimate/climate-explorer-frontend

View on GitHub
src/components/map-controllers/DualMapController/DualMapController.js

Summary

Maintainability
F
3 days
Test Coverage

Function render has 79 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  render() {
    const mapLegend = (
      <MapLegend
        {...this.props}
        {...this.state}
Severity: Major
Found in src/components/map-controllers/DualMapController/DualMapController.js - About 3 hrs to fix

    File DualMapController.js has 265 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    /*************************************************************************
     * DualMapController - displays two variables on the map at once
     *
     * This controller coordinates a map displaying two layers at once:
     *   * A raster layer with colour shading reflecting values
    Severity: Minor
    Found in src/components/map-controllers/DualMapController/DualMapController.js - About 2 hrs to fix

      Function loadMap has 40 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        loadMap(props, dataSpec, newVariable = false, newComparand = false) {
          // update state with all the information needed to display
          // maps for specific dataspecs.
          // A 'dataspec' is a variable + emissions + model + period + run combination.
          // Timestamps for an dataspec may be spread across up to three files

        Function constructor has 27 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          constructor(props) {
            super(props);
        
            this.state = {
              run: undefined,

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

                      <DataMap
                        raster={{
                          ...getDatasetIdentifiers(
                            this.props,
                            this.state,
          src/components/map-controllers/PrecipMapController/PrecipMapController.js on lines 282..331

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 186.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Identical blocks of code found in 2 locations. Consider refactoring.
          Open

                  <Panel.Heading>
                    <Panel.Title>
                      <Row>
                        <Col lg={2}>{mapPanelLabel}</Col>
                        <Col lg={10}>{mapLegend}</Col>
          src/components/map-controllers/PrecipMapController/PrecipMapController.js on lines 272..279

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 98.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Identical blocks of code found in 2 locations. Consider refactoring.
          Open

            static propTypes = {
              model_id: PropTypes.string.isRequired,
              experiment: PropTypes.string.isRequired,
              variable_id: PropTypes.string.isRequired,
              meta: PropTypes.array.isRequired,
          src/components/map-controllers/PrecipMapController/PrecipMapController.js on lines 55..64

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 98.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 3 locations. Consider refactoring.
          Open

            shouldComponentUpdate(nextProps, nextState) {
              // This guards against re-rendering before we have required data
              // TODO: Make more efficient?
              // Currently doing deep comparison on big objects (meta, comparandMeta).
              // Deep comparison matters on rasterRange, isolineRange, but not on
          src/components/map-controllers/PrecipMapController/PrecipMapController.js on lines 248..259
          src/components/map-controllers/SingleMapController/SingleMapController.js on lines 208..219

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 75.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

                if (!newVariable) {
                  rasterParams.palette = this.state.raster.palette;
                  rasterParams.logscale = this.state.raster.logscale;
                }
          src/components/map-controllers/SingleMapController/SingleMapController.js on lines 114..117

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 58.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 3 locations. Consider refactoring.
          Open

                            isoline={{
                              ...this.state.isoline,
                              onChangeTime: this.handleChangeComparandTime,
                              onChangePalette: this.handleChangeIsolinePalette,
                              onChangeScale: this.handleChangeIsolineScale,
          src/components/map-controllers/DualMapController/DualMapController.js on lines 354..359
          src/components/map-controllers/SingleMapController/SingleMapController.js on lines 268..273

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 46.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 3 locations. Consider refactoring.
          Open

                            raster={{
                              ...this.state.raster,
                              onChangeTime: this.handleChangeVariableTime,
                              onChangePalette: this.handleChangeRasterPalette,
                              onChangeScale: this.handleChangeRasterScale,
          src/components/map-controllers/DualMapController/DualMapController.js on lines 362..367
          src/components/map-controllers/SingleMapController/SingleMapController.js on lines 268..273

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 46.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          There are no issues that match your filters.

          Category
          Status