UNPKG

@shopify/app-bridge-host

Version:

App Bridge Host contains components and middleware to be consumed by the app's host, as well as the host itself. The middleware and `Frame` component are responsible for facilitating communication between the client and host, and used to act on actions se

93 lines (88 loc) 2.98 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var Actions = require('@shopify/app-bridge-core/actions'); function getResourceUrl(url, section) { var name = section.name, resource = section.resource; switch (name) { case Actions.Redirect.ResourceType.Product: return getProductUrl(url, resource); case Actions.Redirect.ResourceType.Collection: return getCollectionUrl(url, resource); case Actions.Redirect.ResourceType.Order: return getOrderUrl(url, resource); case Actions.Redirect.ResourceType.Discount: return getDiscountUrl(url, resource); case Actions.Redirect.ResourceType.Customer: return getCustomerUrl(url, resource); } } function getProductUrl(url, resource) { if (!resource) { return url.productIndex(); } if (Actions.Redirect.isProductVariantResourcePayload(resource)) { var _a = resource, id = _a.id, variant = _a.variant; if (Actions.Redirect.isResourcePayload(variant)) { return url.productVariantDetails(id, variant.id); } if (Actions.Redirect.isCreateResourcePayload(variant)) { return url.productVariantNew(id); } } if (Actions.Redirect.isResourcePayload(resource)) { return url.productDetails(resource.id); } if (Actions.Redirect.isCreateResourcePayload(resource)) { return url.productNew(); } } function getCollectionUrl(url, resource) { if (!resource) { return url.collectionIndex(); } if (Actions.Redirect.isResourcePayload(resource)) { return url.collectionShow(resource.id); } if (Actions.Redirect.isCreateResourcePayload(resource)) { return url.collectionNew(); } } function getDiscountUrl(url, resource) { if (!resource) { return url.discountIndex(); } if (Actions.Redirect.isResourcePayload(resource)) { return url.discountShow(resource.id); } if (Actions.Redirect.isCreateResourcePayload(resource)) { return url.discountNew(); } } function getCustomerUrl(url, resource) { if (!resource) { return url.customerIndex(); } if (Actions.Redirect.isResourcePayload(resource)) { return url.customerShow(resource.id); } if (Actions.Redirect.isCreateResourcePayload(resource)) { return url.customerCreate(); } } function getOrderUrl(url, resource) { if (!resource) { return url.orderIndex(); } if (Actions.Redirect.isResourcePayload(resource)) { return url.orderShow(resource.id); } if (Actions.Redirect.isCreateResourcePayload(resource)) { return url.orderNew(); } } exports.default = getResourceUrl; exports.getCollectionUrl = getCollectionUrl; exports.getCustomerUrl = getCustomerUrl; exports.getDiscountUrl = getDiscountUrl; exports.getOrderUrl = getOrderUrl; exports.getProductUrl = getProductUrl;