From 9a0409093eac59e589e27430b2fd9a5a3dab8009 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 28 Aug 2020 16:54:37 +0200 Subject: speaker icon on paragraphs --- .../frontend/app/views/viewer/nav/viewer.icons.js | 2 +- .../viewer/player/components.inline/inline.text.js | 5 +++- .../app/views/viewer/player/player.transcript.css | 30 ++++++++++++++++++++++ .../app/views/viewer/player/player.transcript.js | 5 ++-- 4 files changed, 38 insertions(+), 4 deletions(-) (limited to 'animism-align/frontend/app') diff --git a/animism-align/frontend/app/views/viewer/nav/viewer.icons.js b/animism-align/frontend/app/views/viewer/nav/viewer.icons.js index 455df6f..57478a0 100644 --- a/animism-align/frontend/app/views/viewer/nav/viewer.icons.js +++ b/animism-align/frontend/app/views/viewer/nav/viewer.icons.js @@ -98,4 +98,4 @@ export const SpeakerIcon = ( -) \ No newline at end of file +) diff --git a/animism-align/frontend/app/views/viewer/player/components.inline/inline.text.js b/animism-align/frontend/app/views/viewer/player/components.inline/inline.text.js index 5d7135b..91ea506 100644 --- a/animism-align/frontend/app/views/viewer/player/components.inline/inline.text.js +++ b/animism-align/frontend/app/views/viewer/player/components.inline/inline.text.js @@ -1,21 +1,24 @@ import React, { Component } from 'react' import { ROMAN_NUMERALS } from 'app/constants' +import { SpeakerIcon } from '../../nav/viewer.icons' export const Paragraph = ({ paragraph, currentParagraph, currentAnnotation, onAnnotationClick }) => { if (paragraph.hidden) return null let className = paragraph.type if (className !== 'paragraph') className += ' paragraph' if (currentParagraph) className += ' current' + const firstAnnotation = paragraph.annotations[0] return (
+
onAnnotationClick(e, paragraph, firstAnnotation)}>{SpeakerIcon}
{paragraph.annotations.map(annotation => ( onAnnotationClick(e, paragraph, annotation)} + onClick={e => onAnnotationClick(e, paragraph, firstAnnotation)} dangerouslySetInnerHTML={{ __html: ' ' + annotation.text + ' ' }} /> ))} diff --git a/animism-align/frontend/app/views/viewer/player/player.transcript.css b/animism-align/frontend/app/views/viewer/player/player.transcript.css index 9ca426e..47925ef 100644 --- a/animism-align/frontend/app/views/viewer/player/player.transcript.css +++ b/animism-align/frontend/app/views/viewer/player/player.transcript.css @@ -112,6 +112,36 @@ transition: all 0.1s; } +.player-transcript .paragraph { + position: relative; +} +.speaker-icon { + position: absolute; + top: 0; + left: -5.5rem; + display: flex; + justify-content: center; + align-items: center; + opacity: 0; + transition: opacity 0.2s; + padding: 1.5rem; +} +.intro_paragraph .speaker-icon { + top: -0.75rem; +} +.speaker-icon svg { + background: black; + border-radius: 50%; + width: 2.5rem; + height: 2.5rem; +} +.speaker-icon svg path { + fill: white; +} +.paragraph:hover .speaker-icon { + opacity: 1; +} + /* media */ .player-transcript .media { diff --git a/animism-align/frontend/app/views/viewer/player/player.transcript.js b/animism-align/frontend/app/views/viewer/player/player.transcript.js index cee70a8..c079d42 100644 --- a/animism-align/frontend/app/views/viewer/player/player.transcript.js +++ b/animism-align/frontend/app/views/viewer/player/player.transcript.js @@ -28,8 +28,9 @@ class PlayerTranscript extends Component { } handleAnnotationClick(e, paragraph, annotation) { - console.log(annotation) - // actions.audio.seek(annotation.start_ts) + // console.log(annotation) + actions.audio.seek(annotation.start_ts) + actions.audio.play() } handleParagraphDoubleClick(e, paragraph) { -- cgit v1.2.3-70-g09d2