mirror of
https://github.com/by-sonic/tglock.git
synced 2026-08-11 08:43:20 +03:00
feat(gui): показывать адрес для других устройств в LAN-режиме (#40)
Второй человек за неделю не смог подключить телефон, потому что адрес негде взять. В #36 @modx-arseniy вписал в Telegram на Android настройки «как в клиентах на винде» — то есть 127.0.0.1, который на другом устройстве означает само это устройство, а не компьютер с прокси. Раньше в README было написано, что адрес показывается в интерфейсе; это оказалось неправдой, и я тогда исправил README вместо приложения. Теперь исправлено приложение. В LAN-режиме на главном экране появляется карточка с адресом вида 192.168.1.7:1080. Нажатие копирует его в буфер. Под адресом — предупреждение про 127.0.0.1, потому что именно туда люди и уходят. Адрес берётся из работающего слушателя, а не из текущих настроек: если человек поменял порт, но не перезапустил прокси, показать надо тот, на котором прокси реально поднят. Логика вынесена в чистую функцию share_address и покрыта тестами: на выключенном прокси и на loopback делиться нечем, в LAN-режиме адрес обязан содержать порт и не быть ни 0.0.0.0, ни 127.0.0.1. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
This commit is contained in:
@@ -847,3 +847,53 @@ input:disabled {
|
||||
0 19px 52px rgba(9, 182, 133, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
/* Адрес для подключения других устройств. Показывается только в LAN-режиме:
|
||||
люди искали его в интерфейсе, не находили и вписывали 127.0.0.1, который на
|
||||
телефоне означает сам телефон (by-sonic/tglock#36). */
|
||||
.share-card {
|
||||
margin-top: 14px;
|
||||
padding: 14px 16px;
|
||||
border-radius: 14px;
|
||||
background: rgba(42, 171, 238, 0.08);
|
||||
border: 1px solid rgba(42, 171, 238, 0.24);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.share-label {
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.02em;
|
||||
color: var(--text-muted, #8b949e);
|
||||
}
|
||||
|
||||
.share-address {
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 6px 0 8px;
|
||||
padding: 6px 8px;
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
background: transparent;
|
||||
color: var(--accent, #2aabee);
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 150ms ease;
|
||||
}
|
||||
|
||||
.share-address:hover,
|
||||
.share-address:focus-visible {
|
||||
background: rgba(42, 171, 238, 0.14);
|
||||
}
|
||||
|
||||
.share-hint {
|
||||
font-size: 11px;
|
||||
line-height: 1.45;
|
||||
color: var(--text-muted, #8b949e);
|
||||
}
|
||||
|
||||
.share-hint code {
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user