|
|
@ -16,9 +16,11 @@ |
|
|
variant="tertiary" |
|
|
variant="tertiary" |
|
|
@click="showPopover = !showPopover"> |
|
|
@click="showPopover = !showPopover"> |
|
|
<template v-if="isRecording || isStartingRecording" #icon> |
|
|
<template v-if="isRecording || isStartingRecording" #icon> |
|
|
<IconRecordCircleOutline |
|
|
|
|
|
:size="20" |
|
|
|
|
|
:fill-color="isRecording ? 'var(--color-border-error)' : 'var(--color-loading-light)'" /> |
|
|
|
|
|
|
|
|
<NcIconSvgWrapper |
|
|
|
|
|
class="call-time__recording-icon" |
|
|
|
|
|
:class="{ 'call-time__recording-icon--start': isStartingRecording }" |
|
|
|
|
|
:svg="IconScreenRecordOutline" |
|
|
|
|
|
:size="20" /> |
|
|
</template> |
|
|
</template> |
|
|
<span class="call-time__text"> |
|
|
<span class="call-time__text"> |
|
|
<span class="call-time__placeholder">{{ placeholderCallTime }}</span> |
|
|
<span class="call-time__placeholder">{{ placeholderCallTime }}</span> |
|
|
@ -60,10 +62,11 @@ |
|
|
<script> |
|
|
<script> |
|
|
import { t } from '@nextcloud/l10n' |
|
|
import { t } from '@nextcloud/l10n' |
|
|
import NcButton from '@nextcloud/vue/components/NcButton' |
|
|
import NcButton from '@nextcloud/vue/components/NcButton' |
|
|
|
|
|
import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' |
|
|
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' |
|
|
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' |
|
|
import NcPopover from '@nextcloud/vue/components/NcPopover' |
|
|
import NcPopover from '@nextcloud/vue/components/NcPopover' |
|
|
import IconRecordCircleOutline from 'vue-material-design-icons/RecordCircleOutline.vue' |
|
|
|
|
|
import IconStop from 'vue-material-design-icons/Stop.vue' |
|
|
import IconStop from 'vue-material-design-icons/Stop.vue' |
|
|
|
|
|
import IconScreenRecordOutline from '../../../img/material-icons/screen-record-outline.svg?raw' |
|
|
import { useDocumentVisibility } from '../../composables/useDocumentVisibility.ts' |
|
|
import { useDocumentVisibility } from '../../composables/useDocumentVisibility.ts' |
|
|
import { useGetToken } from '../../composables/useGetToken.ts' |
|
|
import { useGetToken } from '../../composables/useGetToken.ts' |
|
|
import { CALL } from '../../constants.ts' |
|
|
import { CALL } from '../../constants.ts' |
|
|
@ -76,9 +79,9 @@ export default { |
|
|
|
|
|
|
|
|
components: { |
|
|
components: { |
|
|
NcButton, |
|
|
NcButton, |
|
|
|
|
|
NcIconSvgWrapper, |
|
|
NcLoadingIcon, |
|
|
NcLoadingIcon, |
|
|
NcPopover, |
|
|
NcPopover, |
|
|
IconRecordCircleOutline, |
|
|
|
|
|
IconStop, |
|
|
IconStop, |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -94,6 +97,7 @@ export default { |
|
|
|
|
|
|
|
|
setup() { |
|
|
setup() { |
|
|
return { |
|
|
return { |
|
|
|
|
|
IconScreenRecordOutline, |
|
|
isDocumentVisible: useDocumentVisibility(), |
|
|
isDocumentVisible: useDocumentVisibility(), |
|
|
token: useGetToken(), |
|
|
token: useGetToken(), |
|
|
} |
|
|
} |
|
|
@ -241,6 +245,15 @@ export default { |
|
|
height: 0; |
|
|
height: 0; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
&__recording-icon { |
|
|
|
|
|
animation: pulse 2s infinite; |
|
|
|
|
|
color: var(--color-element-error, var(--color-error)); |
|
|
|
|
|
|
|
|
|
|
|
&--start { |
|
|
|
|
|
color: var(--color-loading-light); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
:deep(.button-vue) { |
|
|
:deep(.button-vue) { |
|
|
@ -253,4 +266,16 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@keyframes pulse { |
|
|
|
|
|
0% { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
|
|
|
50% { |
|
|
|
|
|
opacity: 0.7; |
|
|
|
|
|
} |
|
|
|
|
|
100% { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
</style> |
|
|
</style> |