diff --git a/core/font/switch-theme.css b/core/font/switch-theme.css index 3b3a468e..e7e27c5b 100644 --- a/core/font/switch-theme.css +++ b/core/font/switch-theme.css @@ -70,7 +70,7 @@ html { --login-border-50pct: rgba(0, 167, 245, 0.5); --login-border-10pct: rgba(0, 167, 245, 0.1); --login-button: rgb(3, 169, 244); - --accent-color: #03a9f4; + --general-color-blue: #03a9f4; --qchat-name: #03a9f4; --qchat-my-name: #05be0e; } @@ -147,7 +147,7 @@ html[theme="dark"] { --login-border-50pct: rgba(0, 167, 245, 0.5); --login-border-10pct: rgba(0, 167, 245, 0.1); --login-button: rgb(3, 169, 244); - --accent-color: #03a9f4; + --general-color-blue: #03a9f4; --qchat-name: #03a9f4; --qchat-my-name: #05be0e; } \ No newline at end of file diff --git a/core/language/de.json b/core/language/de.json index c5426351..22ed7bf3 100644 --- a/core/language/de.json +++ b/core/language/de.json @@ -213,7 +213,8 @@ "arrr1": "ARRR-Wallet nicht initialisiert!", "arrr2": "Bitte gehen Sie zur Registerkarte „Wallet“ und initialisieren Sie zuerst Ihre arrr-Wallet.", "arrr3": "Core-Update erforderlich!", - "arrr4": "Um den privaten Schlüssel Ihrer arrr-Wallet zu speichern, benötigen Sie zuerst ein Core-Update!" + "arrr4": "Um den privaten Schlüssel Ihrer arrr-Wallet zu speichern, benötigen Sie zuerst ein Core-Update!", + "sync_indicator": "Synchronisierungsanzeige-Popup deaktivieren" }, "appinfo": { "blockheight": "Blockhöhe", diff --git a/core/language/es.json b/core/language/es.json index 37fb33fb..37197694 100644 --- a/core/language/es.json +++ b/core/language/es.json @@ -213,7 +213,8 @@ "arrr1": "¡Cartera ARRR no inicializada!", "arrr2": "Por favor, vaya a la pestaña de billetera e inicialice su billetera arrr primero.", "arrr3": "¡Necesita actualización principal!", - "arrr4": "¡Para guardar la clave privada de tu billetera arrr, primero necesitas una actualización básica!" + "arrr4": "¡Para guardar la clave privada de tu billetera arrr, primero necesitas una actualización básica!", + "sync_indicator": "Desactivar la ventana emergente del indicador de sincronización" }, "appinfo": { "blockheight": "Altura del Bloque", diff --git a/core/language/et.json b/core/language/et.json index 77b636ce..6afb005c 100644 --- a/core/language/et.json +++ b/core/language/et.json @@ -213,7 +213,8 @@ "arrr1": "ARRR rahakott pole initsialiseeritud!", "arrr2": "Minge rahakoti vahekaardile ja lähtestage esmalt oma arrr rahakott.", "arrr3": "Vaja põhivärskendust!", - "arrr4": "Oma arrr rahakoti privaatvõtme salvestamiseks vajate esmalt põhivärskendust!" + "arrr4": "Oma arrr rahakoti privaatvõtme salvestamiseks vajate esmalt põhivärskendust!", + "sync_indicator": "Keela sünkroonimisindikaatori hüpikaken" }, "appinfo": { "blockheight": "Ploki kõrgus", diff --git a/core/language/fi.json b/core/language/fi.json index 6269964a..9174235f 100644 --- a/core/language/fi.json +++ b/core/language/fi.json @@ -213,7 +213,8 @@ "arrr1": "ARRR-lompakkoa ei ole alustettu!", "arrr2": "Siirry lompakko-välilehdelle ja nollaa ensin ARRR-lompakkosi.", "arrr3": "Tarvitaan iso päivitys!", - "arrr4": "Jotta voit tallentaa ARRR-lompakkosi yksityisen avaimesi, tarvitset ensin pääpäivityksen!" + "arrr4": "Jotta voit tallentaa ARRR-lompakkosi yksityisen avaimesi, tarvitset ensin pääpäivityksen!", + "sync_indicator": "Poista synkronoinnin ilmaisimen ponnahdusikkuna" }, "appinfo": { "blockheight": "Lohkon korkeus", diff --git a/core/language/fr.json b/core/language/fr.json index d546e9c6..76cae9b7 100644 --- a/core/language/fr.json +++ b/core/language/fr.json @@ -213,7 +213,8 @@ "arrr1": "Portefeuille ARRR non initialisé !", "arrr2": "Veuillez aller dans l'onglet Portefeuille et initialiser d'abord votre portefeuille arrr.", "arrr3": "Besoin d'une mise à jour principale !", - "arrr4": "Pour sauvegarder la clé privée de votre portefeuille arrr, vous avez d'abord besoin d'une mise à jour principale !" + "arrr4": "Pour sauvegarder la clé privée de votre portefeuille arrr, vous avez d'abord besoin d'une mise à jour principale !", + "sync_indicator": "Désactiver la fenêtre contextuelle de l'indicateur de synchronisation" }, "appinfo": { "blockheight": "Hauteur de bloc", diff --git a/core/language/hindi.json b/core/language/hindi.json index 5b1aab67..1b9c2082 100644 --- a/core/language/hindi.json +++ b/core/language/hindi.json @@ -213,7 +213,8 @@ "arrr1": "ARRR वॉलेट प्रारंभ नहीं हुआ!", "arrr2": "कृपया वॉलेट टैब पर जाएं और पहले अपना Arrr वॉलेट प्रारंभ करें।", "arrr3": "मुख्य अद्यतन की आवश्यकता है!", - "arrr4": "अपने Arrr वॉलेट की निजी कुंजी को सहेजने के लिए आपको पहले एक कोर अपडेट की आवश्यकता है!" + "arrr4": "अपने Arrr वॉलेट की निजी कुंजी को सहेजने के लिए आपको पहले एक कोर अपडेट की आवश्यकता है!", + "sync_indicator": "सिंक संकेतक पॉपअप अक्षम करें" }, "appinfo": { "blockheight": "ब्लॉक ऊँचाई", diff --git a/core/language/hr.json b/core/language/hr.json index b5f49335..c25b6f60 100644 --- a/core/language/hr.json +++ b/core/language/hr.json @@ -213,7 +213,8 @@ "arrr1": "Novčanik ARRR nije inicijaliziran!", "arrr2": "Idite na karticu novčanika i prvo inicijalizirajte svoj arrr novčanik.", "arrr3": "Potrebno je ažuriranje jezgre!", - "arrr4": "Da biste spremili privatni ključ vašeg arrr novčanika, prvo trebate ažurirati jezgru!" + "arrr4": "Da biste spremili privatni ključ vašeg arrr novčanika, prvo trebate ažurirati jezgru!", + "sync_indicator": "Onemogući skočni prozor indikatora sinkronizacije" }, "appinfo": { "blockheight": "Visina bloka", diff --git a/core/language/hu.json b/core/language/hu.json index 45a88eef..627080f8 100644 --- a/core/language/hu.json +++ b/core/language/hu.json @@ -213,7 +213,8 @@ "arrr1": "ARRR Wallet nincs inicializálva!", "arrr2": "Kérjük, lépjen a Wallet fülre, és először inicializálja arrr pénztárcáját.", "arrr3": "Alapfrissítésre van szükség!", - "arrr4": "Az arrr pénztárca privát kulcsának mentéséhez először egy alapvető frissítésre van szükség!" + "arrr4": "Az arrr pénztárca privát kulcsának mentéséhez először egy alapvető frissítésre van szükség!", + "sync_indicator": "Szinkronizálásjelző előugró ablak letiltása" }, "appinfo": { "blockheight": "Blokk Magassága", diff --git a/core/language/it.json b/core/language/it.json index a93c5538..1b5bbf7d 100644 --- a/core/language/it.json +++ b/core/language/it.json @@ -213,7 +213,8 @@ "arrr1": "Portafoglio ARRR non inizializzato!", "arrr2": "Vai alla scheda Portafoglio e inizializza prima il tuo portafoglio arrr.", "arrr3": "È necessario l'aggiornamento del core!", - "arrr4": "Per salvare la chiave privata del tuo portafoglio arrr devi prima aggiornare il core!" + "arrr4": "Per salvare la chiave privata del tuo portafoglio arrr devi prima aggiornare il core!", + "sync_indicator": "Disabilita il popup dell'indicatore di sincronizzazione" }, "appinfo": { "blockheight": "Altezza blocco", diff --git a/core/language/jp.json b/core/language/jp.json index 6873c561..86e398bf 100644 --- a/core/language/jp.json +++ b/core/language/jp.json @@ -213,7 +213,8 @@ "arrr1": "ARRR ウォレットが初期化されていません!", "arrr2": "ウォレットタブに移動して、まずarrrウォレットを初期化してください。", "arrr3": "コアのアップデートが必要です!", - "arrr4": "arrr ウォレットの秘密キーを保存するには、まずコアのアップデートが必要です!" + "arrr4": "arrr ウォレットの秘密キーを保存するには、まずコアのアップデートが必要です!", + "sync_indicator": "同期インジケーターのポップアップを無効にする" }, "appinfo": { "blockheight": "ブロック高", diff --git a/core/language/ko.json b/core/language/ko.json index a60cb6a9..e9a070f5 100644 --- a/core/language/ko.json +++ b/core/language/ko.json @@ -213,7 +213,8 @@ "arrr1": "ARRR 지갑이 초기화되지 않았습니다!", "arrr2": "지갑 탭으로 이동하여 먼저 arrr 지갑을 초기화하세요.", "arrr3": "핵심 업데이트가 필요합니다!", - "arrr4": "arrr 지갑의 개인 키를 저장하려면 먼저 핵심 업데이트가 필요합니다!" + "arrr4": "arrr 지갑의 개인 키를 저장하려면 먼저 핵심 업데이트가 필요합니다!", + "sync_indicator": "동기화 표시 팝업 비활성화" }, "appinfo": { "blockheight": "블록 높이", diff --git a/core/language/nl.json b/core/language/nl.json index b7a6fda6..6d24f0f2 100644 --- a/core/language/nl.json +++ b/core/language/nl.json @@ -213,7 +213,8 @@ "arrr1": "ARRR portefeuille is niet geïnitialiseerd!", "arrr2": "Ga naar de portefeuille-tab en initialiseer eerst jouw ARRR portefeuille.", "arrr3": "De 'core' heeft een update nodig!", - "arrr4": "Om de privé-sleutel van jouw ARRR portefeuille te kunnen bewaren, moet je voor de 'core' eerst een update installeren!" + "arrr4": "Om de privé-sleutel van jouw ARRR portefeuille te kunnen bewaren, moet je voor de 'core' eerst een update installeren!", + "sync_indicator": "Synchronisatie-indicator pop-up uitschakelen" }, "appinfo": { "blockheight": "Blokhoogte", diff --git a/core/language/no.json b/core/language/no.json index 5c00f3ac..742abc02 100644 --- a/core/language/no.json +++ b/core/language/no.json @@ -213,7 +213,8 @@ "arrr1": "ARRR-lommebok ikke initialisert !", "arrr2": "Vennligst gå til lommebok-fanen og initialiser arrr-lommeboken først.", "arrr3": "Trenger kjerneoppdatering!", - "arrr4": "For å lagre den private nøkkelen til arrr-lommeboken din trenger du en kjerneoppdatering først!" + "arrr4": "For å lagre den private nøkkelen til arrr-lommeboken din trenger du en kjerneoppdatering først!", + "sync_indicator": "Deaktiver popup for synkroniseringsindikator" }, "appinfo": { "blockheight": "Blokkhøyde", diff --git a/core/language/pl.json b/core/language/pl.json index 3ccc4545..0446c70a 100644 --- a/core/language/pl.json +++ b/core/language/pl.json @@ -213,7 +213,8 @@ "arrr1": "Portfel ARRR nie został zainicjowany!", "arrr2": "Przejdź do zakładki portfela i najpierw zainicjalizuj swój portfel arrr.", "arrr3": "Potrzebujesz aktualizacji rdzenia!", - "arrr4": "Aby zapisać klucz prywatny swojego portfela arrr, potrzebujesz najpierw aktualizacji rdzenia!" + "arrr4": "Aby zapisać klucz prywatny swojego portfela arrr, potrzebujesz najpierw aktualizacji rdzenia!", + "sync_indicator": "Wyłącz wyskakujące okienko wskaźnika synchronizacji" }, "appinfo": { "blockheight": "Wysokość bloku", diff --git a/core/language/pt.json b/core/language/pt.json index 7c91edd3..fa6da6c8 100644 --- a/core/language/pt.json +++ b/core/language/pt.json @@ -213,7 +213,8 @@ "arrr1": "Carteira ARRR não inicializada!", "arrr2": "Por favor, vá para a aba carteira e inicialize sua carteira arrr primeiro.", "arrr3": "Precisa de atualização principal!", - "arrr4": "Para salvar a chave privada da sua carteira arrr você precisa primeiro de uma atualização principal!" + "arrr4": "Para salvar a chave privada da sua carteira arrr você precisa primeiro de uma atualização principal!", + "sync_indicator": "Desativar pop-up do indicador de sincronização" }, "appinfo": { "blockheight": "Altura do Bloco", diff --git a/core/language/ro.json b/core/language/ro.json index f34e3065..d085487f 100644 --- a/core/language/ro.json +++ b/core/language/ro.json @@ -213,7 +213,8 @@ "arrr1": "Portoletul ARRR nu este inițializat !", "arrr2": "Vă rugăm să accesați fila Portofel și să inițializați mai întâi portofelul arrr.", "arrr3": "Am nevoie de actualizare de bază !", - "arrr4": "Pentru a salva cheia privată a portofelului dvs. arrr, aveți nevoie mai întâi de o actualizare de bază !" + "arrr4": "Pentru a salva cheia privată a portofelului dvs. arrr, aveți nevoie mai întâi de o actualizare de bază !", + "sync_indicator": "Dezactivați fereastra pop-up indicator de sincronizare" }, "appinfo": { "blockheight": "Dimensiunea blocului", diff --git a/core/language/rs.json b/core/language/rs.json index 17e60a77..0ed10053 100644 --- a/core/language/rs.json +++ b/core/language/rs.json @@ -213,7 +213,8 @@ "arrr1": "ARRR novčanik nije inicijalizovan!", "arrr2": "Molim vas idite na karticu Novčanik i prvo inicijalizujte svoj arrr novčanik.", "arrr3": "Potrebno je ažuriranje jezgra!", - "arrr4": "Da biste sačuvali privatni ključ vašeg arrr novčanika, prvo vam je potrebno ažuriranje jezgra!" + "arrr4": "Da biste sačuvali privatni ključ vašeg arrr novčanika, prvo vam je potrebno ažuriranje jezgra!", + "sync_indicator": "Onemogući iskačući prozor indikatora sinhronizacije" }, "appinfo": { "blockheight": "Visina Bloka", diff --git a/core/language/ru.json b/core/language/ru.json index a275bddf..156aee90 100644 --- a/core/language/ru.json +++ b/core/language/ru.json @@ -213,7 +213,8 @@ "arrr1": "Кошелек ARRR не инициализирован!", "arrr2": "Пожалуйста, перейдите на вкладку кошелька и сначала инициализируйте свой кошелек arrr.", "arrr3": "Требуется обновление ядра!", - "arrr4": "Чтобы сохранить закрытый ключ вашего кошелька arrr, вам сначала необходимо обновить ядро!" + "arrr4": "Чтобы сохранить закрытый ключ вашего кошелька arrr, вам сначала необходимо обновить ядро!", + "sync_indicator": "Отключить всплывающее окно индикатора синхронизации" }, "appinfo": { "blockheight": "Высота блока", diff --git a/core/language/us.json b/core/language/us.json index 1cee1066..607dd058 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -213,7 +213,8 @@ "arrr1": "ARRR Wallet Not Initialized !", "arrr2": "Please go to wallet tab and initialize your arrr wallet first.", "arrr3": "Need Core Update !", - "arrr4": "To save the private key of your arrr wallet you need a core update first !" + "arrr4": "To save the private key of your arrr wallet you need a core update first !", + "sync_indicator": "Disable sync indicator popup" }, "appinfo": { "blockheight": "Block Height", diff --git a/core/language/zhc.json b/core/language/zhc.json index 2ce6dd29..1b2500e6 100644 --- a/core/language/zhc.json +++ b/core/language/zhc.json @@ -213,7 +213,8 @@ "arrr1": "ARRR 钱包未初始化!", "arrr2": "请先进入钱包选项卡并初始化您的arrr钱包。", "arrr3": "需要核心更新!", - "arrr4": "要保存你的 arr 钱包的私钥,你需要先进行核心更新!" + "arrr4": "要保存你的 arr 钱包的私钥,你需要先进行核心更新!", + "sync_indicator": "禁用同步指示器弹出窗口" }, "appinfo": { "blockheight": "区块高度", diff --git a/core/language/zht.json b/core/language/zht.json index fc0d51c2..d84c73de 100644 --- a/core/language/zht.json +++ b/core/language/zht.json @@ -213,7 +213,8 @@ "arrr1": "ARRR 錢包未初始化!", "arrr2": "請先進入錢包標籤並初始化您的arrr錢包。", "arrr3": "需要核心更新!", - "arrr4": "要儲存你的 arr 錢包的私鑰,你需要先進行核心更新!" + "arrr4": "要儲存你的 arr 錢包的私鑰,你需要先進行核心更新!", + "sync_indicator": "停用同步指示器彈出視窗" }, "appinfo": { "blockheight": "區塊高度", diff --git a/core/src/components/app-view.js b/core/src/components/app-view.js index afe909cd..3f2b6877 100644 --- a/core/src/components/app-view.js +++ b/core/src/components/app-view.js @@ -35,7 +35,6 @@ import './search-modal.js' import './user-info-view/user-info-view.js' import '../functional-components/side-menu.js' import '../functional-components/side-menu-item.js' -import './start-minting.js' import './notification-view/notification-bell.js' import './notification-view/notification-bell-general.js' import './friends-view/friends-side-panel-parent.js' @@ -147,7 +146,8 @@ class AppView extends connect(store)(LitElement) { lockSet: { type: String }, myLockScreenPass: { type: String }, myLockScreenSet: { type: String }, - helperMessage: { type: String } + helperMessage: { type: String }, + showSyncMessages: { type: Boolean } } } @@ -548,7 +548,6 @@ class AppView extends connect(store)(LitElement) { getTourElements(){ let els = {} - console.log('this.shadowRoot.querySelector("core-sync-status")', this.shadowRoot.querySelector("core-sync-status")) const el1 = this.shadowRoot.querySelector("core-sync-status").shadowRoot.getElementById("core-sync-status-id") const el2 = this.shadowRoot.querySelector("show-plugin").shadowRoot.getElementById("showPluginId") const el3 = this.shadowRoot.querySelector("beginner-checklist").shadowRoot.getElementById("popover-notification") @@ -625,7 +624,7 @@ class AppView extends connect(store)(LitElement) { - + ${!this.showSyncMessages ? html`` : html``} @@ -698,6 +697,8 @@ class AppView extends connect(store)(LitElement) { this.helperMessage = this.renderHelperPass() + this.showSyncMessages = store.getState().app.showSyncIndicator + this.salt = '' this.salt = Base58.encode(store.getState().app.wallet._addresses[0].keyPair.privateKey) @@ -2117,10 +2118,6 @@ class AppView extends connect(store)(LitElement) { ${this.renderNodeManagement()} - -
- -
` } } @@ -2806,6 +2803,7 @@ class AppView extends connect(store)(LitElement) { this.config = state.config this.urls = state.app.registeredUrls this.addressInfo = state.app.accountInfo.addressInfo + this.showSyncMessages = state.app.showSyncIndicator if (sideurl === "minting") { this.shadowRoot.getElementById('qminter').setAttribute('selected', 'selected') diff --git a/core/src/components/beginner-tour/sync-indicator.js b/core/src/components/beginner-tour/sync-indicator.js index 46804c74..bcd067b5 100644 --- a/core/src/components/beginner-tour/sync-indicator.js +++ b/core/src/components/beginner-tour/sync-indicator.js @@ -1,9 +1,10 @@ -import { LitElement, html, css } from 'lit'; -import { store } from '../../store'; -import { connect } from 'pwa-helpers'; -import '@material/mwc-icon'; -import { translate } from '../../../translate'; -import { parentEpml } from '../show-plugin'; +import { LitElement, html, css } from 'lit' +import { store } from '../../store' +import { connect } from 'pwa-helpers' +import { translate } from '../../../translate' +import { parentEpml } from '../show-plugin' + +import '@material/mwc-icon' class SyncIndicator extends connect(store)(LitElement) { static get properties() { @@ -11,20 +12,20 @@ class SyncIndicator extends connect(store)(LitElement) { isBehind: { type: Boolean }, blocksBehind: { type: Number }, isSynchronizing: { type: Boolean }, - hasCoreRunning: { type: Boolean }, - }; + hasCoreRunning: { type: Boolean } + } } constructor() { - super(); - this.isBehind = null; - this.blocksBehind = 0; - this.nodeUrl = this.getNodeUrl(); - this.myNode = this.getMyNode(); - this.interval = null; - this.hasCoreRunning = true; - this.seenWelcomeSync = false; - this.numberOfTries = 0; + super() + this.isBehind = null + this.blocksBehind = 0 + this.nodeUrl = this.getNodeUrl() + this.myNode = this.getMyNode() + this.interval = null + this.hasCoreRunning = true + this.seenWelcomeSync = false + this.numberOfTries = 0 this.hasOpened = false } @@ -34,13 +35,15 @@ class SyncIndicator extends connect(store)(LitElement) { --mdc-theme-text-primary-on-background: var(--black); box-sizing: border-box; } + :host { box-sizing: border-box; position: fixed; - bottom: 25px; + bottom: 50px; right: 25px; z-index: 50000; } + .parent { width: 360px; padding: 10px; @@ -52,11 +55,13 @@ class SyncIndicator extends connect(store)(LitElement) { user-select: none; background: var(--white); } + .row { display: flex; gap: 10px; width: 100%; } + .column { display: flex; flex-direction: column; @@ -78,34 +83,36 @@ class SyncIndicator extends connect(store)(LitElement) { cursor: pointer; background-color: #03a8f475; } - `; + ` } + async firstUpdated() { this.address = store.getState().app.selectedAddress.address const seenWelcomeSync = JSON.parse( localStorage.getItem(`welcome-sync-${this.address}`) || 'false' - ); - this.seenWelcomeSync = seenWelcomeSync; + ) + + this.seenWelcomeSync = seenWelcomeSync } getNodeUrl() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[ window.parent.reduxStore.getState().app.nodeConfig.node - ]; + ] - const nodeUrl = - myNode.protocol + '://' + myNode.domain + ':' + myNode.port; - return nodeUrl; + const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port + return nodeUrl } + getMyNode() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[ window.parent.reduxStore.getState().app.nodeConfig.node - ]; + ] - return myNode; + return myNode } async getDaySummary() { @@ -113,25 +120,25 @@ class SyncIndicator extends connect(store)(LitElement) { this.fetchingSummary = true - const endpointLastBlock = `${this.nodeUrl}/blocks/last`; - const resLastBlock = await fetch(endpointLastBlock); - const dataLastBlock = await resLastBlock.json(); - const timestampNow = Date.now(); - const currentBlockTimestamp = dataLastBlock.timestamp; + const endpointLastBlock = `${this.nodeUrl}/blocks/last` + const resLastBlock = await fetch(endpointLastBlock) + const dataLastBlock = await resLastBlock.json() + const timestampNow = Date.now() + const currentBlockTimestamp = dataLastBlock.timestamp if (currentBlockTimestamp < timestampNow) { - const diff = timestampNow - currentBlockTimestamp; - const inSeconds = diff / 1000; // millisecs to secs - const inBlocks = inSeconds / 70; - this.blocksBehind = parseInt(inBlocks); + const diff = timestampNow - currentBlockTimestamp + const inSeconds = diff / 1000 // millisecs to secs + const inBlocks = inSeconds / 70 + this.blocksBehind = parseInt(inBlocks) if (inBlocks >= 100) { - this.isBehind = true; + this.isBehind = true } else { - this.isBehind = false; - this.blocksBehind = 0; + this.isBehind = false + this.blocksBehind = 0 } } else { - this.blocksBehind = 0; - this.isBehind = false; + this.blocksBehind = 0 + this.isBehind = false } } catch (error) {} finally { this.fetchingSummary = false @@ -144,11 +151,11 @@ class SyncIndicator extends connect(store)(LitElement) { this.interval = setInterval(() => { if(this.fetchingSummary) return if (this.isBehind === false) { - this.isBehind = null; - clearInterval(this.interval); + this.isBehind = null + clearInterval(this.interval) } - this.getDaySummary(); - }, 20000); + this.getDaySummary() + }, 20000) } catch (error) {} } @@ -161,30 +168,30 @@ class SyncIndicator extends connect(store)(LitElement) { bubbles: true, composed: true, }) - ); + ) } if ( state.app.nodeStatus && Object.keys(state.app.nodeStatus).length === 0 ) { if (this.numberOfTries > 5) { - this.hasCoreRunning = false; + this.hasCoreRunning = false } else { - this.numberOfTries = this.numberOfTries + 1; + this.numberOfTries = this.numberOfTries + 1 } } else if(state.app.nodeStatus && state.app.nodeStatus.syncPercent === 100 && state.app.nodeStatus.syncPercent !== this.syncPercentage){ - this.syncPercentage = state.app.nodeStatus.syncPercent; - this.isSynchronizing = false; + this.syncPercentage = state.app.nodeStatus.syncPercent + this.isSynchronizing = false } else if ( state.app.nodeStatus ) { this.hasCoreRunning = true this.numberOfTries = 0 - this.syncPercentage = state.app.nodeStatus.syncPercent; + this.syncPercentage = state.app.nodeStatus.syncPercent if (state.app.nodeStatus.syncPercent !== 100) { - this.isSynchronizing = true; + this.isSynchronizing = true } if ( @@ -193,20 +200,20 @@ class SyncIndicator extends connect(store)(LitElement) { state.app.nodeStatus.isSynchronizing && state.app.nodeStatus.syncPercent !== 100 ) { - this.checkHowManyBlocksBehind(); + this.checkHowManyBlocksBehind() } } else { - this.hasCoreRunning = true; + this.hasCoreRunning = true } } async bootstrap(){ try { - const endpoint = `${this.nodeUrl}/admin/bootstrap/?apiKey=${this.myNode.apiKey}`; - const res = await fetch(endpoint); - const data = await res.json(); - if(data === true){ - parentEpml.request('showSnackBar', get('tour.tour22')); + const endpoint = `${this.nodeUrl}/admin/bootstrap/?apiKey=${this.myNode.apiKey}` + const res = await fetch(endpoint) + const data = await res.json() + if (data === true) { + parentEpml.request('showSnackBar', get('tour.tour22')) } } catch (error) { @@ -274,7 +281,8 @@ class SyncIndicator extends connect(store)(LitElement) { ` : "" } - `; + ` } } -customElements.define('sync-indicator', SyncIndicator); + +customElements.define('sync-indicator', SyncIndicator) diff --git a/core/src/components/login-view/login-view.js b/core/src/components/login-view/login-view.js index 143d73c7..5d576bf1 100644 --- a/core/src/components/login-view/login-view.js +++ b/core/src/components/login-view/login-view.js @@ -22,10 +22,12 @@ import { allowQAPPAutoAuth, allowQAPPAutoFriendsList, allowQAPPAutoLists, + allowShowSyncIndicator, removeAutoLoadImageChat, removeQAPPAutoAuth, removeQAPPAutoFriendsList, removeQAPPAutoLists, + removeShowSyncIndicator, setNewNotification, setNewTab, setSideEffectAction, @@ -47,7 +49,9 @@ window.reduxAction = { setNewNotification: setNewNotification, setSideEffectAction: setSideEffectAction, allowQAPPAutoFriendsList: allowQAPPAutoFriendsList, - removeQAPPAutoFriendsList: removeQAPPAutoFriendsList + removeQAPPAutoFriendsList: removeQAPPAutoFriendsList, + allowShowSyncIndicator: allowShowSyncIndicator, + removeShowSyncIndicator: removeShowSyncIndicator } const animationDuration = 0.7 // Seconds diff --git a/core/src/components/login-view/welcome-page.js b/core/src/components/login-view/welcome-page.js index 856704fc..cf1f08d2 100644 --- a/core/src/components/login-view/welcome-page.js +++ b/core/src/components/login-view/welcome-page.js @@ -13,68 +13,56 @@ class WelcomePage extends LitElement { backDisabled: { type: Boolean, notify: true }, backText: { type: String, notify: true }, hideNav: { type: Boolean, notify: true }, + welcomeMessage: { type: String }, theme: { type: String, reflect: true } } } static get styles() { - return [ - css` - * { - --mdc-theme-primary: var(--login-button); - --mdc-theme-secondary: var(--mdc-theme-primary); - --mdc-button-outline-color: var(--accent-color); - } + return css` + * { + --mdc-theme-primary: var(--login-button); + --mdc-theme-secondary: var(--mdc-theme-primary); + --mdc-button-outline-color: var(--general-color-blue); + } - mwc-button { - margin: 6px; - width: 90%; - max-width:90vw; - margin: 4px; - } + .button-outline { + margin: 6px; + width: 90%; + max-width:90vw; + border-top: 0; + border-bottom: 0; + } - .welcome-page { - padding: 12px 0; - } - ` - ] + .welcome-page { + padding: 12px 0; + overflow: hidden; + } + ` } constructor() { super() this.hideNav = true this.nextText = '' - const welcomeMessage = 'Welcome to Qortal'; - this.welcomeMessage = welcomeMessage + this.welcomeMessage = 'Welcome to Qortal' this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' } - firstUpdated() { - // ... - } + firstUpdated() {} render() { return html` - -
- - this.navigate('login')} outlined style="border-top:0; border-bottom:0;">${translate("login.login")} - this.navigate('create-account')} outlined style="border-top:0; border-bottom:0;">${translate("login.createaccount")} +
+ this.navigate('login')} outlined>${translate("login.login")} + this.navigate('create-account')} outlined>${translate("login.createaccount")}
` } - back() { } + back() {} - next() { } + next() {} navigate(page) { this.dispatchEvent(new CustomEvent('navigate', { diff --git a/core/src/components/settings-view/notifications-view.js b/core/src/components/settings-view/notifications-view.js index 29fffc28..f8bbb860 100644 --- a/core/src/components/settings-view/notifications-view.js +++ b/core/src/components/settings-view/notifications-view.js @@ -1,20 +1,20 @@ import {css, html, LitElement} from 'lit' import {connect} from 'pwa-helpers' import {store} from '../../store.js' +import {allowShowSyncIndicator, removeShowSyncIndicator} from '../../redux/app/app-actions.js' import {doSetQChatNotificationConfig} from '../../redux/user/user-actions.js' import {translate} from '../../../translate/index.js' import isElectron from 'is-electron' import '@material/mwc-checkbox' - class NotificationsView extends connect(store)(LitElement) { static get properties() { return { notificationConfig: { type: Object }, q_chatConfig: { type: Object }, theme: { type: String, reflect: true }, - appNotificationList: {type: Array} + appNotificationList: { type: Array } } } @@ -26,8 +26,8 @@ class NotificationsView extends connect(store)(LitElement) { this.appNotificationList = [] // Fetch the list of apps from local storage } - firstUpdated(){ - this.appNotificationList = this.getAppsFromStorage(); + firstUpdated() { + this.appNotificationList = this.getAppsFromStorage() } static get styles() { @@ -54,6 +54,16 @@ class NotificationsView extends connect(store)(LitElement) { } } + .checkbox-row { + position: relative; + display: flex; + align-items: center; + align-content: center; + font-family: Montserrat, sans-serif; + font-weight: 600; + color: var(--black); + } + .content-box { border: 1px solid #a1a1a1; padding: 10px 25px; @@ -112,82 +122,91 @@ class NotificationsView extends connect(store)(LitElement) { } .remove-button { - font-family: Roboto, sans-serif; - font-size: 16px; - color: var(--mdc-theme-primary); - background-color: transparent; - padding: 8px 10px; - border-radius: 5px; - border: none; - transition: all 0.3s ease-in-out; - cursor: pointer; - } + font-family: Roboto, sans-serif; + font-size: 16px; + color: var(--mdc-theme-primary); + background-color: transparent; + padding: 8px 10px; + border-radius: 5px; + border: none; + transition: all 0.3s ease-in-out; + cursor: pointer; + } ` } render() { return html` -
-
-
-

Q-Chat ${translate("settings.notifications")}

+
+
+
+

Q-Chat ${translate("settings.notifications")}

-
- this.setQChatNotificationConfig({ type: 'PLAY_SOUND', value: e.target.checked })} ?checked=${this.q_chatConfig.playSound}> -
+ > + ${translate("settings.playsound")} + +
-
- this.setQChatNotificationConfig({ type: 'SHOW_NOTIFICATION', value: e.target.checked })} ?checked=${this.q_chatConfig.showNotification}> -
+ > + ${translate("settings.shownotifications")} +
-
-

${translate("settings.qappNotification1")}

- ${this.appNotificationList.map((app)=> html` -
- ${app} - -
- `)} - -
- ${this.renderSetCoreButton()} +
+

${translate("settings.qappNotification1")}

+ ${this.appNotificationList.map((app) => html` +
+ ${app} + +
+ `)} +
+
+ + this.checkForSyncMessages(e)} ?checked=${store.getState().app.showSyncIndicator}> +
+ ${this.renderSetCoreButton()} +
` } getAppsFromStorage() { // Your method to fetch the list of apps from local storage // Example: - const address= store.getState().app.selectedAddress.address - const id = `appNotificationList-${address}`; - const data = localStorage.getItem(id); - return data ? Object.keys(JSON.parse(data)) : []; - } + const address = store.getState().app.selectedAddress.address + const id = `appNotificationList-${address}` + const data = localStorage.getItem(id) + return data ? Object.keys(JSON.parse(data)) : [] + } - removeApp(appName) { + removeApp(appName) { // Remove the app from local storage this.removeAppFromStorage(appName); // Update the apps list in the component this.appNotificationList = this.appNotificationList.filter(app => app !== appName); - } + } - removeAppFromStorage(appName) { + removeAppFromStorage(appName) { // Your method to remove the app from local storage const address= store.getState().app.selectedAddress.address const id = `appNotificationList-${address}`; const data = JSON.parse(localStorage.getItem(id) || '{}'); delete data[appName]; localStorage.setItem(id, JSON.stringify(data)); - } + } renderSetCoreButton() { if (!isElectron()) { @@ -205,6 +224,14 @@ class NotificationsView extends connect(store)(LitElement) { window.electronAPI.setStartCore() } + checkForSyncMessages(e) { + if (e.target.checked) { + store.dispatch(removeShowSyncIndicator(false)) + } else { + store.dispatch(allowShowSyncIndicator(true)) + } + } + stateChanged(state) { this.notificationConfig = state.user.notifications this.q_chatConfig = this.notificationConfig.q_chat @@ -226,8 +253,6 @@ class NotificationsView extends connect(store)(LitElement) { store.dispatch(doSetQChatNotificationConfig(data)) } } - - } window.customElements.define('notifications-view', NotificationsView) diff --git a/core/src/components/settings-view/security-view.js b/core/src/components/settings-view/security-view.js index c1e9c594..094eac8c 100644 --- a/core/src/components/settings-view/security-view.js +++ b/core/src/components/settings-view/security-view.js @@ -145,11 +145,11 @@ class SecurityView extends connect(store)(LitElement) {

-
- - this.checkForAuth(e)} ?checked=${store.getState().app.qAPPAutoAuth}> +
+ + this.checkForAuth(e)} ?checked=${store.getState().app.qAPPAutoAuth}>
- - this.checkForFriends(e)} ?checked=${store.getState().app.qAPPFriendsList}> + + this.checkForFriends(e)} ?checked=${store.getState().app.qAPPFriendsList}>
- +
-
` } diff --git a/core/src/components/show-plugin.js b/core/src/components/show-plugin.js index fa9fc125..d193db93 100644 --- a/core/src/components/show-plugin.js +++ b/core/src/components/show-plugin.js @@ -25,7 +25,6 @@ registerTranslateConfig({ loader: lang => fetch(`/language/${lang}.json`).then(res => res.json()) }) - export const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) class ShowPlugin extends connect(store)(LitElement) { @@ -43,7 +42,7 @@ class ShowPlugin extends connect(store)(LitElement) { chatLastSeen: { type: Array }, chatHeads: { type: Array }, proxyPort: { type: Number }, - isOpenDevDialog: {type: Boolean} + isOpenDevDialog: { type: Boolean } } } @@ -211,7 +210,7 @@ class ShowPlugin extends connect(store)(LitElement) { font-weight: bold; background: none; border: none; - color: var(--accent-color); + color: var(--general-color-blue); font-size: 2em; cursor: pointer; transition: color 0.3s; @@ -229,7 +228,7 @@ class ShowPlugin extends connect(store)(LitElement) { max-height: 28px; padding: 5px 5px; font-size: 14px; - background-color: var(--accent-color); + background-color: var(--general-color-blue); color: white; border: 1px solid transparent; border-radius: 3px; @@ -248,7 +247,7 @@ class ShowPlugin extends connect(store)(LitElement) { .iconActive { position: absolute; top: 5px; - color: var(--accent-color); + color: var(--general-color-blue); --mdc-icon-size: 24px; } @@ -260,7 +259,7 @@ class ShowPlugin extends connect(store)(LitElement) { } .tab:hover .iconInactive { - color: var(--accent-color); + color: var(--general-color-blue); } .count { @@ -1078,7 +1077,7 @@ class NavBar extends connect(store)(LitElement) { } .resetIcon:hover { - color: var(--accent-color); + color: var(--general-color-blue); font-weight: bold; } @@ -1092,7 +1091,7 @@ class NavBar extends connect(store)(LitElement) { } .searchIcon:hover { - color: var(--accent-color); + color: var(--general-color-blue); font-weight: bold; } @@ -1106,7 +1105,7 @@ class NavBar extends connect(store)(LitElement) { } .importIcon:hover { - color: var(--accent-color); + color: var(--general-color-blue); font-weight: bold; } @@ -1120,7 +1119,7 @@ class NavBar extends connect(store)(LitElement) { } .exportIcon:hover { - color: var(--accent-color); + color: var(--general-color-blue); font-weight: bold; } @@ -1141,7 +1140,7 @@ class NavBar extends connect(store)(LitElement) { paper-dialog button { padding: 5px 10px; font-size: 18px; - background-color: var(--accent-color); + background-color: var(--general-color-blue); color: white; border: 1px solid transparent; border-radius: 5px; @@ -1175,7 +1174,7 @@ class NavBar extends connect(store)(LitElement) { } vaadin-text-field[focused]::part(input-field) { - border-color: var(--accent-color); + border-color: var(--general-color-blue); } ` diff --git a/core/src/functional-components/settings-page.js b/core/src/functional-components/settings-page.js index 587bfc7e..9ee63bef 100644 --- a/core/src/functional-components/settings-page.js +++ b/core/src/functional-components/settings-page.js @@ -70,7 +70,7 @@ class SettingsPage extends connect(store)(LitElement) { display: inline-block; width: 150px; font-weight: 600; - color: var(--accent-color); + color: var(--general-color-blue); border: 1px solid transparent; } @@ -87,7 +87,7 @@ class SettingsPage extends connect(store)(LitElement) { } .buttonBlue { - color: var(--accent-color); + color: var(--general-color-blue); } .floatleft { diff --git a/core/src/redux/app/actions/app-core.js b/core/src/redux/app/actions/app-core.js index 08ede371..63f60ec8 100644 --- a/core/src/redux/app/actions/app-core.js +++ b/core/src/redux/app/actions/app-core.js @@ -20,9 +20,11 @@ import { UPDATE_BLOCK_INFO, UPDATE_NODE_INFO, UPDATE_NODE_STATUS, - SET_PROFILE_DATA, - ALLOW_QAPP_FRIENDS_LIST, - REMOVE_QAPP_FRIENDS_LIST + SET_PROFILE_DATA, + ALLOW_QAPP_FRIENDS_LIST, + REMOVE_QAPP_FRIENDS_LIST, + ALLOW_SHOW_SYNC_INDICATOR, + REMOVE_SHOW_SYNC_INDICATOR } from '../app-action-types.js' export const doUpdateBlockInfo = (blockObj) => { @@ -164,18 +166,21 @@ export const setNewTab = (payload) => { payload } } + export const setNewNotification = (payload) => { return { type: SET_NEW_NOTIFICATION, payload } } -export const setIsOpenDevDialog = (payload)=> { + +export const setIsOpenDevDialog = (payload) => { return { type: IS_OPEN_DEV_DIALOG, payload } } + export const addTabInfo = (payload) => { return { type: ADD_TAB_INFO, @@ -196,16 +201,31 @@ export const setSideEffectAction = (payload)=> { payload } } -export const setProfileData = (payload)=> { + +export const setProfileData = (payload) => { return { type: SET_PROFILE_DATA, payload } } -export const setCoinBalances = (payload)=> { +export const setCoinBalances = (payload) => { return { type: SET_COIN_BALANCES, payload } } + +export const allowShowSyncIndicator = (payload) => { + return { + type: ALLOW_SHOW_SYNC_INDICATOR, + payload + } +} + +export const removeShowSyncIndicator = (payload) => { + return { + type: REMOVE_SHOW_SYNC_INDICATOR, + payload + } +} diff --git a/core/src/redux/app/app-action-types.js b/core/src/redux/app/app-action-types.js index 599ca1e7..212d9148 100644 --- a/core/src/redux/app/app-action-types.js +++ b/core/src/redux/app/app-action-types.js @@ -34,6 +34,8 @@ export const IS_OPEN_DEV_DIALOG = 'IS_OPEN_DEV_DIALOG' export const SET_NEW_NOTIFICATION = 'SET_NEW_NOTIFICATION' export const SET_SIDE_EFFECT= 'SET_SIDE_EFFECT' export const SET_PROFILE_DATA = 'SET_PROFILE_DATA' -export const SET_COIN_BALANCES= 'SET_COIN_BALANCES' -export const ALLOW_QAPP_FRIENDS_LIST= 'ALLOW_QAPP_FRIENDS_LIST' -export const REMOVE_QAPP_FRIENDS_LIST= 'REMOVE_QAPP_FRIENDS_LIST' +export const SET_COIN_BALANCES = 'SET_COIN_BALANCES' +export const ALLOW_QAPP_FRIENDS_LIST = 'ALLOW_QAPP_FRIENDS_LIST' +export const REMOVE_QAPP_FRIENDS_LIST = 'REMOVE_QAPP_FRIENDS_LIST' +export const ALLOW_SHOW_SYNC_INDICATOR = 'ALLOW_SHOW_SYNC_INDICATOR' +export const REMOVE_SHOW_SYNC_INDICATOR = 'REMOVE_SHOW_SYNC_INDICATOR' diff --git a/core/src/redux/app/app-reducer.js b/core/src/redux/app/app-reducer.js index 268b1872..f4d96981 100644 --- a/core/src/redux/app/app-reducer.js +++ b/core/src/redux/app/app-reducer.js @@ -36,9 +36,11 @@ import { UPDATE_BLOCK_INFO, UPDATE_NODE_INFO, UPDATE_NODE_STATUS, - SET_PROFILE_DATA, - ALLOW_QAPP_FRIENDS_LIST, - REMOVE_QAPP_FRIENDS_LIST + SET_PROFILE_DATA, + ALLOW_QAPP_FRIENDS_LIST, + REMOVE_QAPP_FRIENDS_LIST, + ALLOW_SHOW_SYNC_INDICATOR, + REMOVE_SHOW_SYNC_INDICATOR } from './app-action-types.js' import {initWorkersReducer} from './reducers/init-workers.js' import {loginReducer} from './reducers/login-reducer.js' @@ -49,8 +51,6 @@ const chatLastSeen = localForage.createInstance({ name: "chat-last-seen", }); - - const INITIAL_STATE = { loggedIn: false, drawerOpen: false, @@ -88,6 +88,7 @@ const INITIAL_STATE = { qAPPAutoAuth: loadStateFromLocalStorage('qAPPAutoAuth') || false, qAPPAutoLists: loadStateFromLocalStorage('qAPPAutoLists') || false, qAPPFriendsList: loadStateFromLocalStorage('qAPPFriendsList') || false, + showSyncIndicator: loadStateFromLocalStorage('showSyncIndicator') || false, chatLastSeen: [], newTab: null, tabInfo: {}, @@ -228,6 +229,7 @@ export default (state = INITIAL_STATE, action) => { qAPPAutoAuth: action.payload } } + case ALLOW_QAPP_AUTO_LISTS: { saveStateToLocalStorage("qAPPAutoLists", true) return { @@ -266,6 +268,7 @@ export default (state = INITIAL_STATE, action) => { chatLastSeen: action.payload } } + case ADD_CHAT_LAST_SEEN: { const chatId = action.payload.key const timestamp = action.payload.timestamp @@ -299,12 +302,14 @@ export default (state = INITIAL_STATE, action) => { newTab: action.payload } } + case IS_OPEN_DEV_DIALOG: { return { ...state, isOpenDevDialog: action.payload } } + case ADD_TAB_INFO: { const newTabInfo = action.payload if (state.tabInfo[newTabInfo.id] && state.tabInfo[newTabInfo.id].name && newTabInfo.name === state.tabInfo[newTabInfo.id].name) break @@ -319,6 +324,7 @@ export default (state = INITIAL_STATE, action) => { } } } + case SET_TAB_NOTIFICATIONS: { const count = action.payload.count const name = action.payload.name @@ -346,18 +352,21 @@ export default (state = INITIAL_STATE, action) => { newNotification: action.payload } } + case SET_SIDE_EFFECT: { return { ...state, sideEffectAction: action.payload } } + case SET_PROFILE_DATA: { return { ...state, profileData: action.payload } } + case SET_COIN_BALANCES: { const copyBalances = {...state.coinBalances} copyBalances[action.payload.type] = { @@ -370,6 +379,22 @@ export default (state = INITIAL_STATE, action) => { } } + case ALLOW_SHOW_SYNC_INDICATOR: { + saveStateToLocalStorage("showSyncIndicator", true) + return { + ...state, + showSyncIndicator: action.payload + } + } + + case REMOVE_SHOW_SYNC_INDICATOR: { + saveStateToLocalStorage("showSyncIndicator", false) + return { + ...state, + showSyncIndicator: action.payload + } + } + default: return state } diff --git a/plugins/plugins/core/components/ChatScroller-css.js b/plugins/plugins/core/components/ChatScroller-css.js index bf60e6c6..a2e7c367 100644 --- a/plugins/plugins/core/components/ChatScroller-css.js +++ b/plugins/plugins/core/components/ChatScroller-css.js @@ -69,7 +69,7 @@ export const chatStyles = css` .forwarded-text { user-select: none; - color: var(--accent-color); + color: var(--general-color-blue); margin-bottom: 5px; }