3x-ui/frontend/src/pages/xray
MHSanaei a31a42fcc5
feat(frontend): Phase 6-vi — WARP + NordVPN provisioning modals
Replaces the toast stubs on the Basics tab and Outbounds toolbar
with the legacy WARP + NordVPN provisioning flows. Both modals now
stage their wireguard outbounds back into templateSettings.outbounds
through the same event channels OutboundsTab uses, so the existing
add / reset / delete / refresh-traffic surface keeps working.

- WarpModal.vue: empty state shows a single Create button that
  generates a wireguard keypair locally (Wireguard.generateKeypair)
  and posts it to /panel/xray/warp/reg; populated state surfaces
  the access_token / device_id / license_key / private_key, lets
  the user upgrade to WARP+ via /panel/xray/warp/license, refreshes
  the account info from /panel/xray/warp/config (plan / quota /
  usage in human-readable bytes), and stages a wireguard outbound
  with the WARP-specific reserved-byte encoding pulled from
  client_id. Add / Reset / Delete go through events the parent
  routes back to templateSettings.outbounds.
- NordModal.vue: dual-tab login (NordVPN access token →
  /panel/xray/nord/reg, or paste a NordLynx private key →
  /panel/xray/nord/setKey). Once authenticated, country / city /
  server selectors fetch from /panel/xray/nord/{countries,servers},
  servers sort by load ascending, the lowest-load server in the
  current city auto-selects. Reset emits oldTag/newTag so the
  parent renames matching routing rules in place; logout emits a
  remove-routing-rules event with prefix `nord-` to purge any
  dangling references.
- XrayPage.vue: holds warpOpen / nordOpen flags, ensures the
  outbounds array exists before mutating it, and wires the modal
  events (add-outbound / reset-outbound / remove-outbound /
  remove-routing-rules) to in-place edits of templateSettings.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 14:44:46 +02:00
..
BalancerFormModal.vue feat(frontend): Phase 6-v — xray Balancers tab + DNS placeholder 2026-05-08 14:30:48 +02:00
BalancersTab.vue feat(frontend): Phase 6-v — xray Balancers tab + DNS placeholder 2026-05-08 14:30:48 +02:00
BasicsTab.vue feat(frontend): Phase 6-ii — xray Basics tab structured editor 2026-05-08 14:18:21 +02:00
DnsTab.vue feat(frontend): Phase 6-v — xray Balancers tab + DNS placeholder 2026-05-08 14:30:48 +02:00
NordModal.vue feat(frontend): Phase 6-vi — WARP + NordVPN provisioning modals 2026-05-08 14:44:46 +02:00
OutboundFormModal.vue feat(frontend): Phase 6-iv — xray Outbounds tab + outbound modal 2026-05-08 14:27:40 +02:00
OutboundsTab.vue feat(frontend): Phase 6-iv — xray Outbounds tab + outbound modal 2026-05-08 14:27:40 +02:00
RoutingTab.vue feat(frontend): Phase 6-iii — xray Routing tab + rule modal 2026-05-08 14:23:02 +02:00
RuleFormModal.vue feat(frontend): Phase 6-iii — xray Routing tab + rule modal 2026-05-08 14:23:02 +02:00
useXraySetting.js feat(frontend): Phase 6-iv — xray Outbounds tab + outbound modal 2026-05-08 14:27:40 +02:00
WarpModal.vue feat(frontend): Phase 6-vi — WARP + NordVPN provisioning modals 2026-05-08 14:44:46 +02:00
XrayPage.vue feat(frontend): Phase 6-vi — WARP + NordVPN provisioning modals 2026-05-08 14:44:46 +02:00