mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
ClientInfoModal — Copy URL section reskinned:
- Each link is a single row: [PROTOCOL] [remark] [copy] [QR]
instead of a card with the raw 200-char URL printed inline
- Remark is parsed per-protocol — VMess pulls it from the
base64-JSON `ps` field, the rest from the `#fragment`
- The row title strips the client email suffix so the same
string isn't repeated three times in the modal; the QR
popover still uses the full remark (it's the QR's own name
for the download file)
- QR button opens an inline Popover with the existing QrPanel,
size 220, destroyed on close
- Subscription section uses the same row layout (SUB / JSON
tags, clickable subId, copy + QR actions)
- New per-protocol Tag colors so the protocol is identifiable
at a glance
ClientInfoModal — Attached inbounds + ClientsPage table column:
- Chip format changed from `${remark} (${proto}:${port})` to
just `${proto}:${port}` — when an admin attaches 5 inbounds
to one client the remark was repeated 5 times and wrapped onto
two lines
- Only the first inbound chip is shown; the rest collapse into
a `+N` chip that opens a Popover with the full list (remark
included). INBOUND_CHIP_LIMIT = 1
- Per-protocol Tag colors
- Tooltip on each chip shows the full `${remark}
(${proto}:${port})`
- Table column pinned to width: 170 so the row doesn't reserve
the old 300px of whitespace next to the compact chip
Comment row in the info table is always shown now (renders `-`
when unset) so the layout doesn't jump per-client.
VmessSecuritySchema gets a preprocess pass that maps legacy
`security: ""` (persisted on pre-enum-lock VMess inbounds) back
to `'auto'`. z.enum's `.default()` only fires on a missing
field, not on an empty string — without this, old rows fail
validation with "expected one of aes-128-gcm|chacha20-poly1305|
auto|none|zero". `z.infer` is taken from the raw enum so the
inferred type stays the union, not `unknown`.
i18n adds a `more` key (en-US + fa-IR) used by the overflow
chip label.
|
||
|---|---|---|
| .. | ||
| ar-EG.json | ||
| en-US.json | ||
| es-ES.json | ||
| fa-IR.json | ||
| id-ID.json | ||
| ja-JP.json | ||
| pt-BR.json | ||
| ru-RU.json | ||
| tr-TR.json | ||
| uk-UA.json | ||
| vi-VN.json | ||
| zh-CN.json | ||
| zh-TW.json | ||