updated: notes svg to prevent duplicate appending

This commit is contained in:
Thomas Hervey
2018-06-25 12:45:16 -04:00
parent 1878397387
commit 0859d00195
2 changed files with 9 additions and 22 deletions
+1 -1
View File
@@ -117,7 +117,7 @@
.layer-notes {
pointer-events: none;
}
.layer-notes .notes * {
.layer-notes * {
color: #eebb00;
}
+8 -21
View File
@@ -61,32 +61,25 @@ export function svgNotes(projection, context, dispatch) {
var service = getService();
var data = (service ? service.notes(projection) : []);
var transform = svgPointTransform(projection);
var notes = layer.selectAll('.notes').selectAll('.note')
var notes = layer.selectAll('.note')
.data(data, function(d) { return d.key; });
// exit
notes.exit()
.remove();
// enter
var notesEnter = notes.enter()
.append('g')
.attr('class', 'note');
// update
var markers = notes
.merge(notesEnter)
.attr('transform', transform);
markers.selectAll('circle')
.data([0])
.enter()
.append('use')
.attr('class', 'note')
.attr('width', '24px')
.attr('height', '24px')
.attr('x', '-12px')
.attr('y', '-12px')
.attr('xlink:href', '#fas-comment-alt');
notes
.merge(notesEnter)
.attr('transform', transform);
}
function drawNotes(selection) {
@@ -99,16 +92,10 @@ export function svgNotes(projection, context, dispatch) {
layer.exit()
.remove();
var layerEnter = layer.enter()
layer.enter()
.append('g')
.attr('class', 'layer-notes')
.style('display', enabled ? 'block' : 'none');
layerEnter
.append('g')
.attr('class', 'notes');
layer = layerEnter
.style('display', enabled ? 'block' : 'none')
.merge(layer);
if (enabled) {