Skip to content

Commit a07914d

Browse files
authored
Merge pull request #198 from plotly/add-opacity-message
Add info message for area trace opacity
2 parents 6ae3258 + e7e9f03 commit a07914d

File tree

4 files changed

+38
-13
lines changed

4 files changed

+38
-13
lines changed

src/components/containers/Section.js

+25-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ import Info from '../fields/Info';
22
import MenuPanel from './MenuPanel';
33
import React, {Component, cloneElement} from 'react';
44
import PropTypes from 'prop-types';
5-
import unpackPlotProps from 'lib/unpackPlotProps';
6-
import {containerConnectedContextTypes} from 'lib/connectToContainer';
5+
import {
6+
containerConnectedContextTypes,
7+
localize,
8+
unpackPlotProps,
9+
} from '../../lib';
710

8-
export default class Section extends Component {
11+
class Section extends Component {
912
constructor(props, context) {
1013
super(props, context);
1114

@@ -21,6 +24,8 @@ export default class Section extends Component {
2124
}
2225

2326
processAndSetChildren(nextProps, nextContext) {
27+
const {fullContainer} = nextContext;
28+
const {localize: _} = nextProps;
2429
this.sectionVisible = false;
2530

2631
const children = React.Children.toArray(nextProps.children);
@@ -47,6 +52,22 @@ export default class Section extends Component {
4752
let newProps = {};
4853
if (child.plotProps) {
4954
plotProps = child.plotProps;
55+
} else if (
56+
fullContainer &&
57+
fullContainer.type === 'scatter' &&
58+
!fullContainer.opacity &&
59+
child.props.attr === 'opacity'
60+
) {
61+
this.sectionVisible = true;
62+
const child = (
63+
<Info>
64+
{_(
65+
'Trace opacity is not supported for a scatter trace with fill ' +
66+
'or for a scatter trace that gets filled by another scatter trace.'
67+
)}
68+
</Info>
69+
);
70+
this.children.push(child);
5071
} else if (isAttr) {
5172
if (child.type.supplyPlotProps) {
5273
plotProps = child.type.supplyPlotProps(child.props, nextContext);
@@ -94,3 +115,4 @@ Section.propTypes = {
94115
};
95116

96117
Section.contextTypes = containerConnectedContextTypes;
118+
export default localize(Section);

src/components/containers/__tests__/Section-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('Section', () => {
5555
</TestEditor>
5656
).find('[name="test-section"]');
5757

58-
expect(wrapper.children().length).toBe(1);
58+
expect(wrapper.children().length).toBe(2);
5959
expect(wrapper.find('.extra').text()).toBe('special extra');
6060
});
6161

src/lib/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import bem from './bem';
22
import connectAnnotationToLayout from './connectAnnotationToLayout';
33
import connectAxesToLayout from './connectAxesToLayout';
44
import connectLayoutToPlot, {getLayoutContext} from './connectLayoutToPlot';
5-
import connectToContainer from './connectToContainer';
5+
import connectToContainer, {
6+
containerConnectedContextTypes,
7+
} from './connectToContainer';
68
import connectTraceToPlot from './connectTraceToPlot';
79
import dereference from './dereference';
810
import findFullTraceIndex from './findFullTraceIndex';
@@ -37,6 +39,7 @@ export {
3739
connectLayoutToPlot,
3840
connectToContainer,
3941
connectTraceToPlot,
42+
containerConnectedContextTypes,
4043
customTraceToPlotlyTrace,
4144
dereference,
4245
findFullTraceIndex,

src/styles/components/fields/_field.scss

+8-8
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,24 @@
5353
}
5454
}
5555

56-
&__delete{
56+
&__delete {
5757
display: flex;
5858
align-items: center;
5959
justify-content: center;
6060
padding-left: var(--spacing-quarter-unit);
6161
opacity: 0.5;
62-
svg{
62+
svg {
6363
display: block;
64-
path{
65-
fill: var(--color-text-base)
64+
path {
65+
fill: var(--color-text-base);
6666
}
6767
}
68-
&:hover{
68+
&:hover {
6969
cursor: pointer;
7070
opacity: 1;
71-
svg{
72-
path{
73-
fill: var(--color-sienna)
71+
svg {
72+
path {
73+
fill: var(--color-sienna);
7474
}
7575
}
7676
}

0 commit comments

Comments
 (0)