• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

keplergl / kepler.gl / 11902748265

18 Nov 2024 11:05PM UTC coverage: 46.365% (-22.4%) from 68.723%
11902748265

push

github

web-flow
[fix] Custom color scale fixes (#2770)

- [Bug] Fix custom color scale removing break error
- [Bug] Fix customPalette undefined
- [Bug] fix color legend intl id not defined

Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Co-authored-by: Ilya Boyandin <iboyandin@foursquare.com>

3336 of 9035 branches covered (36.92%)

Branch coverage included in aggregate %.

11 of 11 new or added lines in 6 files covered. (100.0%)

3469 existing lines in 293 files now uncovered.

7851 of 15093 relevant lines covered (52.02%)

67.15 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.86
/src/components/src/map/split-map-button.tsx
1
// SPDX-License-Identifier: MIT
2
// Copyright contributors to the kepler.gl project
3

4
import React, {ComponentType, useCallback, useMemo} from 'react';
5
import classnames from 'classnames';
6
import {MapControlButton} from '../common/styled-components';
7
import {Delete, Split} from '../common/icons';
8
import MapControlTooltipFactory from './map-control-tooltip';
9
import {MapControlItem, MapControls} from '@kepler.gl/types';
10

11
SplitMapButtonFactory.deps = [MapControlTooltipFactory];
6✔
12

13
interface SplitMapButtonIcons {
14
  delete: ComponentType<any>;
15
  split: ComponentType<any>;
16
}
17

18
export type SplitMapButtonProps = {
19
  isSplit: boolean;
20
  mapIndex: number;
21
  onToggleSplitMap: (index?: number) => void;
22
  actionIcons: SplitMapButtonIcons;
23
  readOnly: boolean;
24
  mapControls: MapControls;
25
};
26

27
function SplitMapButtonFactory(MapControlTooltip) {
28
  const defaultActionIcons = {
6✔
29
    delete: Delete,
30
    split: Split
31
  };
32

33
  /** @type {import('./split-map-button').SplitMapButtonComponent} */
34
  const SplitMapButton: React.FC<SplitMapButtonProps> = ({
6✔
35
    isSplit,
36
    mapIndex,
37
    onToggleSplitMap,
38
    actionIcons = defaultActionIcons,
×
39
    mapControls,
40
    readOnly
41
  }) => {
UNCOV
42
    const splitMap = mapControls?.splitMap || ({} as MapControlItem);
×
UNCOV
43
    const onClick = useCallback(
×
44
      event => {
UNCOV
45
        event.preventDefault();
×
UNCOV
46
        onToggleSplitMap(isSplit ? mapIndex : undefined);
×
47
      },
48
      [isSplit, mapIndex, onToggleSplitMap]
49
    );
50

UNCOV
51
    const isVisible = useMemo(() => splitMap.show && readOnly !== true, [splitMap.show, readOnly]);
×
52

UNCOV
53
    if (!splitMap.show) {
×
UNCOV
54
      return null;
×
55
    }
UNCOV
56
    return isVisible ? (
×
57
      <MapControlTooltip
58
        id="action-toggle"
59
        message={isSplit ? 'tooltip.closePanel' : 'tooltip.switchToDualView'}
×
60
      >
61
        <MapControlButton
62
          active={isSplit}
63
          onClick={onClick}
64
          className={classnames('map-control-button', 'split-map', {'close-map': isSplit})}
65
        >
66
          {isSplit ? <actionIcons.delete height="18px" /> : <actionIcons.split height="18px" />}
×
67
        </MapControlButton>
68
      </MapControlTooltip>
69
    ) : null;
70
  };
71

72
  SplitMapButton.displayName = 'SplitMapButton';
6✔
73
  return React.memo(SplitMapButton);
6✔
74
}
75

76
export default SplitMapButtonFactory;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc