Skip to content

feat: account rename, drag reorder, display overrides, debug console fixes#16

Merged
lshw54 merged 9 commits intomainfrom
feat/account-management-improvements
Apr 22, 2026
Merged

feat: account rename, drag reorder, display overrides, debug console fixes#16
lshw54 merged 9 commits intomainfrom
feat/account-management-improvements

Conversation

@lshw54
Copy link
Copy Markdown
Owner

@lshw54 lshw54 commented Apr 21, 2026

Problem

User feedback (#15) requested:

  • Account rename fails for TW region (API URL was hardcoded to HK)
  • No way to reorder accounts (25+ accounts hard to navigate)
  • Account cards show #SN tag instead of game account ID
  • Debug console shows [] INFO duplicates and doesn't auto-refresh
  • WebView2 autofill suggestions appear on text inputs

Account Rename

  • Fix TW rename: use tw.beanfun.com for API (was hardcoded to bfweb.hk.beanfun.com)
  • HK has no server-side rename API — returns false, caller saves locally
  • Edit modal: TW shows "同步至官方伺服器" checkbox (default off), HK shows "僅限本地修改" note
  • Local renames saved to DPAPI-encrypted display_overrides.dat in %APPDATA%
  • get_game_accounts and refresh_accounts apply name overrides server-side before returning to frontend

Account Drag Reorder

  • Custom mouse-based drag on grip icon (⠿), no HTML5 drag API (no forbidden cursor)
  • 4px movement threshold before drag activates
  • Live reorder preview during drag — items swap positions in real time
  • Dragged item at 50% opacity, displaced items get a subtle scale bump animation (dragBump keyframe)
  • Order persisted to display_overrides.dat (DPAPI encrypted, same file as name overrides)
  • Drop only invalidates query cache — no server refetch

Display Changes

  • Account cards/list show game account ID instead of #SN
  • DisplayOverrides struct now has names (HashMap) + order (Vec), auto-migrates legacy format

Form Input Fixes

  • All <input> and <select> elements now have name attribute (fixes browser warning)
  • Text inputs have autoComplete="off" + data-form-type="other" to suppress WebView2 autofill

Debug Console

  • Fix log parsing regex to match +08:00 timezone offset (was only matching Z)
  • Strip [] span markers and module::path: prefixes from log lines
  • Add 2-second polling for live log refresh (was load-once on open)

lshw54 added 6 commits April 22, 2026 04:09
…g order backend

- Fix rename API: TW uses tw.beanfun.com, HK has no server API
- Edit modal: TW shows 'sync to server' checkbox (default off),
  HK shows 'local only' note
- DisplayOverrides struct with names + order, DPAPI encrypted
- get_game_accounts and refresh_accounts apply name overrides
  and custom sort order from display_overrides.dat
- set_display_override, set_account_order, get_display_overrides
  commands added
- Account cards show game account ID instead of #SN
- i18n keys for edit_sync, edit_local_only (EN/繁中/简中)
- Custom mouse-based drag (no HTML5 drag API, no forbidden cursor)
- Grip icon (⠿) on hover for both card and list view
- 4px threshold before drag starts to prevent accidental triggers
- Live reorder preview during drag, dragged item at 50% opacity
- Displaced items get a subtle scale bump animation (dragBump keyframe)
- Order saved to DPAPI-encrypted display_overrides.dat on drop
- Invalidates query cache instead of server refetch for instant UX
- Shows account.id instead of #sn on cards
CSS @Keyframes dragBump: scale 1 → 1.04 → 1 over 200ms.
Used by AccountGrid to animate displaced items during drag.
…efresh

- DisplayOverrides now has 'names' (HashMap) and 'order' (Vec)
- get_game_accounts and refresh_accounts apply custom sort order
- set_account_order command saves order to encrypted storage
- Legacy HashMap format auto-migrated on load
- Add name attribute to all inputs/selects missing id or name
- Add autoComplete=off and data-form-type=other to text inputs
  to suppress WebView2 autofill suggestions
- Fixes browser warning about form fields without id/name
- Fix regex to match timezone offset timestamps (+08:00)
- Strip [] span markers and module::path: prefixes from log lines
- Add 2-second polling interval for live log updates
- Add name/autoComplete to select and search input
@lshw54 lshw54 self-assigned this Apr 21, 2026
lshw54 added 3 commits April 22, 2026 20:26
- Emit 'patcher-killed' event with client + server version info
- Read client version from MapleStory.exe (ProductMinorPart.FileBuildPart)
- Connect to tw.login.maplestory.beanfun.com:8484 to read server version
  from handshake packet (same as old Beanfun client)
- Add Win32_Storage_FileSystem feature to windows-sys for GetFileVersionInfo
- Works for both launch_game and launch_game_direct
- Move patcher listener from MainPage to App.tsx so it works
  on all pages (including login page for direct launch)
- Modal shows client version, server version, update hint,
  and download button linking to beanfun download page
- Fix duplicate update check by increasing fallback delay to 6s
Original MapleLink wording — not copied from old client:
- 'Patcher.exe was automatically blocked to prevent game files
  from being overwritten'
- Current/latest version labels
- Hint to disable in settings + manual download button
@lshw54 lshw54 marked this pull request as ready for review April 22, 2026 12:49
@lshw54 lshw54 merged commit a35dcd5 into main Apr 22, 2026
3 checks passed
@lshw54 lshw54 deleted the feat/account-management-improvements branch April 22, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

帳號管理改進:改名修復、拖曳排序、顯示遊戲帳號 ID、客服中心登入狀態

1 participant