From 290a99722b0c097514a5d89699df2b9ff723ad5f Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Thu, 16 Dec 2021 11:16:05 +0400 Subject: [PATCH 1/3] Allow enabling or disabling interactivity of waveform --- src/components/AudioTrack/Waveform.vue | 52 ++++++++++++++----- src/components/AudioTrack/layouts/Row.vue | 2 +- .../AudioTrack/meta/Waveform.stories.mdx | 10 ++-- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/components/AudioTrack/Waveform.vue b/src/components/AudioTrack/Waveform.vue index 790f942ff0..7586e0e7ed 100644 --- a/src/components/AudioTrack/Waveform.vue +++ b/src/components/AudioTrack/Waveform.vue @@ -6,26 +6,20 @@ '--usable-height': `${Math.floor(usableFrac * 100)}%`, '--unusable-height': `${Math.floor((1 - usableFrac) * 100)}%`, }" - :tabIndex="!message && isReady ? 0 : -1" - :role="!message && isReady ? 'slider' : null" - :aria-disabled="!(!message && isReady)" + :tabIndex="isInteractive ? 0 : -1" + :role="isInteractive ? 'slider' : null" + :aria-disabled="!isInteractive" :aria-label="$t('waveform.label')" aria-orientation="horizontal" aria-valuemin="0" :aria-valuemax="duration" :aria-valuenow="currentTime" :aria-valuetext="currentTimeText" - @mousedown="handleMouseDown" - @mousemove="handleMouseMove" - @mouseup="handleMouseUp" - @mouseleave="handleMouseLeave" - @keydown.arrow-left.prevent="handleArrowKeys" - @keydown.arrow-right.prevent="handleArrowKeys" - @keydown.home.prevent="handlePosKeys(0)" - @keydown.end.prevent="handlePosKeys(1)" + v-on="eventHandlers" > - + diff --git a/src/components/AudioTrack/meta/Waveform.stories.mdx b/src/components/AudioTrack/meta/Waveform.stories.mdx index 43a3360db1..3ac32eaf0f 100644 --- a/src/components/AudioTrack/meta/Waveform.stories.mdx +++ b/src/components/AudioTrack/meta/Waveform.stories.mdx @@ -47,7 +47,7 @@ Here 9 points are upsampled to as many as required to fill the viewport. peaks: [0.5, 1, 0.5, 0, 0.5, 1, 0.5, 0, 0.5], // triangular wave with 9 points currentTime: 2, duration: 10, - features: ['timestamps', 'duration'], + features: ['timestamps', 'duration', 'seek'], }} > {Template.bind({})} @@ -68,7 +68,7 @@ Here 1000 points are downsampled to as many as required to fill the viewport. ), // sine wave with 1000 points currentTime: 2, duration: 10, - features: ['timestamps', 'duration'], + features: ['timestamps', 'duration', 'seek'], }} > {Template.bind({})} @@ -88,7 +88,7 @@ the `--waveform-background-color` CSS custom property on the component or on the peaks: [0.5, 1, 0.5, 0, 0.5], currentTime: 2, duration: 10, - features: ['timestamps', 'duration'], + features: ['timestamps', 'duration', 'seek'], style: { '--waveform-background-color': '#d7fcd4' }, }} > @@ -120,7 +120,7 @@ contains both the bars and the timestamps so the actual bar height is less than peaks: [0.5, 1, 0.5, 0, 0.5], currentTime: 2, duration: 10, - features: ['timestamps', 'duration'], + features: ['timestamps', 'duration', 'seek'], usableFrac: 0.5, }} > @@ -141,7 +141,7 @@ meet the design requirements and space/information density constraints. The peaks: [0.5, 1, 0.5, 0, 0.5], currentTime: 2, duration: 10, - features: ['timestamps', 'duration'], + features: ['timestamps', 'duration', 'seek'], }} > {Template.bind({})} From 909ef9ef264652c095a1acc885fbc98106afb3f1 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Thu, 16 Dec 2021 14:08:15 +0400 Subject: [PATCH 2/3] Add 'V-' prefix to all components associated with the audio track --- src/components/AudioDetails/Related.vue | 2 +- .../VAudioController.vue} | 20 +++-- .../VAudioTrack.vue} | 44 +++++----- .../VPlayPause.vue} | 8 +- .../VWaveform.vue} | 7 +- .../layouts/VBoxLayout.vue} | 12 +-- .../layouts/VFullLayout.vue} | 8 +- .../layouts/VGlobalLayout.vue} | 12 ++- .../layouts/VRowLayout.vue} | 13 +-- .../meta/VAudioTrack.stories.mdx} | 16 ++-- .../meta/VPlayPause.stories.mdx} | 16 ++-- .../meta/VWaveform.stories.mdx} | 8 +- .../meta/flac-waveform.json | 0 .../meta/mp3-waveform.json | 0 .../meta/ogg-waveform.json | 0 .../meta/wav-waveform.json | 0 src/locales/po-files/openverse.pot | 84 +++++++++---------- src/pages/audio/_id.vue | 2 +- src/pages/search/audio.vue | 6 +- 19 files changed, 137 insertions(+), 121 deletions(-) rename src/components/{AudioTrack/AudioController.vue => VAudioTrack/VAudioController.vue} (94%) rename src/components/{AudioTrack/AudioTrack.vue => VAudioTrack/VAudioTrack.vue} (72%) rename src/components/{AudioTrack/PlayPause.vue => VAudioTrack/VPlayPause.vue} (93%) rename src/components/{AudioTrack/Waveform.vue => VAudioTrack/VWaveform.vue} (99%) rename src/components/{AudioTrack/layouts/Box.vue => VAudioTrack/layouts/VBoxLayout.vue} (91%) rename src/components/{AudioTrack/layouts/Full.vue => VAudioTrack/layouts/VFullLayout.vue} (96%) rename src/components/{AudioTrack/layouts/Global.vue => VAudioTrack/layouts/VGlobalLayout.vue} (83%) rename src/components/{AudioTrack/layouts/Row.vue => VAudioTrack/layouts/VRowLayout.vue} (95%) rename src/components/{AudioTrack/meta/AudioTrack.stories.mdx => VAudioTrack/meta/VAudioTrack.stories.mdx} (95%) rename src/components/{AudioTrack/meta/PlayPause.stories.mdx => VAudioTrack/meta/VPlayPause.stories.mdx} (85%) rename src/components/{AudioTrack/meta/Waveform.stories.mdx => VAudioTrack/meta/VWaveform.stories.mdx} (94%) rename src/components/{AudioTrack => VAudioTrack}/meta/flac-waveform.json (100%) rename src/components/{AudioTrack => VAudioTrack}/meta/mp3-waveform.json (100%) rename src/components/{AudioTrack => VAudioTrack}/meta/ogg-waveform.json (100%) rename src/components/{AudioTrack => VAudioTrack}/meta/wav-waveform.json (100%) diff --git a/src/components/AudioDetails/Related.vue b/src/components/AudioDetails/Related.vue index b72d77ac82..06f207f942 100644 --- a/src/components/AudioDetails/Related.vue +++ b/src/components/AudioDetails/Related.vue @@ -4,7 +4,7 @@ {{ $t('audio-details.related-audios') }}