Skip to content

Commit 591de24

Browse files
authored
Merge pull request #3534 from Shopify/my/register-details-extension-targets
implement register-details POS Extension targets
2 parents e5948cb + 08cf589 commit 591de24

12 files changed

+183
-0
lines changed

.changeset/proud-paths-listen.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/ui-extensions': minor
3+
---
4+
5+
Adds register details targets
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import {render} from 'preact';
2+
3+
export default async () => {
4+
render(<Extension />, document.body);
5+
};
6+
7+
const Extension = () => {
8+
return <s-button onClick={() => shopify.action.presentModal()} />;
9+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import {render} from 'preact';
2+
3+
export default async () => {
4+
render(<Extension />, document.body);
5+
};
6+
7+
const Extension = () => {
8+
return (
9+
<s-page heading="Register Details Action">
10+
<s-scroll-box>
11+
<s-text>
12+
This is a action extension on the register details screen
13+
</s-text>
14+
</s-scroll-box>
15+
</s-page>
16+
);
17+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {render} from 'preact';
2+
3+
export default async () => {
4+
render(<Extension />, document.body);
5+
};
6+
7+
const Extension = () => {
8+
return (
9+
<s-pos-block>
10+
<s-text>This is a block extension on the register details screen</s-text>
11+
<s-button
12+
slot="secondary-actions"
13+
onClick={() => shopify.cashDrawer.open()}
14+
>
15+
Open drawer
16+
</s-button>
17+
</s-pos-block>
18+
);
19+
};
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import type {ReferenceEntityTemplateSchema} from '@shopify/generate-docs';
2+
import {generateJsxCodeBlock} from '../helpers/generateCodeBlock';
3+
import {ExtensionTargetType} from '../types/ExtensionTargetType';
4+
5+
const data: ReferenceEntityTemplateSchema = {
6+
name: ExtensionTargetType.PosRegisterDetailsActionMenuItemRender,
7+
description:
8+
'A static extension target that renders as a menu item on the register details screen',
9+
defaultExample: {
10+
codeblock: generateJsxCodeBlock(
11+
'Register Details Action Menu Item',
12+
'targets',
13+
'pos-register-details-action-menu-item-render',
14+
),
15+
},
16+
category: 'Targets',
17+
subCategory: 'Action',
18+
isVisualComponent: false,
19+
related: [
20+
{
21+
name: ExtensionTargetType.PosRegisterDetailsActionRender,
22+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-render',
23+
},
24+
{
25+
name: ExtensionTargetType.PosRegisterDetailsBlockRender,
26+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-block-render',
27+
},
28+
],
29+
type: 'Target',
30+
};
31+
export default data;
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import type {ReferenceEntityTemplateSchema} from '@shopify/generate-docs';
2+
import {generateJsxCodeBlock} from '../helpers/generateCodeBlock';
3+
import {ExtensionTargetType} from '../types/ExtensionTargetType';
4+
5+
const data: ReferenceEntityTemplateSchema = {
6+
name: ExtensionTargetType.PosRegisterDetailsActionRender,
7+
description:
8+
'A full-screen extension target that renders when a `pos.register-details.action.menu-item.render` target calls for it',
9+
defaultExample: {
10+
codeblock: generateJsxCodeBlock(
11+
'Register Details Action',
12+
'targets',
13+
'pos-register-details-action-render',
14+
),
15+
},
16+
category: 'Targets',
17+
subCategory: 'Action',
18+
isVisualComponent: false,
19+
related: [
20+
{
21+
name: ExtensionTargetType.PosRegisterDetailsActionMenuItemRender,
22+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-menu-item-render',
23+
},
24+
{
25+
name: ExtensionTargetType.PosRegisterDetailsBlockRender,
26+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-block-render',
27+
},
28+
],
29+
type: 'Target',
30+
};
31+
export default data;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import type {ReferenceEntityTemplateSchema} from '@shopify/generate-docs';
2+
import {generateJsxCodeBlock} from '../helpers/generateCodeBlock';
3+
import {ExtensionTargetType} from '../types/ExtensionTargetType';
4+
5+
const data: ReferenceEntityTemplateSchema = {
6+
name: ExtensionTargetType.PosRegisterDetailsBlockRender,
7+
description: 'Renders a custom section within register details screen',
8+
defaultExample: {
9+
codeblock: generateJsxCodeBlock(
10+
'Register Details Block',
11+
'targets',
12+
'pos-register-details-block-render',
13+
),
14+
},
15+
category: 'Targets',
16+
subCategory: 'Block',
17+
isVisualComponent: false,
18+
related: [
19+
{
20+
name: ExtensionTargetType.PosRegisterDetailsActionMenuItemRender,
21+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-menu-item-render',
22+
},
23+
{
24+
name: ExtensionTargetType.PosRegisterDetailsActionRender,
25+
url: '/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-render',
26+
},
27+
],
28+
type: 'Target',
29+
};
30+
export default data;

packages/ui-extensions/docs/surfaces/point-of-sale/reference/types/ExtensionTargetType.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ export enum ExtensionTargetType {
2626
PosReceiptFooterBlockRender = 'pos.receipt-footer.block.render',
2727
PosCartLineItemDetailsActionMenuItemRender = 'pos.cart.line-item-details.action.menu-item.render',
2828
PosCartLineItemDetailsActionRender = 'pos.cart.line-item-details.action.render',
29+
PosRegisterDetailsActionMenuItemRender = 'pos.register-details.action.menu-item.render',
30+
PosRegisterDetailsActionRender = 'pos.register-details.action.render',
31+
PosRegisterDetailsBlockRender = 'pos.register-details.block.render',
2932
}
3033

3134
export enum TargetLink {
@@ -56,4 +59,7 @@ export enum TargetLink {
5659
PosReceiptFooterBlockRender = '[pos.receipt-footer.block.render](/docs/api/pos-ui-extensions/targets/receipts/pos-receipt-footer-block-render)',
5760
PosCartLineItemDetailsActionMenuItemRender = '[pos.cart.line-item-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/cart-details/pos-cart-line-item-details-action-menu-item-render)',
5861
PosCartLineItemDetailsActionRender = '[pos.cart.line-item-details.action.render](/docs/api/pos-ui-extensions/targets/cart-details/pos-cart-line-item-details-action-render)',
62+
PosRegisterDetailsActionMenuItemRender = '[pos.register-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-menu-item-render)',
63+
PosRegisterDetailsActionRender = '[pos.register-details.action.render](/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-action-render)',
64+
PosRegisterDetailsBlockRender = '[pos.register-details.block.render](/docs/api/pos-ui-extensions/targets/register-details/pos-register-details-block-render)',
5965
}
359 KB
Loading
357 KB
Loading

0 commit comments

Comments
 (0)