UNPKG

3.3 kBJavaScriptView Raw
1"use strict";
2var __spreadArrays = (this && this.__spreadArrays) || function () {
3 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4 for (var r = Array(s), k = 0, i = 0; i < il; i++)
5 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6 r[k] = a[j];
7 return r;
8};
9Object.defineProperty(exports, "__esModule", { value: true });
10exports.transformActions = exports.generateRedirect = void 0;
11var actions_1 = require("@shopify/app-bridge/actions");
12function generateRedirect(appBridge, url, target, external) {
13 if (target === void 0) { target = 'APP'; }
14 if (url == null) {
15 return undefined;
16 }
17 var redirect = actions_1.Redirect.create(appBridge);
18 var payload = external === true
19 ? {
20 url: url,
21 newContext: true,
22 }
23 : url;
24 return function () {
25 redirect.dispatch(redirectAction(target, external), payload);
26 };
27}
28exports.generateRedirect = generateRedirect;
29function redirectAction(target, external) {
30 if (external === true) {
31 return actions_1.Redirect.Action.REMOTE;
32 }
33 return actions_1.Redirect.Action[target];
34}
35function transformActions(appBridge, _a) {
36 var primaryAction = _a.primaryAction, secondaryActions = _a.secondaryActions, actionGroups = _a.actionGroups;
37 var primary = transformPrimaryAction(appBridge, primaryAction);
38 var secondary = __spreadArrays(transformSecondaryActions(appBridge, secondaryActions), transformActionGroups(appBridge, actionGroups));
39 return {
40 primary: primary,
41 secondary: secondary,
42 };
43}
44exports.transformActions = transformActions;
45function transformAction(appBridge, action) {
46 var style = action.destructive === true ? actions_1.Button.Style.Danger : undefined;
47 var button = actions_1.Button.create(appBridge, {
48 label: action.content || '',
49 disabled: action.disabled,
50 loading: action.loading,
51 style: style,
52 });
53 if (action.onAction) {
54 button.subscribe(actions_1.Button.Action.CLICK, action.onAction);
55 }
56 var redirect = generateRedirect(appBridge, action.url, action.target, action.external);
57 if (redirect != null) {
58 button.subscribe(actions_1.Button.Action.CLICK, redirect);
59 }
60 return button;
61}
62function transformPrimaryAction(appBridge, primaryAction) {
63 if (primaryAction == null) {
64 return undefined;
65 }
66 var primary = transformAction(appBridge, primaryAction);
67 return primary;
68}
69function transformSecondaryActions(appBridge, secondaryActions) {
70 if (secondaryActions === void 0) { secondaryActions = []; }
71 var secondary = __spreadArrays(secondaryActions.map(function (secondaryAction) {
72 return transformAction(appBridge, secondaryAction);
73 }));
74 return secondary;
75}
76function transformActionGroups(appBridge, actionGroups) {
77 if (actionGroups === void 0) { actionGroups = []; }
78 var buttonGroups = __spreadArrays(actionGroups.map(function (group) {
79 var buttons = group.actions.map(function (groupAction) {
80 return transformAction(appBridge, groupAction);
81 });
82 return actions_1.ButtonGroup.create(appBridge, { label: group.title, buttons: buttons });
83 }));
84 return buttonGroups;
85}