Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
32ef764
Add design spec: modernize Jetpack Beta plugin UI
enejb Jun 1, 2026
ea07350
Spec: use AdminPage (jetpack-components) for header/footer, matching …
enejb Jun 1, 2026
07ce273
Add implementation plan: modernize Jetpack Beta UI
enejb Jun 1, 2026
146bcf6
Jetpack Beta: add JS build tooling and wp-abilities dependency
enejb Jun 1, 2026
d474ec4
Jetpack Beta: add read abilities (list-plugins, get-plugin, get-setti…
enejb Jun 1, 2026
836b217
Jetpack Beta: harden get-plugin null/WP_Error handling and fix abilit…
enejb Jun 1, 2026
538ebf7
Jetpack Beta: add write abilities (activate-branch, update-settings) …
enejb Jun 1, 2026
ae7b67f
Jetpack Beta: refresh plugin view after activation and drop unused in…
enejb Jun 1, 2026
b293b16
Jetpack Beta: React app scaffold with AdminPage chrome and abilities …
enejb Jun 1, 2026
8c524ca
Jetpack Beta: implement plugin-list screen and global toggles
enejb Jun 1, 2026
b0e1778
Jetpack Beta: serialize settings toggles and show loading spinner
enejb Jun 1, 2026
0717b11
Jetpack Beta: implement plugin-manage screen with branch activation
enejb Jun 1, 2026
5be2f8d
Jetpack Beta: fix manage-screen header, default branch visibility, an…
enejb Jun 1, 2026
184b219
Jetpack Beta: remove legacy PHP templates, vanilla JS, and hand-rolle…
enejb Jun 1, 2026
9ac60e1
Jetpack Beta: drop stale template reference in notice doc comment
enejb Jun 1, 2026
1e0e5dc
Jetpack Beta: add changelog entry for the UI modernization
enejb Jun 1, 2026
4aef4ce
Jetpack Beta: fix abilities REST integration (GET reads, input envelo…
enejb Jun 1, 2026
10db3c5
Jetpack Beta: mark anchor-rendered buttons as non-native for correct …
enejb Jun 1, 2026
15b9165
Jetpack Beta: lay out global toggles on a single row
enejb Jun 1, 2026
1e4d1e4
Jetpack Beta: contained layout, clickable plugin cards with chevron, …
enejb Jun 1, 2026
c8ba54f
Jetpack Beta: constrain the manage screen to the same fixed-width con…
enejb Jun 1, 2026
7c09965
Jetpack Beta: render manage breadcrumb with the admin-ui Breadcrumbs …
enejb Jun 1, 2026
61b68ff
Jetpack Beta: collapse single-branch sections into one card
enejb Jun 1, 2026
939079c
Jetpack Beta: custom footer without Products/Help links; make To Test…
enejb Jun 1, 2026
88855dd
Jetpack Beta: replace loading spinners with skeleton placeholders
enejb Jun 1, 2026
d904b8b
Jetpack Beta: pin header/footer via admin-page-layout; render plugin …
enejb Jun 1, 2026
d157337
Jetpack Beta: preload and remember the plugins list
enejb Jun 1, 2026
17db195
Jetpack Beta: move scrollbar to the page edge and show wporg plugin i…
enejb Jun 1, 2026
ec54198
Jetpack Beta: show global settings only on the overview screen
enejb Jun 1, 2026
4b3f980
Jetpack Beta: fall back to a generic plugin icon for non-wporg plugins
enejb Jun 1, 2026
2bdc2b3
Jetpack Beta: fix horizontal scroll on mobile
enejb Jun 1, 2026
bdc635e
Jetpack Beta: add breathing room between the last list item and the f…
enejb Jun 1, 2026
8de4c44
Jetpack Beta: simplify — shared error helper, dedup toggle handlers, …
enejb Jun 1, 2026
a2a5e29
Remove internal planning docs from the branch
enejb Jun 1, 2026
6f31ea3
Jetpack Beta: restore the "updates available" UI
enejb Jun 1, 2026
53e18e2
Jetpack Beta: show pending updates as a non-dismissable warning Notice
enejb Jun 1, 2026
ad98179
Fix CI: correct Beta plugin bugs-label and phan suppressions
enejb Jun 2, 2026
0e825f1
Jetpack Beta: address Copilot review feedback
enejb Jun 2, 2026
f550eb1
Jetpack Beta: address PR review findings
enejb Jun 2, 2026
b51035c
Jetpack Beta: style the plugin card link as a card, not a text link
enejb Jun 2, 2026
8bcfc7c
Jetpack Beta: address simison review feedback (#1–#4)
enejb Jun 2, 2026
01ecc9f
Jetpack Beta: make the plugin list a compact single-card list
enejb Jun 2, 2026
2203265
Jetpack Beta: let feature-branch search match PR numbers and GitHub URLs
enejb Jun 2, 2026
f9e910d
Jetpack Beta: round the plugin row focus ring to match the card
enejb Jun 2, 2026
7df3069
Jetpack Beta: show pending-update notices as info instead of warning
enejb Jun 2, 2026
f2f90ad
Jetpack Beta: make the branch picker a compact list like the plugin list
enejb Jun 2, 2026
77a5eb0
Jetpack Beta: unify row :focus with :focus-visible and compact the sk…
enejb Jun 2, 2026
2a98039
Jetpack Beta: add a welcome/intro card to the overview screen
enejb Jun 2, 2026
6901a1e
Jetpack Beta: address anomiex review — self-reload + drop phan suppre…
enejb Jun 2, 2026
3d020ff
Jetpack Beta: show the concrete version on Bleeding Edge / Release Ca…
enejb Jun 2, 2026
c606c9f
Jetpack Beta: show the concrete dev version on plugin list rows too
enejb Jun 2, 2026
72d9a76
Jetpack Beta: drop the localStorage plugin-list cache
enejb Jun 2, 2026
db251a0
Jetpack Beta: fix self-reload for the -dev build; review nits
enejb Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: added

JetpackFooter: add a `showDefaultLinks` prop (default `true`) to opt out of the built-in Products/Help links.
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,15 @@ declare global {
* @param {JetpackFooterProps} props - Component properties.
* @return {ReactNode} JetpackFooter component.
*/
const JetpackFooter: FC< JetpackFooterProps > = ( { className, menu, ...otherProps } ) => {
const JetpackFooter: FC< JetpackFooterProps > = ( {
className,
menu,
showDefaultLinks = true,
...otherProps
} ) => {
let items: JetpackFooterMenuItem[] = [];

if ( ! isWpcomPlatformSite() && ! window?.JetpackNetworkAdminData ) {
if ( showDefaultLinks && ! isWpcomPlatformSite() && ! window?.JetpackNetworkAdminData ) {
items = [
{
label: __( 'Products', 'jetpack-components' ),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,11 @@ export type JetpackFooterProps = {
* Additional links to display in the footer.
*/
menu?: JetpackFooterMenuItem[];

/**
* Whether to include the default "Products" and "Help" links (shown on
* non-WordPress.com, non-network-admin contexts). Set to `false` for screens
* where those links aren't relevant. Defaults to `true`.
*/
showDefaultLinks?: boolean;
};
3 changes: 3 additions & 0 deletions projects/plugins/beta/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
/vendor/
/build/
/node_modules/
/.cache/
10 changes: 10 additions & 0 deletions projects/plugins/beta/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const config = {
presets: [
[
'@automattic/jetpack-webpack-config/babel/preset',
{ pluginReplaceTextdomain: { textdomain: 'jetpack-beta' } },
],
],
};

module.exports = config;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: changed

Modernized the Beta Tester admin interface with a React UI built on the WordPress design system, backed by the WordPress Abilities API.
2 changes: 2 additions & 0 deletions projects/plugins/beta/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@
},
"require": {
"automattic/jetpack-admin-ui": "@dev",
"automattic/jetpack-assets": "@dev",
"automattic/jetpack-autoloader": "@dev",
"automattic/jetpack-logo": "@dev",
"automattic/jetpack-wp-abilities": "@dev",
"composer/semver": "3.4.3",
"erusev/parsedown": "1.7.4"
},
Expand Down
134 changes: 132 additions & 2 deletions projects/plugins/beta/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions projects/plugins/beta/jetpack-beta.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
}

define( 'JPBETA__PLUGIN_FOLDER', dirname( plugin_basename( __FILE__ ) ) );
define( 'JPBETA__PLUGIN_FILE', __FILE__ );
define( 'JPBETA_VERSION', '4.2.0' );

define( 'JETPACK_BETA_PLUGINS_URL', 'https://betadownload.jetpack.me/plugins.json' );
Expand Down Expand Up @@ -116,6 +117,8 @@ function jetpack_beta_admin_missing_autoloader() {

Automattic\JetpackBeta\Hooks::setup();

add_action( 'plugins_loaded', array( Automattic\JetpackBeta\Abilities\Beta_Abilities::class, 'init' ), 20 );

register_activation_hook( __FILE__, array( Automattic\JetpackBeta\Hooks::class, 'activate' ) );
register_deactivation_hook( __FILE__, array( Automattic\JetpackBeta\Hooks::class, 'deactivate' ) );

Expand Down
53 changes: 53 additions & 0 deletions projects/plugins/beta/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"private": true,
"name": "@automattic/jetpack-beta",
"description": "Serves beta and PR branches of Jetpack to a WordPress install near you!",
"homepage": "https://jetpack.com",
"bugs": {
"url": "https://github.com/Automattic/jetpack/labels/[Plugin] Beta"
},
"repository": {
"type": "git",
"url": "https://github.com/Automattic/jetpack.git",
"directory": "projects/plugins/beta"
},
"license": "GPL-2.0-or-later",
"author": "Automattic",
"scripts": {
"build": "pnpm run clean && pnpm run build-client",
"build-client": "webpack",
"build-production": "NODE_ENV=production BABEL_ENV=production pnpm run build-client",
"clean": "rm -rf build/",
"typecheck": "tsgo --noEmit",
"watch": "pnpm run build && webpack watch"
},
"browserslist": [
"extends @wordpress/browserslist-config"
],
"dependencies": {
"@automattic/jetpack-base-styles": "workspace:*",
"@automattic/jetpack-components": "workspace:*",
"@wordpress/api-fetch": "7.46.0",
"@wordpress/components": "33.1.0",
"@wordpress/element": "6.46.0",
"@wordpress/i18n": "6.19.0",
"@wordpress/icons": "13.1.0",
"@wordpress/ui": "0.13.0",
"@wordpress/url": "4.46.0",
"react": "18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@automattic/jetpack-webpack-config": "workspace:*",
"@babel/core": "7.29.0",
"@babel/preset-env": "7.29.2",
"@babel/runtime": "7.29.2",
"@types/react": "18.3.28",
"@typescript/native-preview": "7.0.0-dev.20260225.1",
"@wordpress/browserslist-config": "6.46.0",
"sass-embedded": "1.97.3",
"sass-loader": "16.0.5",
"webpack": "5.105.2",
"webpack-cli": "6.0.1"
}
}
Loading
Loading