Skip to content

Commit

Permalink
[Enhancement] better arc layer column config layout (#1345)
Browse files Browse the repository at this point in the history
Signed-off-by: Shan He <heshan0131@gmail.com>
  • Loading branch information
heshan0131 committed Dec 7, 2020
1 parent 2ea853b commit f046ac1
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 6 deletions.
8 changes: 5 additions & 3 deletions src/components/side-panel/layer-panel/column-selector.js
Expand Up @@ -32,11 +32,13 @@ const ColumnRow = styled.div`
`;

const ColumnName = styled.div`
width: 25%;
width: 27%;
line-height: 1.2;
padding-right: 6px;
`;

const ColumnSelect = styled.div`
width: 75%;
width: 73%;
`;

ColumnSelectorFactory.deps = [FieldSelectorFactory];
Expand All @@ -47,8 +49,8 @@ function ColumnSelectorFactory(FieldSelector) {
<ColumnName className="layer-config__column__name">
<PanelLabel>
<FormattedMessage id={`columns.${label}`} />
{!column.optional ? ` *` : null}
</PanelLabel>
{!column.optional ? <PanelLabel>{` *`}</PanelLabel> : null}
</ColumnName>
<ColumnSelect className="layer-config__column__select">
<FieldSelector
Expand Down
2 changes: 1 addition & 1 deletion src/utils/layer-utils.js
Expand Up @@ -87,7 +87,7 @@ export function getLayerHoverProp({
// deckgl layer to kepler-gl layer
const layer = layers[overlay.props.idx];

if (layer.getHoverData && layersToRender[layer.id]) {
if (layer && layer.getHoverData && layersToRender[layer.id]) {
// if layer is visible and have hovered data
const {
config: {dataId}
Expand Down
57 changes: 55 additions & 2 deletions test/node/utils/layer-utils-test.js
Expand Up @@ -19,12 +19,14 @@
// THE SOFTWARE.

import test from 'tape';
import {findDefaultLayer} from 'utils/layer-utils';
import cloneDeep from 'lodash.clonedeep';

import {findDefaultLayer, getLayerHoverProp} from 'utils/layer-utils';
import {findPointFieldPairs, createNewDataEntry} from 'utils/dataset-utils';
import {processCsvData, processGeojson} from 'processors/data-processor';
import {GEOJSON_FIELDS} from 'constants/default-settings';
import {LayerClasses, KeplerGlLayers} from 'layers';
import {StateWTripGeojson} from 'test/helpers/mock-state';
import {StateWTripGeojson, StateWFiles} from 'test/helpers/mock-state';

const {PointLayer, ArcLayer, GeojsonLayer, LineLayer} = KeplerGlLayers;

Expand Down Expand Up @@ -799,3 +801,54 @@ test('layerUtils -> findDefaultLayer: TripLayer.1 -> ts as string', t => {
);
t.end();
});

test('layerUtils -> getLayerHoverProp', t => {
const visState = cloneDeep(StateWFiles).visState;
const layer = visState.layers[0];
const layerData = visState.layerData[0];
const layersToRender = {
[layer.id]: layer
};

const mockHoverInfo = {
object: {
data: layerData[0]
},
picked: true,
layer: {
props: {
idx: 0
}
}
};
const mockHoverInfoNotHovered = {
picked: false,
object: null
};
const args = {
interactionConfig: visState.interactionConfig,
hoverInfo: mockHoverInfo,
layers: visState.layers,
layersToRender,
datasets: visState.datasets
};

const expected = {
data: layerData[0],
fields: visState.datasets[layer.config.dataId].fields,
fieldsToShow: visState.interactionConfig.tooltip.config.fieldsToShow[layer.config.dataId],
layer
};

t.deepEqual(getLayerHoverProp(args), expected, 'should get correct layerHoverProp');

args.hoverInfo = mockHoverInfoNotHovered;
t.deepEqual(getLayerHoverProp(args), null, 'should get correct layerHoverProp');

visState.interactionConfig.tooltip.enabled = false;
args.hoverInfo = mockHoverInfo;

t.deepEqual(getLayerHoverProp(args), null, 'should get correct layerHoverProp');

t.end();
});

0 comments on commit f046ac1

Please sign in to comment.