From c8a291e26ceba38be6699b300d19f043ec7fb650 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Mon, 4 Jul 2022 17:04:41 +0200 Subject: [PATCH] Add click to CircleDiagram to scroll to LearningSequence --- client/src/components/circle/CircleDiagram.vue | 15 +++++++-------- client/src/components/circle/LearningSequence.vue | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/client/src/components/circle/CircleDiagram.vue b/client/src/components/circle/CircleDiagram.vue index 6e54004b..dcb2f49b 100644 --- a/client/src/components/circle/CircleDiagram.vue +++ b/client/src/components/circle/CircleDiagram.vue @@ -52,6 +52,7 @@ const pieData = computed(() => { pie.endAngle = pie.endAngle + Math.PI pie.arrowStartAngle = pie.endAngle + (pie.startAngle - pie.endAngle) / 2 pie.arrowEndAngle = pie.startAngle + (pie.startAngle - pie.endAngle) / 2 + pie.translation_key = thisLearningSequence.translation_key pie.done = someFinished(thisLearningSequence) }) angles = angles.reverse() @@ -77,8 +78,7 @@ function render() { const svg = d3.select('.circle-visualization') - .attr('width', width) - .attr('height', height) + .attr('viewBox', `0 0 ${width} ${height}`) // Append markter as definition to the svg svg.append("svg:defs").append("svg:marker") @@ -134,6 +134,10 @@ function render() { return d.done ? sky500 : gray300 }) }) + .on('click', function (d, elm) { + console.log('clicked on ', d, elm) + document.getElementById(elm.translation_key)?.scrollIntoView({behavior: 'smooth'}) + }) learningSequences .transition() @@ -212,11 +216,6 @@ function render() { return svg } -function viewBox() { - return `0 0 ${props.width} ${props.height}` -} - - @@ -224,7 +223,7 @@ function viewBox() {
- +
diff --git a/client/src/components/circle/LearningSequence.vue b/client/src/components/circle/LearningSequence.vue index a2578260..e82b21ce 100644 --- a/client/src/components/circle/LearningSequence.vue +++ b/client/src/components/circle/LearningSequence.vue @@ -25,7 +25,7 @@ const someFinished = computed(() => {