v0.28.80
Fix: issue with new chats throwing error when first initiated Fix: issue chat preview in personalise didn't show chat background
This commit is contained in:
parent
bc4dbf6c03
commit
971c5dc5b3
48
css/main.css
48
css/main.css
@ -508,14 +508,16 @@ sm-button.danger {
|
||||
place-content: center;
|
||||
justify-items: center;
|
||||
}
|
||||
#loading_page svg {
|
||||
|
||||
.page__loader {
|
||||
z-index: 1;
|
||||
transform-origin: bottom;
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
animation: bounce 0.5s infinite alternate ease-in;
|
||||
}
|
||||
#loading_page .shadow {
|
||||
|
||||
.shadow {
|
||||
margin-top: -1rem;
|
||||
width: 5rem;
|
||||
height: 2rem;
|
||||
@ -524,7 +526,8 @@ sm-button.danger {
|
||||
animation: scale 0.5s infinite alternate ease-in;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
#loading_page h4 {
|
||||
|
||||
.page__tag-line {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
@ -1045,7 +1048,7 @@ sm-button.danger {
|
||||
text-align: center;
|
||||
}
|
||||
#contacts #contacts_container {
|
||||
padding-bottom: 6rem;
|
||||
padding-bottom: 1.5rem;
|
||||
}
|
||||
#contacts #contacts_container::before {
|
||||
display: flex;
|
||||
@ -1107,14 +1110,9 @@ sm-button.danger {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#contacts .header sm-input .icon, #mails .header sm-input .icon, #settings_page .header sm-input .icon {
|
||||
stroke: rgba(var(--text-color), 0.5);
|
||||
height: 0.9rem;
|
||||
width: 0.9rem;
|
||||
}
|
||||
#contacts .header sm-input::part(input), #mails .header sm-input::part(input), #settings_page .header sm-input::part(input) {
|
||||
border-radius: 0.5rem;
|
||||
padding: 0.2rem 0.8rem;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
#contacts .header h4, #mails .header h4, #settings_page .header h4 {
|
||||
text-transform: capitalize;
|
||||
@ -1122,6 +1120,7 @@ sm-button.danger {
|
||||
}
|
||||
#contacts .header .icon, #mails .header .icon, #settings_page .header .icon {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
#contacts .header .flex .hamburger-menu-button, #mails .header .flex .hamburger-menu-button, #settings_page .header .flex .hamburger-menu-button {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
@ -1615,7 +1614,7 @@ sm-panel {
|
||||
.has-bg-image .received,
|
||||
.has-bg-image .group-event-card,
|
||||
.has-bg-image .date-card {
|
||||
background: rgba(var(--foreground-color), 0.6);
|
||||
background: rgba(var(--foreground-color), 0.8);
|
||||
}
|
||||
.has-bg-image .received::after {
|
||||
border-color: transparent rgba(var(--foreground-color), 0.6) transparent transparent;
|
||||
@ -1728,6 +1727,11 @@ sm-panel {
|
||||
margin: 0.5rem 0 1.5rem 0;
|
||||
width: min(60ch, 100%);
|
||||
}
|
||||
#settings_page #chat_preview {
|
||||
margin-top: 1rem;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
#settings_page #bg_preview_container {
|
||||
padding: 1rem 0;
|
||||
gap: 0.5rem;
|
||||
@ -1744,20 +1748,17 @@ sm-panel {
|
||||
overflow: hidden;
|
||||
background: rgba(var(--text-color), 0.1);
|
||||
}
|
||||
#settings_page .bg-preview img {
|
||||
object-fit: cover;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
#settings_page .bg-preview.selected::after {
|
||||
#settings_page .bg-preview--selected::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
box-shadow: 0 0 0 0.5rem rgba(var(--text-color), 0.8) inset;
|
||||
}
|
||||
#settings_page #selected_bg_preview[src=""] {
|
||||
display: none;
|
||||
#settings_page .bg-preview__image {
|
||||
object-fit: cover;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#video_call_page {
|
||||
@ -1769,16 +1770,19 @@ sm-panel {
|
||||
object-fit: cover;
|
||||
object-position: center;
|
||||
}
|
||||
#video_call_page #their_video {
|
||||
|
||||
#their_video {
|
||||
height: 100%;
|
||||
}
|
||||
#video_call_page #my_video {
|
||||
|
||||
#my_video {
|
||||
width: max(20vh, 12rem);
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
#video_call_page #call_controls {
|
||||
|
||||
#call_controls {
|
||||
padding: 1.5rem;
|
||||
margin-top: auto;
|
||||
justify-self: center;
|
||||
|
||||
2
css/main.min.css
vendored
2
css/main.min.css
vendored
File diff suppressed because one or more lines are too long
@ -457,25 +457,25 @@ sm-button.danger{
|
||||
display: grid;
|
||||
place-content: center;
|
||||
justify-items: center;
|
||||
svg{
|
||||
z-index: 1;
|
||||
transform-origin: bottom;
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
animation: bounce 0.5s infinite alternate ease-in;
|
||||
}
|
||||
.shadow{
|
||||
margin-top: -1rem;
|
||||
width: 5rem;
|
||||
height: 2rem;
|
||||
background: rgba(var(--text-color), 0.1);
|
||||
border-radius: 50%;
|
||||
animation: scale 0.5s infinite alternate ease-in;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
h4{
|
||||
margin-top: 2rem;
|
||||
}
|
||||
}
|
||||
.page__loader{
|
||||
z-index: 1;
|
||||
transform-origin: bottom;
|
||||
height: 6rem;
|
||||
width: 6rem;
|
||||
animation: bounce 0.5s infinite alternate ease-in;
|
||||
}
|
||||
.shadow{
|
||||
margin-top: -1rem;
|
||||
width: 5rem;
|
||||
height: 2rem;
|
||||
background: rgba(var(--text-color), 0.1);
|
||||
border-radius: 50%;
|
||||
animation: scale 0.5s infinite alternate ease-in;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
.page__tag-line{
|
||||
margin-top: 2rem;
|
||||
}
|
||||
@keyframes bounce{
|
||||
0%{
|
||||
@ -976,7 +976,7 @@ sm-button.danger{
|
||||
}
|
||||
}
|
||||
#contacts_container{
|
||||
padding-bottom: 6rem;
|
||||
padding-bottom: 1.5rem;
|
||||
&::before{
|
||||
display: flex;
|
||||
content: 'Contacts';
|
||||
@ -1035,15 +1035,10 @@ sm-button.danger{
|
||||
sm-input{
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
.icon{
|
||||
stroke: rgba(var(--text-color), 0.5);
|
||||
height: 0.9rem;
|
||||
width: 0.9rem;
|
||||
}
|
||||
}
|
||||
sm-input::part(input){
|
||||
border-radius: 0.5rem;
|
||||
padding: 0.2rem 0.8rem;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
h4{
|
||||
text-transform: capitalize;
|
||||
@ -1051,6 +1046,7 @@ sm-button.danger{
|
||||
}
|
||||
.icon{
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
.flex{
|
||||
.hamburger-menu-button{
|
||||
@ -1521,7 +1517,7 @@ sm-panel{
|
||||
.received,
|
||||
.group-event-card,
|
||||
.date-card{
|
||||
background: rgba(var(--foreground-color), 0.6);
|
||||
background: rgba(var(--foreground-color), 0.8);
|
||||
}
|
||||
.received::after{
|
||||
border-color: transparent rgba(var(--foreground-color), 0.6) transparent transparent;
|
||||
@ -1634,6 +1630,11 @@ sm-panel{
|
||||
margin: 0.5rem 0 1.5rem 0;
|
||||
width: min(60ch, 100%);
|
||||
}
|
||||
#chat_preview{
|
||||
margin-top: 1rem;
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
}
|
||||
#bg_preview_container{
|
||||
padding: 1rem 0;
|
||||
gap: 0.5rem;
|
||||
@ -1649,12 +1650,7 @@ sm-panel{
|
||||
border-radius: 1rem;
|
||||
overflow: hidden;
|
||||
background: rgba(var(--text-color), 0.1);
|
||||
img{
|
||||
object-fit: cover;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
&.selected::after{
|
||||
&--selected::after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
@ -1662,8 +1658,10 @@ sm-panel{
|
||||
box-shadow: 0 0 0 0.5rem rgba(var(--text-color), 0.8) inset;
|
||||
}
|
||||
}
|
||||
#selected_bg_preview[src=""]{
|
||||
display: none;
|
||||
.bg-preview__image{
|
||||
object-fit: cover;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
#video_call_page{
|
||||
@ -1674,20 +1672,20 @@ sm-panel{
|
||||
object-fit: cover;
|
||||
object-position: center;
|
||||
}
|
||||
#their_video{
|
||||
height: 100%;
|
||||
}
|
||||
#my_video{
|
||||
width: max(20vh, 12rem);
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
#call_controls{
|
||||
padding: 1.5rem;
|
||||
margin-top: auto;
|
||||
justify-self: center;
|
||||
}
|
||||
}
|
||||
#their_video{
|
||||
height: 100%;
|
||||
}
|
||||
#my_video{
|
||||
width: max(20vh, 12rem);
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
#call_controls{
|
||||
padding: 1.5rem;
|
||||
margin-top: auto;
|
||||
justify-self: center;
|
||||
}
|
||||
@media screen and (max-width: 640px){
|
||||
.hide-on-mobile{
|
||||
|
||||
92
index.html
92
index.html
@ -110,7 +110,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="loading_page" class="page hide-completely">
|
||||
<svg viewBox="0 0 512 512">
|
||||
<svg class="page__loader" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<style>
|
||||
.a {
|
||||
@ -156,7 +156,7 @@
|
||||
<path class="e" d="M325,314.13c21,4.22,36.85,12.82,36.85,25.8a69.7,69.7,0,0,1-41.09,63.58" />
|
||||
</svg>
|
||||
<div class="shadow"></div>
|
||||
<h4>Getting everything ready, Hang on.</h4>
|
||||
<h4 class="page__tag-line">Getting everything ready, Hang on.</h4>
|
||||
</div>
|
||||
<sm-popup id="add_contact_popup">
|
||||
<header class="popup-header" slot="header">
|
||||
@ -370,11 +370,11 @@
|
||||
<polyline points="29.64 60.97 0.65 32 29.64 3.03"/>
|
||||
</svg>
|
||||
<sm-input id="search_chats" class="outlined" type="search" placeholder="Search">
|
||||
<svg slot="icon" class="icon" viewBox="0 0 64 64">
|
||||
<!-- <svg slot="icon" class="icon" viewBox="0 0 64 64">
|
||||
<title>Search</title>
|
||||
<path d="M25.69,1A24.7,24.7,0,0,1,43.15,43.15,24.7,24.7,0,0,1,8.23,8.22,24.53,24.53,0,0,1,25.69,1m0-1A25.7,25.7,0,1,0,43.85,7.51,25.64,25.64,0,0,0,25.69,0Z"/>
|
||||
<line x1="63.65" y1="63.66" x2="43.36" y2="43.37"/>
|
||||
</svg>
|
||||
</svg> -->
|
||||
</sm-input>
|
||||
</div>
|
||||
</header>
|
||||
@ -407,11 +407,11 @@
|
||||
<polyline points="29.64 60.97 0.65 32 29.64 3.03"/>
|
||||
</svg>
|
||||
<sm-input id="search_contacts" class="outlined" type="search" placeholder="Enter name or FLO ID">
|
||||
<svg slot="icon" class="icon" viewBox="0 0 64 64">
|
||||
<!-- <svg slot="icon" class="icon" viewBox="0 0 64 64">
|
||||
<title>Search</title>
|
||||
<path d="M25.69,1A24.7,24.7,0,0,1,43.15,43.15,24.7,24.7,0,0,1,8.23,8.22,24.53,24.53,0,0,1,25.69,1m0-1A25.7,25.7,0,1,0,43.85,7.51,25.64,25.64,0,0,0,25.69,0Z"/>
|
||||
<line x1="63.65" y1="63.66" x2="43.36" y2="43.37"/>
|
||||
</svg>
|
||||
</svg> -->
|
||||
</sm-input>
|
||||
</div>
|
||||
</header>
|
||||
@ -660,13 +660,15 @@
|
||||
<div id="personalise_panel" class="panel hide-completely">
|
||||
<section>
|
||||
<h4>Chat preview</h4>
|
||||
<div class="message sent">
|
||||
<p class="message-body">Hey there!</p>
|
||||
<time class="time">12:00PM</time>
|
||||
</div>
|
||||
<div class="message received">
|
||||
<p class="message-body">How are you?</p>
|
||||
<time class="time">12:00PM</time>
|
||||
<div id="chat_preview">
|
||||
<div class="message sent">
|
||||
<p class="message-body">Hey there!</p>
|
||||
<time class="time">12:00PM</time>
|
||||
</div>
|
||||
<div class="message received">
|
||||
<p class="message-body">How are you?</p>
|
||||
<time class="time">12:00PM</time>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<sm-switch id="theme_switcher">
|
||||
@ -678,10 +680,10 @@
|
||||
<section>
|
||||
<h4>Set chat and mail background image</h4>
|
||||
<div id="bg_preview_container" class="flex">
|
||||
<div id="selected_bg_preview" class="bg-preview" onclick="setBgImage()">
|
||||
<img src="" alt="background perview">
|
||||
<div id="selected_bg_preview" class="bg-preview hide-completely" onclick="setBgImage()">
|
||||
<img src="" alt="background perview" class="bg-preview__image">
|
||||
</div>
|
||||
<div id="default_bg_preview" class="bg-preview selected" onclick="setDefaultBg()">Default</div>
|
||||
<div id="default_bg_preview" class="bg-preview bg-preview--selected" onclick="setDefaultBg()">Default</div>
|
||||
</div>
|
||||
<label class="select-file">
|
||||
<sm-button id="select_bg_button">Select background</sm-button>
|
||||
@ -1347,6 +1349,20 @@
|
||||
renderArticle(location.hash.slice(1))
|
||||
}
|
||||
}
|
||||
function debounce(func, wait, immediate) {
|
||||
let timeout;
|
||||
return function() {
|
||||
let context = this, args = arguments;
|
||||
let later = function() {
|
||||
timeout = null;
|
||||
if (!immediate) func.apply(context, args);
|
||||
};
|
||||
let callNow = immediate && !timeout;
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
if (callNow) func.apply(context, args);
|
||||
};
|
||||
};
|
||||
</script>
|
||||
<script id="floGlobals">
|
||||
/* Constants for FLO blockchain operations !!Make sure to add this at begining!! */
|
||||
@ -2664,7 +2680,7 @@
|
||||
}
|
||||
frag.append(render.messageBubble({...messages[i], updateChatCard}))
|
||||
}
|
||||
const contact = getRef('chat_container').querySelector(`.chat[flo-id='${floID}']`)
|
||||
const contact = getRef('chat_container').querySelector(`.contact[flo-id='${floID || groupID}']`)
|
||||
if (markUnread && contact){
|
||||
contact.classList.add("unread");
|
||||
if(contact !== getRef('chat_container').children[0]){
|
||||
@ -2683,10 +2699,13 @@
|
||||
}
|
||||
}
|
||||
if(updateChatCard){
|
||||
let chatCard = getRef('chat_container').querySelector(`.contact[flo-id="${floID || groupID}"]`)
|
||||
if(!chatCard){
|
||||
chatCard = render.contactCard(floID, {type: 'chat', markUnread: true})
|
||||
getRef('chat_container').prepend(chatCard)
|
||||
let chatCard
|
||||
if(!contact){
|
||||
getRef('chat_container').prepend(render.contactCard(floID, {type: 'chat', markUnread: true}))
|
||||
chatCard = getRef('chat_container').firstElementChild
|
||||
}
|
||||
else{
|
||||
chatCard = contact
|
||||
}
|
||||
let finalMessage
|
||||
if(floGlobals.contacts[sender])
|
||||
@ -2695,8 +2714,6 @@
|
||||
finalMessage = `You: ${message}`
|
||||
else
|
||||
finalMessage = message
|
||||
chatCard.querySelector('.last-message').textContent = finalMessage
|
||||
chatCard.querySelector('.time').textContent = getFormatedTime(time, true)
|
||||
|
||||
if(activeChat.floID === (floID || groupID)){
|
||||
if(chatScrollInfo.isScrolledUp)
|
||||
@ -3122,7 +3139,7 @@
|
||||
getRef('chat_left').classList.add('hide-on-medium')
|
||||
getRef('chat_details_panel').classList.remove('hide-completely')
|
||||
animateTo(getRef('chat_details_panel'), [
|
||||
{transform: 'translateX(3rem)'},
|
||||
{transform: 'translateX(100%)'},
|
||||
{transform: 'translateX(0)'},
|
||||
],
|
||||
{
|
||||
@ -3134,10 +3151,10 @@
|
||||
isChatDetailsOpen = false
|
||||
animateTo(getRef('chat_details_panel'), [
|
||||
{transform: 'translateX(0)'},
|
||||
{transform: 'translateX(3rem)'},
|
||||
{transform: 'translateX(100%)'},
|
||||
],
|
||||
{
|
||||
duration: animate ? 300 : 0,
|
||||
duration: animate ? 150 : 0,
|
||||
easing: 'ease'
|
||||
}).onfinish = () => {
|
||||
getRef('chat').classList.remove('expand-side-panel')
|
||||
@ -3359,6 +3376,14 @@
|
||||
}
|
||||
else{
|
||||
document.querySelectorAll('.page').forEach(page => page.classList.add('hide-completely'))
|
||||
switch(targetPage){
|
||||
case 'sign_in_page':
|
||||
console.log('signing in')
|
||||
setTimeout(() => {
|
||||
getRef('private_key_input_field').focusIn()
|
||||
},100)
|
||||
break;
|
||||
}
|
||||
}
|
||||
getRef(targetPage).classList.remove('hide-completely')
|
||||
}
|
||||
@ -3419,18 +3444,21 @@
|
||||
async function setBgImage(){
|
||||
try{
|
||||
const image = await compactIDB.readData('userSettings', 'bgImage')
|
||||
console.log(image)
|
||||
if(image){
|
||||
const url = URL.createObjectURL(image)
|
||||
getRef('chat').style.background = `linear-gradient(rgba(var(--foreground-color), 0.6), rgba(var(--foreground-color), 0.6)), url(${url}) center no-repeat`
|
||||
getRef('mail').style.background = `linear-gradient(rgba(var(--foreground-color), 0.6), rgba(var(--foreground-color), 0.6)), url(${url}) center no-repeat`
|
||||
getRef('chat_preview').style.background = `linear-gradient(rgba(var(--foreground-color), 0.6), rgba(var(--foreground-color), 0.6)), url(${url}) center no-repeat`
|
||||
getRef('chat').style.backgroundSize = 'cover'
|
||||
getRef('mail').style.backgroundSize = 'cover'
|
||||
getRef('chat_preview').style.backgroundSize = 'cover'
|
||||
getRef('chat').classList.add('has-bg-image')
|
||||
getRef('mail').classList.add('has-bg-image')
|
||||
getRef('chat_preview').classList.add('has-bg-image')
|
||||
getRef('selected_bg_preview').firstElementChild.src = url
|
||||
getRef('selected_bg_preview').classList.add('selected')
|
||||
getRef('default_bg_preview').classList.remove('selected')
|
||||
getRef('selected_bg_preview').classList.add('bg-preview--selected')
|
||||
getRef('selected_bg_preview').classList.remove('hide-completely')
|
||||
getRef('default_bg_preview').classList.remove('bg-preview--selected')
|
||||
getRef('select_bg_button').textContent = 'Change background'
|
||||
}
|
||||
}
|
||||
@ -3442,10 +3470,12 @@
|
||||
function setDefaultBg(){
|
||||
getRef('chat').style.background = ``
|
||||
getRef('mail').style.background = ``
|
||||
getRef('chat_preview').style.background = ``
|
||||
getRef('chat').classList.remove('has-bg-image')
|
||||
getRef('mail').classList.remove('has-bg-image')
|
||||
getRef('selected_bg_preview').classList.remove('selected')
|
||||
getRef('default_bg_preview').classList.add('selected')
|
||||
getRef('chat_preview').classList.remove('has-bg-image')
|
||||
getRef('selected_bg_preview').classList.remove('bg-preview--selected')
|
||||
getRef('default_bg_preview').classList.add('bg-preview--selected')
|
||||
notify('Default background applied', 'success')
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user