Skip to content

Comments

Expose picker and resource picker APIs for all rendering extensions#3781

Merged
billfienberg merged 1 commit into2026-01from
bf/expose-picker-apis-rendering-targets-2026-01
Jan 30, 2026
Merged

Expose picker and resource picker APIs for all rendering extensions#3781
billfienberg merged 1 commit into2026-01from
bf/expose-picker-apis-rendering-targets-2026-01

Conversation

@billfienberg
Copy link
Contributor

@billfienberg billfienberg commented Jan 30, 2026

Background

Fixes a bug where picker and resource picker APIs were only available to block, action, and print extensions. This PR exposes them to all rendering extensions.

Replaces #3554.

Solution

Introduces StandardRenderingExtensionApi that extends StandardApi with resourcePicker and picker APIs. All rendering extension APIs (BlockExtensionApi, ActionExtensionApi, PrintActionExtensionApi, ValidationSettingsApi, OrderRoutingRuleApi) now extend this instead of StandardApi directly.

This keeps StandardApi minimal for non-rendering extensions like admin.app.tools.data that have no use for picker dialogs.

🎩

  1. Generate an order routing rule settings extension shopify app generate extension --template order_routing_location_rule_ui
  2. Verify that you can access shopify.picker and shopify.resourcePicker

Checklist

  • I have 🎩'd these changes
  • I have updated relevant documentation

🤖 This PR was generated with Claude Code

@billfienberg
Copy link
Contributor Author

/snapit

@billfienberg
Copy link
Contributor Author

/snapit isn't working because the issue_comment trigger is missing from the deploy workflow on the 2026-01 branch. It was lost when merging from 2025-10.

Fix: #3782

Copy link
Member

@vividviolet vividviolet left a comment

Choose a reason for hiding this comment

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

Code looks great - thanks Bill!

Introduces StandardRenderingExtensionApi that extends StandardApi with
resourcePicker and picker APIs. All rendering extension APIs now extend
this instead of StandardApi directly, giving them access to picker APIs.

This keeps StandardApi minimal for non-rendering extensions like
admin.app.tools.data that have no use for picker dialogs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@billfienberg billfienberg force-pushed the bf/expose-picker-apis-rendering-targets-2026-01 branch from 7622834 to b7d6d8b Compare January 30, 2026 20:59
@billfienberg
Copy link
Contributor Author

/snapit

@shopify-github-actions-access
Copy link
Contributor

🫰✨ Thanks @billfienberg! Your snapshot has been published to npm.

Test the snapshot by updating your package.json with the newly published version:

"@shopify/ui-extensions": "0.0.0-snapshot-20260130210439"

@billfienberg
Copy link
Contributor Author

🎩 Tophat Take 2

✅ Working as excpted

(property) StandardRenderingExtensionApi<"admin.settings.order-routing-rule.render">.picker: (options: PickerOptions) => Promise<Picker>
image

Copy link
Contributor

@kbav kbav left a comment

Choose a reason for hiding this comment

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

Pairing, can see that the types came in correctly when using the snapshot 👍

@billfienberg billfienberg merged commit 21a83fa into 2026-01 Jan 30, 2026
6 checks passed
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.

3 participants