Skip to content

Add 'Manage Pending Invites' on friends/pending page - #2369

Open
ImBIOS wants to merge 1 commit into
IsThereAnyDeal:developfrom
ImBIOS:feat/manage-pending-invites
Open

Add 'Manage Pending Invites' on friends/pending page#2369
ImBIOS wants to merge 1 commit into
IsThereAnyDeal:developfrom
ImBIOS:feat/manage-pending-invites

Conversation

@ImBIOS

@ImBIOS ImBIOS commented Aug 18, 2026

Copy link
Copy Markdown

Fixes/relates to: #2368

What

Adds a "Manage Pending Invites" mode to steamcommunity.com/<id>/friends/pending, mirroring Steam's native "Manage Friends List" on /friends.

The Manage Pending Invites button is placed in the Sent Invites title bar. Toggling it enters a selection mode over both received (#search_results) and sent (#search_results_sentinvites) invite rows, showing a manage panel (reusing Steam's manage_friends_panel styles) with:

  • Select All / None / Inverse
  • Selected count
  • Bulk actions:
    • Accept (received invites) — POST /actions/AddFriendAjax with accept_invite=1, per invite (Steam has no bulk accept endpoint)
    • Ignore (received invites) — POST friends/action action=ignore_invite (same as Steam's "Ignore All")
    • Cancel Invites (sent invites, with confirm dialog) — POST friends/action action=remove (same as Steam's per-row ConfirmCancelInvite)
  • Successfully handled rows are removed from the DOM and the empty-state messages update.

Why

Steam's /friends/pending has no manage mode: sent invites can only be cancelled one-by-one (each with a confirm dialog), and there's no way to bulk-accept/ignore received invites beyond the all-or-nothing "Ignore All". Users with many pending sent invites have to click through each one.

Technical notes

  • The pending page's rows already carry Steam's manage-mode markup (.selectable.invite_row + .select_friend checkbox, data-steamid), and adding the .manage class shows the checkbox indicator (Steam CSS: .selectable.manage .indicator).
  • Steam's own ToggleManageFriends() only styles #search_results > .selectable (received); sent invites need the .manage class applied explicitly, so this feature implements its own toggle (no page-context scriptlet needed, no g_bManage dependency).
  • Own profile only (checkPrerequisites).
  • New feature wired into CFriendsAndGroups (context already matches /friends/pending).

Status

Draft — UI placement, manage toggle, selection and empty-state handling verified live against the real page via a non-invasive DOM injection (no extension loaded, no data changes). The bulk AJAX calls mirror Steam's own friends.js/profile.js endpoints exactly. Live end-to-end testing of the actual POST actions (Accept/Ignore/Cancel) still pending.

Adds a 'Manage Pending Invites' button to the Sent Invites title bar on
the friends/pending page, toggling a selection mode over both received
and sent invite rows with Select All/None/Inverse and bulk actions:

- Accept: POST /actions/AddFriendAjax (accept_invite=1), per invite
- Ignore: POST friends/action action=ignore_invite (bulk)
- Cancel Invites: POST friends/action action=remove (bulk, with confirm)

Reuses Steam's manage_friends_panel styles and .selectable.manage row
markup. Own profile only.
@ImBIOS
ImBIOS marked this pull request as ready for review August 18, 2026 08:01
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.

1 participant