Changed all static inline style to CSS classes
This commit is contained in:
parent
128b19ef8f
commit
d9aac824ef
27 changed files with 179 additions and 112 deletions
20
src/assets/css/_utilities.scss
Normal file
20
src/assets/css/_utilities.scss
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
.cursor-pointer {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-transform-0 {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt-40 {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
.w-100 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.h-100 {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.white-space-pre {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
@import '~vuetify/src/styles/settings/_variables.scss';
|
@import '~vuetify/src/styles/settings/_variables.scss';
|
||||||
@import "@/assets/css/main.scss";
|
@import "@/assets/css/main.scss";
|
||||||
|
@import "@/assets/css/vendors/v-emoji-picker";
|
||||||
|
|
||||||
$admin-bg: black;
|
$admin-bg: black;
|
||||||
$admin-fg: white;
|
$admin-fg: white;
|
||||||
|
|
@ -37,6 +38,10 @@ $admin-fg: white;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.chat-header-members, .chat-header-name {
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
.num-members {
|
.num-members {
|
||||||
font-family: "Inter", sans-serif;
|
font-family: "Inter", sans-serif;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
|
@ -116,6 +121,8 @@ $admin-fg: white;
|
||||||
padding-left: $chat-standard-padding-s;
|
padding-left: $chat-standard-padding-s;
|
||||||
padding-bottom: $chat-standard-padding-s;
|
padding-bottom: $chat-standard-padding-s;
|
||||||
padding-right: $chat-standard-padding-s;
|
padding-right: $chat-standard-padding-s;
|
||||||
|
overflow: hidden auto;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 4px;
|
width: 4px;
|
||||||
}
|
}
|
||||||
|
|
@ -246,6 +253,10 @@ $admin-fg: white;
|
||||||
user-select: text;
|
user-select: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.message-wrapper {
|
||||||
|
position: relative; user-select: none
|
||||||
|
}
|
||||||
|
|
||||||
.messageIn {
|
.messageIn {
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
@ -544,9 +555,13 @@ $admin-fg: white;
|
||||||
font-family: "Inter", sans-serif;
|
font-family: "Inter", sans-serif;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 13 * $chat-text-size;
|
font-size: 13 * $chat-text-size;
|
||||||
|
flex: 1 0 80px;
|
||||||
}
|
}
|
||||||
.play-progress {
|
.play-progress {
|
||||||
padding: 0px 10px;
|
padding: 0px 10px;
|
||||||
|
flex: 1 1 100%;
|
||||||
|
height: 30px;
|
||||||
|
|
||||||
.v-slider__thumb {
|
.v-slider__thumb {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@ -794,6 +809,10 @@ $admin-fg: white;
|
||||||
color: #3d6eff;
|
color: #3d6eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filled-button {
|
||||||
|
min-width: 180px !important;
|
||||||
|
}
|
||||||
|
|
||||||
.v-card {
|
.v-card {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
|
@ -909,6 +928,7 @@ $admin-fg: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mic-button {
|
.mic-button {
|
||||||
|
z-index: 10;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
&.waiting-for-long-tap {
|
&.waiting-for-long-tap {
|
||||||
transition: background-color 0.5s;
|
transition: background-color 0.5s;
|
||||||
|
|
@ -931,6 +951,14 @@ $admin-fg: white;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: black;
|
background-color: black;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
.will-cancel, .locked, .error {
|
||||||
|
position: absolute !important;
|
||||||
|
top: 0 ;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0
|
||||||
|
}
|
||||||
.will-cancel {
|
.will-cancel {
|
||||||
background-color: #ff3300;
|
background-color: #ff3300;
|
||||||
}
|
}
|
||||||
|
|
@ -1080,3 +1108,13 @@ $admin-fg: white;
|
||||||
.recent-emoji {
|
.recent-emoji {
|
||||||
color: black;
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.current-image-input-path {
|
||||||
|
max-height: 50vh;
|
||||||
|
background-color: #e2e2e2
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-indicator {
|
||||||
|
position: absolute;
|
||||||
|
background-color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
@import './variables';
|
@import './variables';
|
||||||
|
@import './utilities';
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Inter";
|
font-family: "Inter";
|
||||||
|
|
|
||||||
4
src/assets/css/vendors/_v-emoji-picker.scss
vendored
Normal file
4
src/assets/css/vendors/_v-emoji-picker.scss
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#EmojiPicker {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
:style="{ top: `${isMove ? y : calcY()}px` }"
|
:style="{ top: `${isMove ? y : calcY()}px` }"
|
||||||
>
|
>
|
||||||
<div class="bottom-sheet-handle"><div class="bottom-sheet-handle-decoration" /></div>
|
<div class="bottom-sheet-handle"><div class="bottom-sheet-handle-decoration" /></div>
|
||||||
<div ref="sheetContent" style="position:absolute;top:20px;left:0;right:0;bottom:0;overflow-y:auto;padding:20px">
|
<div ref="sheetContent" class="sheetContent">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -143,6 +143,14 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import '~vuetify/src/styles/settings/_variables.scss';
|
@import '~vuetify/src/styles/settings/_variables.scss';
|
||||||
@import '@/assets/css/variables';
|
@import '@/assets/css/variables';
|
||||||
|
.sheetContent {
|
||||||
|
position:absolute;
|
||||||
|
top:20px;left:0;
|
||||||
|
right:0;
|
||||||
|
bottom:0;
|
||||||
|
overflow-y:auto;
|
||||||
|
padding:20px;
|
||||||
|
}
|
||||||
|
|
||||||
.bottom-sheet {
|
.bottom-sheet {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
<div
|
<div
|
||||||
class="chat-content flex-grow-1 flex-shrink-1"
|
class="chat-content flex-grow-1 flex-shrink-1"
|
||||||
ref="chatContainer"
|
ref="chatContainer"
|
||||||
style="overflow: hidden auto;"
|
|
||||||
v-on:scroll="onScroll"
|
v-on:scroll="onScroll"
|
||||||
@click="closeContextMenusIfOpen"
|
@click="closeContextMenusIfOpen"
|
||||||
>
|
>
|
||||||
|
|
@ -77,7 +76,7 @@
|
||||||
:ref="event.getId()"
|
:ref="event.getId()"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
style="position: relative; user-select: none"
|
class="message-wrapper"
|
||||||
v-on:touchstart="
|
v-on:touchstart="
|
||||||
(e) => {
|
(e) => {
|
||||||
touchStart(e, event);
|
touchStart(e, event);
|
||||||
|
|
@ -226,7 +225,6 @@
|
||||||
small
|
small
|
||||||
elevation="0"
|
elevation="0"
|
||||||
v-blur
|
v-blur
|
||||||
style="z-index: 10"
|
|
||||||
v-longTap:250="[showRecordingUI, startRecording]"
|
v-longTap:250="[showRecordingUI, startRecording]"
|
||||||
>
|
>
|
||||||
<v-icon :color="showRecorder ? 'white' : 'black'">mic</v-icon>
|
<v-icon :color="showRecorder ? 'white' : 'black'">mic</v-icon>
|
||||||
|
|
@ -239,7 +237,6 @@
|
||||||
small
|
small
|
||||||
elevation="0"
|
elevation="0"
|
||||||
v-blur
|
v-blur
|
||||||
style="z-index: 10"
|
|
||||||
@click.stop="showNoRecordingAvailableDialog = true"
|
@click.stop="showNoRecordingAvailableDialog = true"
|
||||||
>
|
>
|
||||||
<v-icon :color="showRecorder ? 'white' : 'black'">mic</v-icon>
|
<v-icon :color="showRecorder ? 'white' : 'black'">mic</v-icon>
|
||||||
|
|
@ -299,7 +296,7 @@
|
||||||
name="attachment"
|
name="attachment"
|
||||||
@change="handlePickedAttachment($event)"
|
@change="handlePickedAttachment($event)"
|
||||||
accept="image/*|audio/*|video/*|application/pdf"
|
accept="image/*|audio/*|video/*|application/pdf"
|
||||||
style="display: none"
|
class="d-none"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
@ -327,7 +324,7 @@
|
||||||
:aspect-ratio="1"
|
:aspect-ratio="1"
|
||||||
:src="currentImageInput.image"
|
:src="currentImageInput.image"
|
||||||
contain
|
contain
|
||||||
style="max-height: 50vh; background-color: #e2e2e2"
|
class="current-image-input-path"
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
file: {{ currentImageInputPath.name }}
|
file: {{ currentImageInputPath.name }}
|
||||||
|
|
@ -390,7 +387,6 @@
|
||||||
|
|
||||||
<MessageOperationsBottomSheet
|
<MessageOperationsBottomSheet
|
||||||
ref="messageOperationsSheet"
|
ref="messageOperationsSheet"
|
||||||
style="background-color: #f776777"
|
|
||||||
>
|
>
|
||||||
<MessageOperationsPicker
|
<MessageOperationsPicker
|
||||||
v-on:close="showEmojiPicker = false"
|
v-on:close="showEmojiPicker = false"
|
||||||
|
|
@ -405,22 +401,20 @@
|
||||||
/>
|
/>
|
||||||
<VEmojiPicker
|
<VEmojiPicker
|
||||||
ref="emojiPicker"
|
ref="emojiPicker"
|
||||||
style="width: 100%; background-color: #ffffff"
|
|
||||||
@select="emojiSelected"
|
@select="emojiSelected"
|
||||||
/>
|
/>
|
||||||
</MessageOperationsBottomSheet>
|
</MessageOperationsBottomSheet>
|
||||||
|
|
||||||
<StickerPickerBottomSheet
|
<StickerPickerBottomSheet
|
||||||
ref="stickerPickerSheet"
|
ref="stickerPickerSheet"
|
||||||
style="z-index: 10"
|
|
||||||
v-on:selectSticker="sendSticker"
|
v-on:selectSticker="sendSticker"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- Loading indicator -->
|
<!-- Loading indicator -->
|
||||||
<v-container
|
<v-container
|
||||||
fluid
|
fluid
|
||||||
|
class="loading-indicator"
|
||||||
fill-height
|
fill-height
|
||||||
style="position: absolute; background-color: rgba(0, 0, 0, 0.2)"
|
|
||||||
v-if="!initialLoadDone || loading"
|
v-if="!initialLoadDone || loading"
|
||||||
>
|
>
|
||||||
<v-row align="center" justify="center">
|
<v-row align="center" justify="center">
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
<v-col
|
<v-col
|
||||||
cols="auto"
|
cols="auto"
|
||||||
class="chat-header-members text-start ma-0 pa-0"
|
class="chat-header-members text-start ma-0 pa-0"
|
||||||
style="overflow: hidden; cursor: pointer"
|
|
||||||
@click.stop="onHeaderClicked"
|
@click.stop="onHeaderClicked"
|
||||||
>
|
>
|
||||||
<v-avatar size="40" class="me-2">
|
<v-avatar size="40" class="me-2">
|
||||||
|
|
@ -13,8 +12,7 @@
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
||||||
<v-col
|
<v-col
|
||||||
class="ma-0 pa-0 flex-shrink-1 flex-nowrap"
|
class="chat-header-name ma-0 pa-0 flex-shrink-1 flex-nowrap"
|
||||||
style="overflow: hidden; cursor: pointer"
|
|
||||||
@click.stop="onHeaderClicked"
|
@click.stop="onHeaderClicked"
|
||||||
>
|
>
|
||||||
<div class="room-name-inline text-truncate" :title="room.name">
|
<div class="room-name-inline text-truncate" :title="room.name">
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-container>
|
</v-container>
|
||||||
|
|
||||||
<v-container fluid style="margin-top: 40px">
|
<v-container fluid class="mt-40">
|
||||||
<v-row align="center">
|
<v-row align="center">
|
||||||
<v-col align="center">
|
<v-col align="center">
|
||||||
<v-avatar size="50" color="#ededed" @click.stop="showAvatarPicker">
|
<v-avatar size="50" color="#ededed" @click.stop="showAvatarPicker">
|
||||||
|
|
@ -210,7 +210,7 @@
|
||||||
name="avatar"
|
name="avatar"
|
||||||
@change="handlePickedAvatar($event)"
|
@change="handlePickedAvatar($event)"
|
||||||
accept="image/*"
|
accept="image/*"
|
||||||
style="display: none"
|
class="d-none"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@
|
||||||
{{ roomHistoryDescription }}
|
{{ roomHistoryDescription }}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
<v-btn id="btn-got-it" text @click.stop="$emit('close')" style="text-transform: none">{{
|
<v-btn id="btn-got-it" text @click.stop="$emit('close')" class="text-transform-0">
|
||||||
$t("room_welcome.got_it")
|
{{ $t("room_welcome.got_it") }}
|
||||||
}}</v-btn>
|
</v-btn>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="home">
|
<div class="home">
|
||||||
<YouAre class="mt-4" v-if="!loading" />
|
<YouAre class="mt-4" />
|
||||||
<v-container fluid class="text-center mt-8">
|
<v-container fluid class="text-center mt-8">
|
||||||
<v-row align="center" justify="center">
|
<v-row align="center" justify="center">
|
||||||
<v-col class="text-center" cols="auto">
|
<v-col class="text-center" cols="auto">
|
||||||
|
|
@ -26,8 +26,8 @@
|
||||||
<v-container
|
<v-container
|
||||||
fluid
|
fluid
|
||||||
fill-height
|
fill-height
|
||||||
style="position: absolute; background-color: rgba(0, 0, 0, 0.2)"
|
|
||||||
v-if="loading"
|
v-if="loading"
|
||||||
|
class="loading-indicator"
|
||||||
>
|
>
|
||||||
<v-row align="center" justify="center">
|
<v-row align="center" justify="center">
|
||||||
<v-col class="text-center">
|
<v-col class="text-center">
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="d-flex flex-column pa-4" style="overflow: hidden">
|
<div class="d-flex flex-column pa-4 overflow-hidden invite">
|
||||||
<div class="flex-grow-0 flex-shrink-0">
|
<div class="flex-grow-0 flex-shrink-0">
|
||||||
<div class="room-name">{{$t('invite.title')}}</div>
|
<div class="room-name">{{$t('invite.title')}}</div>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
|
@ -13,10 +13,7 @@
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="flex-grow-0 flex-shrink-0 chip-group-wrapper">
|
||||||
class="flex-grow-0 flex-shrink-0"
|
|
||||||
style="min-height: 100px; max-height: 30vh"
|
|
||||||
>
|
|
||||||
<div class="h4">{{$t('invite.send_invites_to')}}</div>
|
<div class="h4">{{$t('invite.send_invites_to')}}</div>
|
||||||
<div>{{ status }}</div>
|
<div>{{ status }}</div>
|
||||||
<v-chip-group active-class="primary--text" column>
|
<v-chip-group active-class="primary--text" column>
|
||||||
|
|
@ -32,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-grow-1 flex-shrink-1">
|
<div class="flex-grow-1 flex-shrink-1">
|
||||||
<v-list class="member ma-2" style="overflow-y: auto">
|
<v-list class="member ma-2">
|
||||||
<v-list-item-group multiple v-model="selectedMembers">
|
<v-list-item-group multiple v-model="selectedMembers">
|
||||||
<v-list-item
|
<v-list-item
|
||||||
v-for="member in $matrix.getAllFriends()"
|
v-for="member in $matrix.getAllFriends()"
|
||||||
|
|
@ -168,5 +165,14 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/assets/css/chat.scss";
|
@import "@/assets/css/chat.scss";
|
||||||
|
.invite {
|
||||||
|
.chip-group-wrapper {
|
||||||
|
min-height: 100px;
|
||||||
|
max-height: 30vh;
|
||||||
|
}
|
||||||
|
.member {
|
||||||
|
overflow-y: auto !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -38,8 +38,8 @@
|
||||||
<v-row v-else class="text-center">
|
<v-row v-else class="text-center">
|
||||||
<v-col>
|
<v-col>
|
||||||
{{ $t("join.joining_as") }}
|
{{ $t("join.joining_as") }}
|
||||||
<div style="display: inline-block">
|
<div class="d-inline-block">
|
||||||
<v-avatar color="#e0e0e0" style="">
|
<v-avatar color="#e0e0e0">
|
||||||
<v-img v-if="userAvatar" :src="userAvatar" />
|
<v-img v-if="userAvatar" :src="userAvatar" />
|
||||||
<span v-else class="white--text headline">{{
|
<span v-else class="white--text headline">{{
|
||||||
userAvatarLetter
|
userAvatarLetter
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,7 @@
|
||||||
<div
|
<div
|
||||||
v-show="!closed"
|
v-show="!closed"
|
||||||
@click.stop="backgroundClick"
|
@click.stop="backgroundClick"
|
||||||
style="
|
class="transition-bg"
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
background-color: rgba(0, 0, 0, 0.15);
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
</v-fade-transition>
|
</v-fade-transition>
|
||||||
<SwipeableBottomSheet
|
<SwipeableBottomSheet
|
||||||
|
|
@ -86,6 +79,14 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-operations-bottom-sheet {
|
.message-operations-bottom-sheet {
|
||||||
|
.transition-bg {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
.pan-area {
|
.pan-area {
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
name="avatar"
|
name="avatar"
|
||||||
@change="handlePickedAvatar($event)"
|
@change="handlePickedAvatar($event)"
|
||||||
accept="image/*"
|
accept="image/*"
|
||||||
style="display: none"
|
class="d-none"
|
||||||
/>
|
/>
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
|
|
||||||
|
|
@ -62,13 +62,10 @@
|
||||||
<a :href="'//'+productLink">{{ productLink }}</a>
|
<a :href="'//'+productLink">{{ productLink }}</a>
|
||||||
</template>
|
</template>
|
||||||
</i18n>
|
</i18n>
|
||||||
<div
|
<div class="text-end">
|
||||||
style="position: relative; width: 100%; height: 40px"
|
<v-btn id="btn-new-room" class="new_room" text @click="createRoom">
|
||||||
class="text-end"
|
{{ $t("profile_info_popup.new_room") }}
|
||||||
>
|
</v-btn>
|
||||||
<v-btn id="btn-new-room" class="new_room" text @click="createRoom">{{
|
|
||||||
$t("profile_info_popup.new_room")
|
|
||||||
}}</v-btn>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<v-dialog v-model="showDialog" class="ma-0 pa-0" width="80%">
|
<v-dialog
|
||||||
|
v-model="showDialog"
|
||||||
|
class="ma-0 pa-0"
|
||||||
|
:width="$vuetify.breakpoint.smAndUp ? '940px' : '95%'"
|
||||||
|
>
|
||||||
<div class="dialog-content text-center" ref="qrContainer">
|
<div class="dialog-content text-center" ref="qrContainer">
|
||||||
<div class="d-flex flex-column text-center" style="align-items: center">
|
<div class="d-flex justify-center">
|
||||||
<canvas ref="qr" class="qr" id="qr" :style="qrStyle"></canvas>
|
<canvas ref="qr" class="qr" id="qr" :style="qrStyle"></canvas>
|
||||||
</div>
|
</div>
|
||||||
<div>{{ $t("room_info.scan_code") }}</div>
|
<div>{{ $t("room_info.scan_code") }}</div>
|
||||||
|
|
|
||||||
|
|
@ -3,21 +3,9 @@
|
||||||
<transition name="slow-fade">
|
<transition name="slow-fade">
|
||||||
<div
|
<div
|
||||||
v-if="mounted"
|
v-if="mounted"
|
||||||
style="
|
class="text-center d-flex flex-column goodbye-wrapper"
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 100;
|
|
||||||
background-color: black;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 40px;
|
|
||||||
"
|
|
||||||
class="text-center d-flex flex-column"
|
|
||||||
>
|
>
|
||||||
<div v-if="roomWasPurged" style="width: 28px">
|
<div v-if="roomWasPurged">
|
||||||
<v-img src="@/assets/icons/trash.svg" />
|
<v-img src="@/assets/icons/trash.svg" />
|
||||||
</div>
|
</div>
|
||||||
<h2 v-if="roomWasPurged" class="white--text mt-2 mb-8">
|
<h2 v-if="roomWasPurged" class="white--text mt-2 mb-8">
|
||||||
|
|
@ -51,16 +39,7 @@
|
||||||
<transition name="slow-fade">
|
<transition name="slow-fade">
|
||||||
<div
|
<div
|
||||||
v-if="mounted"
|
v-if="mounted"
|
||||||
style="
|
class="goodbye-profile"
|
||||||
position: fixed;
|
|
||||||
top: 24px;
|
|
||||||
right: 24px;
|
|
||||||
z-index: 101;
|
|
||||||
padding: 10px 20px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 25px;
|
|
||||||
background-color: #242424;
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<div class="d-inline-block me-2 white--text">
|
<div class="d-inline-block me-2 white--text">
|
||||||
{{ $t("profile_info_popup.you_are") }}
|
{{ $t("profile_info_popup.you_are") }}
|
||||||
|
|
@ -157,22 +136,44 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/assets/css/chat.scss";
|
@import "@/assets/css/chat.scss";
|
||||||
|
|
||||||
.author {
|
.author {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.close {
|
.close {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 40px;
|
bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slow-fade-enter-active,
|
.slow-fade-enter-active,
|
||||||
.slow-fade-leave-active {
|
.slow-fade-leave-active {
|
||||||
transition: opacity 2.5s;
|
transition: opacity 2.5s;
|
||||||
}
|
}
|
||||||
.slow-fade-enter, .slow-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
|
.slow-fade-enter, .slow-fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
</style>
|
.goodbye-wrapper {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 100;
|
||||||
|
background-color: black;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
.goodbye-profile {
|
||||||
|
position: fixed;
|
||||||
|
top: 24px;
|
||||||
|
right: 24px;
|
||||||
|
z-index: 101;
|
||||||
|
padding: 10px 20px;
|
||||||
|
height: 50px;
|
||||||
|
border-radius: 25px;
|
||||||
|
background-color: #242424;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -61,7 +61,6 @@
|
||||||
color="#DEE6FF"
|
color="#DEE6FF"
|
||||||
depressed
|
depressed
|
||||||
class="filled-button link-copied-in-place"
|
class="filled-button link-copied-in-place"
|
||||||
style="min-width: 180px"
|
|
||||||
>{{ $t("room_info.link_copied") }}</v-btn
|
>{{ $t("room_info.link_copied") }}</v-btn
|
||||||
>
|
>
|
||||||
<v-btn
|
<v-btn
|
||||||
|
|
@ -70,7 +69,6 @@
|
||||||
color="black"
|
color="black"
|
||||||
depressed
|
depressed
|
||||||
class="filled-button"
|
class="filled-button"
|
||||||
style="min-width: 180px"
|
|
||||||
@click.stop="copyRoomLink"
|
@click.stop="copyRoomLink"
|
||||||
>{{ $t("room_info.copy_link") }}</v-btn
|
>{{ $t("room_info.copy_link") }}</v-btn
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,6 @@
|
||||||
v-for="room in joinedRooms"
|
v-for="room in joinedRooms"
|
||||||
:key="room.roomId"
|
:key="room.roomId"
|
||||||
:value="room.roomId"
|
:value="room.roomId"
|
||||||
style="position: relative"
|
|
||||||
>
|
>
|
||||||
<v-list-item-avatar size="40" color="#e0e0e0">
|
<v-list-item-avatar size="40" color="#e0e0e0">
|
||||||
<v-img :src="room.avatar" />
|
<v-img :src="room.avatar" />
|
||||||
|
|
|
||||||
|
|
@ -65,13 +65,17 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/assets/css/chat.scss";
|
@import "@/assets/css/chat.scss";
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.sticker-picker .tabs {
|
.sticker-picker {
|
||||||
position: sticky;
|
z-index: 10;
|
||||||
top: 0px;
|
|
||||||
z-index: 1;
|
.tabs {
|
||||||
}
|
position: sticky;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
:class="{ 'voice-recorder': true, ptt: ptt, row: !ptt }"
|
:class="{ 'voice-recorder': true, ptt: ptt, row: !ptt }"
|
||||||
ref="vrroot"
|
ref="vrroot"
|
||||||
>
|
>
|
||||||
<!-- <div style="background-color:red;height:60px;width:100%"/> -->
|
|
||||||
<v-container v-if="!ptt" fluid fill-height>
|
<v-container v-if="!ptt" fluid fill-height>
|
||||||
<v-row align="center" class="mt-3">
|
<v-row align="center" class="mt-3">
|
||||||
<v-col cols="4" align="center">
|
<v-col cols="4" align="center">
|
||||||
|
|
@ -69,7 +68,6 @@
|
||||||
<div
|
<div
|
||||||
v-if="willCancel"
|
v-if="willCancel"
|
||||||
class="will-cancel"
|
class="will-cancel"
|
||||||
style="position: absolute; top: 0; left: 0; right: 0; bottom: 0"
|
|
||||||
>
|
>
|
||||||
<v-container fluid fill-height>
|
<v-container fluid fill-height>
|
||||||
<v-row align="center">
|
<v-row align="center">
|
||||||
|
|
@ -90,7 +88,6 @@
|
||||||
<div
|
<div
|
||||||
v-if="recordingLocked"
|
v-if="recordingLocked"
|
||||||
class="locked"
|
class="locked"
|
||||||
style="position: absolute; top: 0; left: 0; right: 0; bottom: 0"
|
|
||||||
>
|
>
|
||||||
<v-container fluid fill-height>
|
<v-container fluid fill-height>
|
||||||
<v-row align="center">
|
<v-row align="center">
|
||||||
|
|
@ -117,7 +114,6 @@
|
||||||
<div
|
<div
|
||||||
v-if="state == states.ERROR"
|
v-if="state == states.ERROR"
|
||||||
class="error"
|
class="error"
|
||||||
style="position: absolute; top: 0; left: 0; right: 0; bottom: 0"
|
|
||||||
>
|
>
|
||||||
<v-container fluid fill-height>
|
<v-container fluid fill-height>
|
||||||
<v-row align="center">
|
<v-row align="center">
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,10 @@
|
||||||
<div class="d-flex flex-row-reverse">
|
<div class="d-flex flex-row-reverse">
|
||||||
<v-chip
|
<v-chip
|
||||||
@click="viewProfile"
|
@click="viewProfile"
|
||||||
class="ma-2"
|
class="ma-2 white-space-pre"
|
||||||
:color="dark ? 'black' : '#ededed'"
|
:color="dark ? 'black' : '#ededed'"
|
||||||
:text-color="dark ? 'white' : 'black'"
|
:text-color="dark ? 'white' : 'black'"
|
||||||
:outlined="!dark"
|
:outlined="!dark"
|
||||||
style="white-space: pre"
|
|
||||||
>{{ $t("profile_info_popup.you_are") }}
|
>{{ $t("profile_info_popup.you_are") }}
|
||||||
<span v-if="$matrix.currentUser.is_guest">
|
<span v-if="$matrix.currentUser.is_guest">
|
||||||
<i18n path="profile_info_popup.identity_temporary" tag="span">
|
<i18n path="profile_info_popup.identity_temporary" tag="span">
|
||||||
|
|
@ -56,4 +55,4 @@ export default {
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "@/assets/css/chat.scss";
|
@import "@/assets/css/chat.scss";
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="audio-player d-flex flex-row" style="align-items: center">
|
<div class="audio-player d-flex flex-row align-center">
|
||||||
<audio ref="player" :src="src" @durationchange="updateDuration">
|
<audio ref="player" :src="src" @durationchange="updateDuration">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</audio>
|
</audio>
|
||||||
|
|
@ -9,15 +9,14 @@
|
||||||
<v-btn v-else id="btn-play" @click.stop="play" icon
|
<v-btn v-else id="btn-play" @click.stop="play" icon
|
||||||
><v-icon size="20">play_arrow</v-icon></v-btn
|
><v-icon size="20">play_arrow</v-icon></v-btn
|
||||||
>
|
>
|
||||||
<div class="play-time" style="flex: 1 0 80px">
|
<div class="play-time">
|
||||||
{{ currentTime }} / {{ totalTime }}
|
{{ currentTime }} / {{ totalTime }}
|
||||||
</div>
|
</div>
|
||||||
<v-slider
|
<v-slider
|
||||||
color="currentColor"
|
color="currentColor"
|
||||||
track-color="#cccccc"
|
track-color="#cccccc"
|
||||||
class="play-progress"
|
class="play-progress"
|
||||||
v-model="playheadPercent"
|
v-model="playheadPercent"
|
||||||
style="flex: 1 1 100%; height: 30px"
|
|
||||||
min="0"
|
min="0"
|
||||||
max="100"
|
max="100"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<div class="message">
|
<div class="message">
|
||||||
<span>{{ $t('message.file_prefix') }}</span>
|
<span>{{ $t('message.file_prefix') }}</span>
|
||||||
<span
|
<span
|
||||||
style="cursor: pointer"
|
class="cursor-pointer"
|
||||||
@click.stop="$emit('download')"
|
@click.stop="$emit('download')"
|
||||||
v-html="linkify($sanitize(messageText))"
|
v-html="linkify($sanitize(messageText))"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<message-incoming v-bind="{ ...$props, ...$attrs }" v-on="$listeners">
|
<message-incoming v-bind="{ ...$props, ...$attrs }" v-on="$listeners">
|
||||||
<div class="bubble image-bubble">
|
<div class="bubble image-bubble">
|
||||||
<v-responsive :aspect-ratio="16 / 9" :src="src">
|
<v-responsive :aspect-ratio="16 / 9" :src="src">
|
||||||
<video :src="src" controls style="width: 100%; height: 100%">
|
<video :src="src" controls class="w-100 h-100">
|
||||||
{{$t('fallbacks.video_file')}}
|
{{$t('fallbacks.video_file')}}
|
||||||
</video>
|
</video>
|
||||||
<div v-if="downloadProgress" class="download-overlay">
|
<div v-if="downloadProgress" class="download-overlay">
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="message">
|
<div class="message">
|
||||||
<span>{{ $t('message.file_prefix') }}</span>
|
<span>{{ $t('message.file_prefix') }}</span>
|
||||||
<span
|
<span
|
||||||
style="cursor: pointer"
|
class="cursor-pointer"
|
||||||
@click.stop="$emit('download')"
|
@click.stop="$emit('download')"
|
||||||
v-html="linkify($sanitize(messageText))"
|
v-html="linkify($sanitize(messageText))"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<message-outgoing v-bind="{ ...$props, ...$attrs }" v-on="$listeners">
|
<message-outgoing v-bind="{ ...$props, ...$attrs }" v-on="$listeners">
|
||||||
<div class="bubble image-bubble">
|
<div class="bubble image-bubble">
|
||||||
<v-responsive :aspect-ratio="16 / 9" class="ma-0 pa-0">
|
<v-responsive :aspect-ratio="16 / 9" class="ma-0 pa-0">
|
||||||
<video :src="src" controls style="width: 100%; height: 100%">
|
<video :src="src" controls class="w-100 h-100">
|
||||||
{{$t('fallbacks.video_file')}}
|
{{$t('fallbacks.video_file')}}
|
||||||
</video>
|
</video>
|
||||||
</v-responsive>
|
</v-responsive>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue