Ignore:
Timestamp:
2021-10-01T16:35:55+13:00 (3 years ago)
Author:
cstephen
Message:

Refactor the audio bar and transcription edit button to the TranscriptionItem component

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/model-interfaces-dev/atea/korero-maori-asr/src/components/TranscriptionItem.vue

    r35528 r35548  
    4343        <hr />
    4444
    45         <TranscriptionItemEditor ref="editor" :transcription="transcription" style="margin-bottom: 1em" />
     45        <TranscriptionItemEditor ref="editor" :transcription="transcription" style="margin-bottom: 1em" :enableEditing="enableEditing" />
     46
     47        <div class="editor-controls">
     48            <audio-time-bar v-model.number="currentPlaybackTime" :audio-length="audioLength" :isDisabled="playbackState.id != transcription.id" />
     49
     50            <toggle-button v-model="enableEditing" :title="translations.get('TranscriptionItemEditor_ToggleEditTooltip')">
     51                <span class="material-icons">edit</span>
     52            </toggle-button>
     53        </div>
    4654    </div>
    4755</template>
     
    7886}
    7987
    80 .expander-toggle {
    81     transition-duration: 0.4s;
     88.editor-controls {
     89    display: grid;
     90    align-items: center;
     91    grid-template-columns: 1fr auto;
     92    margin: 0.5em 0 0.3em 0;
     93    gap: 1em;
    8294}
    8395
     
    93105import AudioPlayback from "../js/AudioPlaybackModule"
    94106import Util from "../js/Util"
     107import AudioTimeBar from "./AudioTimeBar.vue"
    95108import TranscriptionItemEditor from "./TranscriptionItemEditor.vue"
    96109
     
    98111    name: "TranscriptionItem",
    99112    components: {
     113        AudioTimeBar,
    100114        TranscriptionItemEditor
    101115    },
     
    105119    data() {
    106120        return {
     121            enableEditing: false,
    107122            showDownloadOptions: false
    108123        }
    109124    },
    110     computed: mapState({
    111         translations: state => state.translations,
    112         isPlaying(state) {
    113             return state.playbackState.isPlaying && state.playbackState.id === this.transcription.id
    114         }
    115     }),
     125    computed: {
     126        currentPlaybackTime: {
     127            get() {
     128                return this.$store.getters.transcriptionPlaybackTime(this.transcription.id);
     129            },
     130            set(value) {
     131                this.$store.commit("playbackStateSetTime", { id: this.transcription.id, time: value });
     132            }
     133        },
     134        audioLength() {
     135            return this.$store.getters.transcriptionPlaybackLength(this.transcription.id);
     136        },
     137        isPlaying() {
     138            return this.playbackState.isPlaying && this.playbackState.id === this.transcription.id;
     139        },
     140        ...mapState({
     141            translations: state => state.translations,
     142            playbackState: state => state.playbackState
     143        })
     144    },
    116145    methods: {
    117146        async toggleAudio() {
Note: See TracChangeset for help on using the changeset viewer.