Skip to content

Conversation

@obenland
Copy link
Member

Screenshot 2025-10-24 at 3 51 58 PM Screenshot 2025-10-24 at 3 51 51 PM

Implement a modern followers management interface using WordPress DataViews component:

  • Create new admin-followers block with DataViews implementation
  • Add REST API enhancements for actor_info and follow_status fields
  • Implement server-side filtering by follower relationships
  • Add field components for avatar, name, profile, last updated, and follow status
  • Support table and grid view layouts with proper primaryField/mediaField configuration
  • Add actions for removing followers, blocking accounts, and following back
  • Use server-side pagination via useEntityRecords hook
  • Update tsconfig.json to support ES2016 features (Array.includes)

The new interface provides a more user-friendly and feature-rich experience for managing ActivityPub followers.

Fixes #

Proposed changes:

Other information:

  • Have you written new tests for your changes, if applicable?

Testing instructions:

  • Go to '..'

Changelog entry

  • Automatically create a changelog entry from the details below.
Changelog Entry Details

Significance

  • Patch
  • Minor
  • Major

Type

  • Added - for new features
  • Changed - for changes in existing functionality
  • Deprecated - for soon-to-be removed features
  • Removed - for now removed features
  • Fixed - for any bug fixes
  • Security - in case of vulnerabilities

Message

Implement a modern followers management interface using WordPress DataViews component:

- Create new admin-followers block with DataViews implementation
- Add REST API enhancements for actor_info and follow_status fields
- Implement server-side filtering by follower relationships
- Add field components for avatar, name, profile, last updated, and follow status
- Support table and grid view layouts with proper primaryField/mediaField configuration
- Add actions for removing followers, blocking accounts, and following back
- Use server-side pagination via useEntityRecords hook
- Update tsconfig.json to support ES2016 features (Array.includes)

The new interface provides a more user-friendly and feature-rich experience for managing ActivityPub followers.
- Add SnackbarList component to display success/error notifications
- Position snackbars at bottom-left with awareness of admin menu width
- Use invalidateResolutionForStoreSelector to fix cache refresh issues
- Add _n() for proper pluralization in action messages
- Use unshift() to add Follow Back action at beginning of actions list
- Add missing dependencies to package.json:
  - @wordpress/dataviews
  - @wordpress/date
  - @wordpress/notices
- Add @wordpress/admin-ui package for Page component
- Wrap followers DataViews in Page component with "Followers" title
- Remove hardcoded H1 title from PHP template
- Use window.activityPubAdmin.namespace for REST API paths
- Move dispatch and namespace to module level for DRY code
- Add leading slash to API paths for consistency
- Fix comment formatting (add periods)
- Enqueue followers scripts on settings page followers tab
- Set userId to 0 for site-wide followers view
- Remove unused filter hook registration
- Update follower_of minimum to 0 for site-wide queries
- Add @wordpress/views package for preferences storage
- Replace useState with useView hook for automatic persistence
- User preferences (view type, items per page, visible fields, etc) now saved
- Preferences stored per current user using WordPress preferences API
@github-actions github-actions bot added [Feature] REST API [Feature] WP Admin [Focus] Editor Changes to the ActivityPub experience in the block editor [Status] In Progress labels Oct 29, 2025
@obenland obenland changed the title Experiment: DataViews-based followers management interface Experiment: DataViews-based Followers UI Oct 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Feature] REST API [Feature] WP Admin [Focus] Editor Changes to the ActivityPub experience in the block editor [Status] In Progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants