@shopify/app-bridge-host
Version:
App Bridge Host contains middleware and components that are meant to be consumed by the app's host. The middleware and `Frame` component are responsible for facilitating messages posted between the client and host, and used to act on actions sent from the
89 lines (88 loc) • 3.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var actions_1 = require("@shopify/app-bridge/actions");
function getResourceUrl(url, section) {
var name = section.name, resource = section.resource;
switch (name) {
case actions_1.Redirect.ResourceType.Product:
return getProductUrl(url, resource);
case actions_1.Redirect.ResourceType.Collection:
return getCollectionUrl(url, resource);
case actions_1.Redirect.ResourceType.Order:
return getOrderUrl(url, resource);
case actions_1.Redirect.ResourceType.Discount:
return getDiscountUrl(url, resource);
case actions_1.Redirect.ResourceType.Customer:
return getCustomerUrl(url, resource);
}
}
exports.default = getResourceUrl;
function getProductUrl(url, resource) {
if (!resource) {
return url.productIndex();
}
if (actions_1.Redirect.isProductVariantResourcePayload(resource)) {
var _a = resource, id = _a.id, variant = _a.variant;
if (actions_1.Redirect.isResourcePayload(variant)) {
return url.productVariantDetails(id, variant.id);
}
if (actions_1.Redirect.isCreateResourcePayload(variant)) {
return url.productVariantNew(id);
}
}
if (actions_1.Redirect.isResourcePayload(resource)) {
return url.productDetails(resource.id);
}
if (actions_1.Redirect.isCreateResourcePayload(resource)) {
return url.productNew();
}
}
exports.getProductUrl = getProductUrl;
function getCollectionUrl(url, resource) {
if (!resource) {
return url.collectionIndex();
}
if (actions_1.Redirect.isResourcePayload(resource)) {
return url.collectionShow(resource.id);
}
if (actions_1.Redirect.isCreateResourcePayload(resource)) {
return url.collectionNew();
}
}
exports.getCollectionUrl = getCollectionUrl;
function getDiscountUrl(url, resource) {
if (!resource) {
return url.discountIndex();
}
if (actions_1.Redirect.isResourcePayload(resource)) {
return url.discountShow(resource.id);
}
if (actions_1.Redirect.isCreateResourcePayload(resource)) {
return url.discountNew();
}
}
exports.getDiscountUrl = getDiscountUrl;
function getCustomerUrl(url, resource) {
if (!resource) {
return url.customerIndex();
}
if (actions_1.Redirect.isResourcePayload(resource)) {
return url.customerShow(resource.id);
}
if (actions_1.Redirect.isCreateResourcePayload(resource)) {
return url.customerCreate();
}
}
exports.getCustomerUrl = getCustomerUrl;
function getOrderUrl(url, resource) {
if (!resource) {
return url.orderIndex();
}
if (actions_1.Redirect.isResourcePayload(resource)) {
return url.orderShow(resource.id);
}
if (actions_1.Redirect.isCreateResourcePayload(resource)) {
return url.orderNew();
}
}
exports.getOrderUrl = getOrderUrl;