@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
JavaScript
'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;