diff --git a/VERSION.properties b/VERSION.properties
index 85efee4..86768f4 100644
--- a/VERSION.properties
+++ b/VERSION.properties
@@ -1,2 +1,2 @@
-client.version=1.2.112
-server.version=1.2.104
+client.version=1.2.113
+server.version=1.2.105
diff --git a/shine-UI/js/pages/show-keys-view.js b/shine-UI/js/pages/show-keys-view.js
index 29a1273..1aa1b8f 100644
--- a/shine-UI/js/pages/show-keys-view.js
+++ b/shine-UI/js/pages/show-keys-view.js
@@ -40,13 +40,28 @@ export function render({ navigate }) {
const renderField = (id, label) => {
const row = document.createElement('div');
row.className = 'key-card stack';
+ const eyeIcon = `
+
+ `;
+ const eyeOffIcon = `
+
+ `;
row.innerHTML = `
${label}
-
+
*****
`;
+ row._eyeIcon = eyeIcon;
+ row._eyeOffIcon = eyeOffIcon;
return row;
};
@@ -59,21 +74,29 @@ export function render({ navigate }) {
const setMissingState = (id) => {
const valueEl = card.querySelector(`[data-value="${id}"]`);
const btnEl = card.querySelector(`[data-toggle="${id}"]`);
+ const field = btnEl?.closest('.key-card');
valueEl.textContent = 'нет данных';
btnEl.disabled = true;
- btnEl.textContent = 'Нет';
+ btnEl.innerHTML = field?._eyeOffIcon || '';
+ btnEl.setAttribute('aria-label', 'Нет данных');
+ btnEl.title = 'Нет данных';
};
const updateField = (id) => {
const valueEl = card.querySelector(`[data-value="${id}"]`);
const btnEl = card.querySelector(`[data-toggle="${id}"]`);
+ const field = btnEl?.closest('.key-card');
if (!keys[id]) {
setMissingState(id);
return;
}
valueEl.textContent = visible[id] ? keys[id] : '*****';
btnEl.disabled = false;
- btnEl.textContent = visible[id] ? 'Скрыть' : 'Показать';
+ btnEl.innerHTML = visible[id]
+ ? field?._eyeIcon || ''
+ : field?._eyeOffIcon || '';
+ btnEl.setAttribute('aria-label', visible[id] ? 'Скрыть ключ' : 'Показать ключ');
+ btnEl.title = visible[id] ? 'Скрыть ключ' : 'Показать ключ';
};
card.querySelectorAll('[data-toggle]').forEach((button) => {
diff --git a/shine-UI/styles/components.css b/shine-UI/styles/components.css
index 2bfd8bb..17519f8 100644
--- a/shine-UI/styles/components.css
+++ b/shine-UI/styles/components.css
@@ -1281,6 +1281,24 @@ textarea.input {
letter-spacing: 0;
}
+.key-toggle-btn {
+ width: 36px;
+ height: 36px;
+ min-height: 36px;
+ min-width: 36px;
+ padding: 0;
+ display: grid;
+ place-items: center;
+ flex: 0 0 auto;
+ border-radius: 10px;
+}
+
+.key-toggle-icon {
+ width: 18px;
+ height: 18px;
+ display: block;
+}
+
.qr-demo {
width: 64px;
height: 64px;