---
title: ResourceList
description: >-
`ResourceList` displays a filterable collection of objects of the same type,
like products or customers.
api_name: product-subscription-extensions
source_url:
html: >-
https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist
md: >-
https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist.md
---
ExpandOn this page
* [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist.md#props)
* [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist.md#guidelines)
# ResourceList
Deprecated
Product subscription app extensions won't be supported as of February 9, 2026. You should migrate existing product subscription app extensions to [purchase options extensions](https://shopify.dev/docs/apps/build/purchase-options/purchase-options-extensions).
`ResourceList` displays a filterable collection of objects of the same type, like products or customers.
`ResourceList` should help merchants find an object and navigate to a full-page representation of it. A resource list should contain `ResourceItem` components.
##### JavaScript
```ts
import {extend, ResourceList, ResourceItem} from '@shopify/admin-ui-extensions';
extend('Playground', (root) => {
const resourceitem1 = root.createComponent(ResourceItem, {
id: '1234',
onPress: () => console.log('Pressed 1'),
});
resourceitem1.appendChild('Cool item');
const resourceitem2 = root.createComponent(ResourceItem, {
id: '5678',
onPress: () => console.log('Pressed 2'),
});
resourceitem2.appendChild('Cooler item');
const resourcelist = root.createComponent(ResourceList, {
filterControl: {
queryValue: '123',
queryPlaceholder: 'Filter list',
onQueryChange: (queryValue) => console.log('Filtering for', queryValue),
onQueryClear: () => console.log('Clear value'),
},
});
resourcelist.appendChild(resourceitem1);
resourcelist.appendChild(resourceitem2);
root.appendChild(resourcelist);
root.mount();
});
```
##### React
```tsx
import React from 'react';
import {extend, render, ResourceList, ResourceItem} from '@shopify/admin-ui-extensions-react';
function App() {
return (
console.log('Filtering for', queryValue),
onQueryClear: () => console.log('Clear filters'),
}}
>
console.log('Pressed 1')}>
Cool item
console.log('Pressed 2')}>
Cooler item
);
}
extend(
'Playground',
render(() => ),
);
```
***
## Props
optional = ?
| Name | Type | Description |
| - | - | - |
| filterControl? | `FilterControl` | |
### FilterControl
| Name | Type | Description |
| - | - | - |
| queryValue? | `string` | Search query value |
| queryPlaceholder? | `string` | Placeholder for search query field |
| onQueryChange | `(queryValue: string) => void` | Callback when search query changes |
| onQueryClear | `() => void` | Callback when the search field is cleared |
***
## Guidelines
A resource list should contain only `ResourceItem` components.
| ✅ Do | 🛑 Don't |
| - | - |
| Use ResourceList to show a summary of the resource | ResourceLists should not contain elements other than ResourceItems |
For more guidelines, refer to Polaris' [Resource List best practices](https://polaris.shopify.com/components/lists/resource-list#best-practices).
***
* [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist.md#props)
* [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/resourcelist.md#guidelines)