Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Subscribers: add plan filtering and sorting #98838

Open
wants to merge 4 commits into
base: trunk
Choose a base branch
from

Conversation

arcangelini
Copy link
Contributor

@arcangelini arcangelini commented Jan 23, 2025

Related to #

Proposed Changes

  • Add query to check paid subscriptions
  • Add paid and free to filter options for query and use state instead of query args to store value
Filter Sort
Screen Shot on 2025-01-23 at 19-29-48 Screen Shot on 2025-01-23 at 19-30-00

Why are these changes being made?

This allows us to filter in the dataview component by plan and sort as well. This is only available if the user has subscribers otherwise subscriptions is not filter/sort-able.

This also need the API update to accommodate this request. 170845-ghe-Automattic/wpcom [ MERGED ] ✅

Testing Instructions

  1. Go to /subscribers/[ YOUR_SITE ]?flags=subscribers-dataviews
  2. If you have subscribers you should be able to filter and sort by them.
  3. Go to /subscribers/[ YOUR_SITE ]
  4. Make sure there are no regressions

@arcangelini arcangelini added Newsletters Subscribers Page The new Subscribers page in Calypso labels Jan 23, 2025
@arcangelini arcangelini self-assigned this Jan 23, 2025
@matticbot matticbot added [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. labels Jan 23, 2025
@matticbot
Copy link
Contributor

matticbot commented Jan 23, 2025

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

App Entrypoints (~22 bytes added 📈 [gzipped])

name                 parsed_size           gzip_size
entry-subscriptions        +42 B  (+0.0%)      +22 B  (+0.0%)

Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used.

Sections (~363 bytes added 📈 [gzipped])

name         parsed_size           gzip_size
subscribers       +896 B  (+0.1%)     +337 B  (+0.1%)
reader             +42 B  (+0.0%)      +26 B  (+0.0%)

Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.

Async-loaded Components (~134 bytes added 📈 [gzipped])

name                                                 parsed_size           gzip_size
async-load-calypso-my-sites-stats-pages-subscribers       +481 B  (+0.3%)     +134 B  (+0.3%)

React components that are loaded lazily, when a certain part of UI is displayed for the first time.

Legend

What is parsed and gzip size?

Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory.
Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.

Generated by performance advisor bot at iscalypsofastyet.com.

@matticbot
Copy link
Contributor

matticbot commented Jan 23, 2025

This PR modifies the release build for the following Calypso Apps:

For info about this notification, see here: PCYsg-OT6-p2

  • notifications

To test WordPress.com changes, run install-plugin.sh $pluginSlug subscriber-dataview/add-filter on your sandbox.

@arcangelini
Copy link
Contributor Author

Just merged the API update. This should be good to test now 👍👍

const isDataView = isEnabled( 'subscribers-dataviews' );
const [ perPage, setPerPage ] = useState( DEFAULT_PER_PAGE );
const [ sortOrder, setSortOrder ] = useState< 'asc' | 'desc' >();
const [ dataViewSortTerm, setDataViewSortTerm ] = useState< SubscribersSortBy >(
SubscribersSortBy.DateSubscribed
);
const [ dataViewFilterOption, setDataViewFilterOption ] = useState< SubscribersFilterBy >(
hasManySubscribers ? SubscribersFilterBy.WPCOM : SubscribersFilterBy.All
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arcangelini Does this initially filter out email subscribers for sites with many subscribers, and then add the filtering option to Dataviews?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Newsletters [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. Subscribers Page The new Subscribers page in Calypso
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants