merchi_cart 0.0.2 → 0.0.3-b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/lib/Cart.js +2 -1
- package/lib/CartAlert.js +2 -2
- package/lib/CartProvider.js +1 -1
- package/lib/CartTotals.js +4 -3
- package/lib/MerchiSDK/request.js +5 -1
- package/lib/assets/merchi-swipe-outline.png +0 -0
- package/lib/components/Alert.js +1 -1
- package/lib/components/CartTabPanel.js +8 -2
- package/lib/forms/FormShipmentAddressAndNotes.js +1 -1
- package/lib/panels/PanelCartShipment.js +1 -1
- package/lib/slices/sliceCart.js +1 -2
- package/lib/slices/sliceCartAlert.js +14 -9
- package/lib/store.js +17 -13
- package/lib/styles/globals.css +197 -0
- package/lib/styles/globals.css.map +1 -0
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -32,10 +32,10 @@ yarn add merchi_cart
|
|
|
32
32
|
|
|
33
33
|
| Name | Type | Default | Description |
|
|
34
34
|
|-----------------------------------------------|------------|-----------------------------------------------------------------------------|---------------------------------------|
|
|
35
|
-
| `classNameAlertError` | `string?` | `"alert alert-
|
|
36
|
-
| `classNameAlertInfo` | `string?` | `"alert alert-info
|
|
37
|
-
| `classNameAlertSuccess` | `string?` | `"alert alert-success
|
|
38
|
-
| `classNameAlertWarning` | `string?` | `"alert alert-warning
|
|
35
|
+
| `classNameAlertError` | `string?` | `"alert alert-danger"` | `Class for alert error` |
|
|
36
|
+
| `classNameAlertInfo` | `string?` | `"alert alert-info"` | `Class for alert info` |
|
|
37
|
+
| `classNameAlertSuccess` | `string?` | `"alert alert-success"` | `Class for alert success` |
|
|
38
|
+
| `classNameAlertWarning` | `string?` | `"alert alert-warning"` | `Class for alert warning` |
|
|
39
39
|
| `classNameBtn` | `string?` | `"btn"` | `Base class for button elements` |
|
|
40
40
|
| `classNameBtnBack` | `string?` | `"btn-lg btn-default pull-left"` | `Class for back button` |
|
|
41
41
|
| `classNameBtnCartClear` | `string?` | `"btn-lg btn-danger mr-auto"` | `Class for clear cart button` |
|
package/lib/Cart.js
CHANGED
|
@@ -22,6 +22,7 @@ import { CartFooter, CartPaymentSettingsInvalid, LoadingTemplate, } from './comp
|
|
|
22
22
|
import { PanelCartItems, PanelCartShipment, PanelClearCart, PanelClientCheckout, PanelEditCartItem, PanelPaymentSuccess, } from './panels';
|
|
23
23
|
import { tabIdClearCart, tabIdItem, tabIdPaymentSuccess, } from './slices/sliceCart';
|
|
24
24
|
import { actionFetchTheme, initMerchiCart, } from './store';
|
|
25
|
+
import './styles/globals.css';
|
|
25
26
|
function CartComponents() {
|
|
26
27
|
var _a = useCartContext(), domainId = _a.domainId, includeTheme = _a.includeTheme, initialiseCart = _a.initialiseCart;
|
|
27
28
|
var _b = useSelector(function (s) { return s.stateCart; }), activeTab = _b.activeTab, cartSettingsInvalid = _b.cartSettingsInvalid, fetchingCart = _b.fetchingCart;
|
|
@@ -37,5 +38,5 @@ function CartComponents() {
|
|
|
37
38
|
_jsxs(_Fragment, { children: [_jsx(CartFooter, { children: _jsx(CartTotals, {}) }), _jsxs(CartFooter, { children: [_jsx(ButtonClearCart, {}), _jsx(ButtonBack, {}), _jsx(ButtonNextDynamic, {})] })] })] }))] }));
|
|
38
39
|
}
|
|
39
40
|
export default function Cart(props) {
|
|
40
|
-
return (_jsx(CartProvider, __assign({}, props, { children:
|
|
41
|
+
return (_jsx(CartProvider, __assign({}, props, { children: _jsx(Provider, { store: store, children: _jsx(CartComponents, {}) }) })));
|
|
41
42
|
}
|
package/lib/CartAlert.js
CHANGED
|
@@ -8,8 +8,8 @@ import { useCartContext } from './CartProvider';
|
|
|
8
8
|
function CartAlert() {
|
|
9
9
|
var classNameBtnClose = useCartContext().classNameBtnClose;
|
|
10
10
|
var alert = useSelector(function (s) { return s.stateCartAlert; }).alert;
|
|
11
|
-
var icon = alert.icon, message = alert.message, show = alert.show,
|
|
11
|
+
var icon = alert.icon, message = alert.message, show = alert.show, title = alert.title;
|
|
12
12
|
return (_jsx(_Fragment, { children: show && (_jsxs(Alert, { alertType: alert.type, children: [icon &&
|
|
13
|
-
_jsx(FontAwesomeIcon, { icon: icon }), " ", _jsx("strong", { children:
|
|
13
|
+
_jsx(FontAwesomeIcon, { icon: icon }), " ", _jsx("strong", { children: title }), " ", message, _jsx("button", { type: "button", className: classNameBtnClose, "data-bs-dismiss": "alert", "aria-label": "Close", onClick: closeAlert, children: _jsx(FontAwesomeIcon, { icon: faTimes }) })] })) }));
|
|
14
14
|
}
|
|
15
15
|
export default CartAlert;
|
package/lib/CartProvider.js
CHANGED
|
@@ -89,7 +89,7 @@ var CartContext = createContext({
|
|
|
89
89
|
});
|
|
90
90
|
export var useCartContext = function () { return useContext(CartContext); };
|
|
91
91
|
var CartProvider = function (_a) {
|
|
92
|
-
var children = _a.children, _b = _a.classNameAlertError, classNameAlertError = _b === void 0 ? 'alert alert-
|
|
92
|
+
var children = _a.children, _b = _a.classNameAlertError, classNameAlertError = _b === void 0 ? 'alert alert-danger' : _b, _c = _a.classNameAlertInfo, classNameAlertInfo = _c === void 0 ? 'alert alert-info' : _c, _d = _a.classNameAlertSuccess, classNameAlertSuccess = _d === void 0 ? 'alert alert-success' : _d, _e = _a.classNameAlertWarning, classNameAlertWarning = _e === void 0 ? 'alert alert-warning' : _e, _f = _a.classNameBtn, classNameBtn = _f === void 0 ? 'btn' : _f, _g = _a.classNameBtnBack, classNameBtnBack = _g === void 0 ? 'btn-lg btn-default pull-left' : _g, _h = _a.classNameBtnCartClear, classNameBtnCartClear = _h === void 0 ? 'btn-lg btn-danger mr-auto' : _h, _j = _a.classNameBtnClose, classNameBtnClose = _j === void 0 ? 'btn-close' : _j, _k = _a.classNameBtnDanger, classNameBtnDanger = _k === void 0 ? 'btn btn-md btn-danger' : _k, _l = _a.classNameBtnDefault, classNameBtnDefault = _l === void 0 ? 'btn btn-md btn-default' : _l, _m = _a.classNameBtnDownloadInvoice, classNameBtnDownloadInvoice = _m === void 0 ? 'btn btn-lg btn-primary' : _m, _o = _a.classNameBtnPrimary, classNameBtnPrimary = _o === void 0 ? 'btn btn-md btn-primary' : _o, _p = _a.classNameBtnLink, classNameBtnLink = _p === void 0 ? 'btn-md btn-link' : _p, _q = _a.classNameBtnNext, classNameBtnNext = _q === void 0 ? 'btn-lg btn-primary' : _q, _r = _a.classNameBtnNextComplete, classNameBtnNextComplete = _r === void 0 ? 'btn-lg btn-success' : _r, _s = _a.classNameBtnPay, classNameBtnPay = _s === void 0 ? 'btn-lg btn-primary width-full' : _s, _t = _a.classNameCartBody, classNameCartBody = _t === void 0 ? 'merchi-cart-body' : _t, _u = _a.classNameCartFooter, classNameCartFooter = _u === void 0 ? 'merchi-cart-footer' : _u, // add to sass
|
|
93
93
|
_v = _a.classNameCartFormCheckbox, // add to sass
|
|
94
94
|
classNameCartFormCheckbox = _v === void 0 ? 'form-check-input' : _v, _w = _a.classNameCartFormGroup, classNameCartFormGroup = _w === void 0 ? 'form-group' : _w, _x = _a.classNameCartFormGroupCheckbox, classNameCartFormGroupCheckbox = _x === void 0 ? 'form-check' : _x, _y = _a.classNameCartFormInput, classNameCartFormInput = _y === void 0 ? 'form-control' : _y, _z = _a.classNameCartFormLabelCheckbox, classNameCartFormLabelCheckbox = _z === void 0 ? '' : _z, _0 = _a.classNameCartInputError, classNameCartInputError = _0 === void 0 ? 'text-danger' : _0, _1 = _a.classNameCartNav, classNameCartNav = _1 === void 0 ? 'nav nav-tabs merchi-nav merchi-nav-fill merchi-nav-pills' : _1, _2 = _a.classNameCartRow, classNameCartRow = _2 === void 0 ? 'merchi-row' : _2, _3 = _a.classNameCartRowColumn, classNameCartRowColumn = _3 === void 0 ? 'merchi-column' : _3, _4 = _a.classNameCartTabItem, classNameCartTabItem = _4 === void 0 ? 'nav-item merchi-nav-item' : _4, _5 = _a.classNameCartTabItemLink, classNameCartTabItemLink = _5 === void 0 ? 'nav-link merchi-nav-link' : _5, _6 = _a.classNameCartGoogleSuggestList, classNameCartGoogleSuggestList = _6 === void 0 ? 'list-group m-b-0' : _6, _7 = _a.classNameCartGoogleSuggestListItem, classNameCartGoogleSuggestListItem = _7 === void 0 ? 'list-group-item cursor-pointer' : _7, _8 = _a.classNameCartHeader, classNameCartHeader = _8 === void 0 ? 'merchi-cart-header' : _8, // add to sass
|
|
95
95
|
_9 = _a.classNameCartItemFeatureImage, // add to sass
|
package/lib/CartTotals.js
CHANGED
|
@@ -17,9 +17,10 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
|
17
17
|
import { faCircleNotch } from '@fortawesome/free-solid-svg-icons';
|
|
18
18
|
import { Table } from './components';
|
|
19
19
|
import { useCartContext } from './CartProvider';
|
|
20
|
-
function CartTotal(
|
|
21
|
-
var attribute =
|
|
22
|
-
var
|
|
20
|
+
function CartTotal(_a) {
|
|
21
|
+
var attribute = _a.attribute;
|
|
22
|
+
var _b = useSelector(function (s) { return s.stateCart; }), cart = _b.cart, fetchingCart = _b.fetchingCart, loading = _b.loading;
|
|
23
|
+
var _c = useSelector(function (s) { return s.stateCartShipment; }), fetchingShipmentGroups = _c.fetchingShipmentGroups, fetchingShipmentQuote = _c.fetchingShipmentQuote;
|
|
23
24
|
var domain = cart.domain;
|
|
24
25
|
var company = domain ? domain.company : null;
|
|
25
26
|
var currency = company ? company.defaultCurrency : 'AUD';
|
package/lib/MerchiSDK/request.js
CHANGED
|
@@ -28,7 +28,11 @@ var __values = (this && this.__values) || function(o) {
|
|
|
28
28
|
import { getErrorFromCode } from './constants/errors';
|
|
29
29
|
/* this constant are expected to be defined in webpack (or provided as
|
|
30
30
|
globals by some other means. */
|
|
31
|
-
var BACKEND_URI =
|
|
31
|
+
var BACKEND_URI = window && window.merchiBackendUri
|
|
32
|
+
? window.merchiBackendUri
|
|
33
|
+
: process && process.env.BACKEND_URL
|
|
34
|
+
? process.env.BACKEND_URL
|
|
35
|
+
: 'https://api.staging.merchi.co/';
|
|
32
36
|
var ApiError = /** @class */ (function (_super) {
|
|
33
37
|
__extends(ApiError, _super);
|
|
34
38
|
function ApiError(err) {
|
|
Binary file
|
package/lib/components/Alert.js
CHANGED
|
@@ -3,9 +3,15 @@ import { useSelector } from 'react-redux';
|
|
|
3
3
|
import { useCartContext } from '../CartProvider';
|
|
4
4
|
export default function CartTabPanel(_a) {
|
|
5
5
|
var children = _a.children, tabId = _a.tabId;
|
|
6
|
-
var _b = useSelector(function (s) { return s; })
|
|
6
|
+
var _b = useSelector(function (s) { return s.stateCart; }), activeTab = _b.activeTab, tabs = _b.tabs;
|
|
7
7
|
var classNameCartTabPanel = useCartContext().classNameCartTabPanel;
|
|
8
8
|
var activeTabValues = tabs[activeTab];
|
|
9
|
-
var display = tabId ===
|
|
9
|
+
var display = tabId === -1 && activeTab === -1
|
|
10
|
+
? 'block'
|
|
11
|
+
: tabId === -2 && activeTab === -2
|
|
12
|
+
? 'block'
|
|
13
|
+
: activeTabValues && tabId === activeTabValues.tabId
|
|
14
|
+
? 'block'
|
|
15
|
+
: 'none';
|
|
10
16
|
return (_jsx("div", { className: classNameCartTabPanel, style: { display: display }, children: children }));
|
|
11
17
|
}
|
|
@@ -41,7 +41,7 @@ function FormShipmentAddressAndNotes(_a) {
|
|
|
41
41
|
updateCartShipmentAddress(newAddress);
|
|
42
42
|
}
|
|
43
43
|
return (_jsxs("form", { id: formId, onSubmit: handleSubmit(onSubmit), children: [showHeadings &&
|
|
44
|
-
_jsx(CheckoutContainer, { children: _jsx(InnerContainer, { paddingBottom: '1rem', children: _jsx(Title, { icon: showIcon ? faMapMarkerAlt : null, Title: 'Delivery / billing address' }) }) }), _jsx(AddressGeoSuggestInput, { defaultAddress: address, hookForm: hookForm, labelGeoSuggest: "Enter your ".concat(deliveryNomenclature ? 'delivery' : 'shipping', " address"), name: 'receiverAddress', updateAddress: updateAddress }), _jsxs("div", { className: classNameCartFormGroup, children: [_jsxs("label", { children: [deliveryNomenclature ? 'Delivery' : 'Shipment', " notes"] }), _jsx("textarea", { className: 'form-control input', defaultValue: notes,
|
|
44
|
+
_jsx(CheckoutContainer, { children: _jsx(InnerContainer, { paddingBottom: '1rem', children: _jsx(Title, { icon: showIcon ? faMapMarkerAlt : null, Title: 'Delivery / billing address' }) }) }), _jsx(AddressGeoSuggestInput, { defaultAddress: address, hookForm: hookForm, labelGeoSuggest: "Enter your ".concat(deliveryNomenclature ? 'delivery' : 'shipping', " address"), name: 'receiverAddress', updateAddress: updateAddress }), _jsxs("div", { className: classNameCartFormGroup, children: [_jsxs("label", { children: [deliveryNomenclature ? 'Delivery' : 'Shipment', " notes"] }), _jsx("textarea", __assign({ className: 'form-control input', defaultValue: notes, placeholder: 'Example - Leave at top of stairs', rows: 4 }, register('receiverNotes')))] })] }));
|
|
45
45
|
}
|
|
46
46
|
export function ActiveFormShipmentAddressAndNotes() {
|
|
47
47
|
var dispatch = useDispatch();
|
|
@@ -7,7 +7,7 @@ import { Alert, CartBody, CartTabPanel, LoadingTemplateSm, ShipmentGroupCard, Ti
|
|
|
7
7
|
import { tabIdShipment } from '../slices/sliceCart';
|
|
8
8
|
import CartNav from '../tabs/CartNav';
|
|
9
9
|
function PanelCartShipment() {
|
|
10
|
-
var _a = useSelector(function (s) { return s; })
|
|
10
|
+
var _a = useSelector(function (s) { return s.stateCartShipment; }), fetchingShipmentGroups = _a.fetchingShipmentGroups, shipmentGroups = _a.shipmentGroups;
|
|
11
11
|
return (_jsxs(CartTabPanel, { tabId: tabIdShipment, children: [_jsx(CartNav, {}), _jsx(CartBody, { style: { paddingTop: '2rem' }, children: _jsxs("div", { className: 'merchi-cart-tab-content', children: [_jsx(CheckoutContainer, { textAlign: 'left', children: _jsx(InnerContainer, { width: 700, paddingBottom: '3rem', children: _jsx(ActiveFormShipmentAddressAndNotes, {}) }) }), fetchingShipmentGroups ? (_jsx(CheckoutContainer, { children: _jsxs(InnerContainer, { width: 700, children: [_jsx(LoadingTemplateSm, {}), _jsx("p", { children: "Fetching shipping options." })] }) })) : (_jsxs(_Fragment, { children: [_jsx(CheckoutContainer, { textAlign: 'left', children: _jsx(InnerContainer, { paddingBottom: '1rem', width: 700, children: _jsx(Title, { icon: faTruck, title: shipmentGroups.length > 1 ?
|
|
12
12
|
'Select shipment methods'
|
|
13
13
|
: shipmentGroups.length ?
|
package/lib/slices/sliceCart.js
CHANGED
|
@@ -174,8 +174,7 @@ export var sliceCart = createSlice({
|
|
|
174
174
|
state.cart.client = action.payload;
|
|
175
175
|
},
|
|
176
176
|
setDomainId: function (state, action) {
|
|
177
|
-
|
|
178
|
-
state.domainId = domainId;
|
|
177
|
+
state.domainId = action.payload;
|
|
179
178
|
},
|
|
180
179
|
toggleCartOpen: function (state) {
|
|
181
180
|
state.modalCartOpen = !state.modalCartOpen;
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
13
|
import { faCheckCircle, faExclamationTriangle, faInfoCircle } from '@fortawesome/free-solid-svg-icons';
|
|
3
14
|
export var sliceCartAlert = createSlice({
|
|
@@ -6,7 +17,7 @@ export var sliceCartAlert = createSlice({
|
|
|
6
17
|
icon: faInfoCircle,
|
|
7
18
|
message: '',
|
|
8
19
|
show: false,
|
|
9
|
-
|
|
20
|
+
title: '',
|
|
10
21
|
type: 'info',
|
|
11
22
|
},
|
|
12
23
|
},
|
|
@@ -19,16 +30,10 @@ export var sliceCartAlert = createSlice({
|
|
|
19
30
|
state.alert = action.payload;
|
|
20
31
|
},
|
|
21
32
|
showAlertDanger: function (state, action) {
|
|
22
|
-
state.alert = action.payload;
|
|
23
|
-
state.alert.icon = faExclamationTriangle;
|
|
24
|
-
state.alert.show = true;
|
|
25
|
-
state.alert.type = 'danger';
|
|
33
|
+
state.alert = __assign(__assign({}, action.payload), { icon: faExclamationTriangle, show: true, type: 'danger' });
|
|
26
34
|
},
|
|
27
35
|
showAlertSuccess: function (state, action) {
|
|
28
|
-
state.alert = action.payload;
|
|
29
|
-
state.alert.icon = faCheckCircle;
|
|
30
|
-
state.alert.show = true;
|
|
31
|
-
state.alert.type = 'success';
|
|
36
|
+
state.alert = __assign(__assign({}, action.payload), { icon: faCheckCircle, show: true, type: 'success' });
|
|
32
37
|
},
|
|
33
38
|
},
|
|
34
39
|
});
|
package/lib/store.js
CHANGED
|
@@ -144,11 +144,11 @@ export function actionFetchTheme(id) {
|
|
|
144
144
|
dispatch(fetchThemeError());
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
|
-
function cartAndCookie() {
|
|
147
|
+
function cartAndCookie(domainId) {
|
|
148
148
|
return __awaiter(this, void 0, void 0, function () {
|
|
149
|
-
var
|
|
149
|
+
var cart;
|
|
150
150
|
return __generator(this, function (_a) {
|
|
151
|
-
domainId
|
|
151
|
+
console.log(domainId, 'what is this thing in cartAndCookie');
|
|
152
152
|
cart = makeCart({ domain: { id: domainId } }, true);
|
|
153
153
|
return [2 /*return*/, cart.create({ embed: cartEmbed })
|
|
154
154
|
.then(function (c) {
|
|
@@ -162,20 +162,20 @@ function cartAndCookie() {
|
|
|
162
162
|
})
|
|
163
163
|
.catch(function (e) {
|
|
164
164
|
batch(function () {
|
|
165
|
-
alertError(e.errorMessage);
|
|
165
|
+
alertError(e.errorMessage || 'Unable to fetch cart.');
|
|
166
166
|
dispatch(fetchCartError());
|
|
167
167
|
});
|
|
168
168
|
})];
|
|
169
169
|
});
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
|
-
export function createAndSetNewCartCookie() {
|
|
172
|
+
export function createAndSetNewCartCookie(domainId) {
|
|
173
173
|
return __awaiter(this, void 0, void 0, function () {
|
|
174
174
|
return __generator(this, function (_a) {
|
|
175
175
|
switch (_a.label) {
|
|
176
176
|
case 0:
|
|
177
177
|
dispatch(fetchCart());
|
|
178
|
-
return [4 /*yield*/, cartAndCookie()];
|
|
178
|
+
return [4 /*yield*/, cartAndCookie(domainId)];
|
|
179
179
|
case 1:
|
|
180
180
|
_a.sent();
|
|
181
181
|
return [2 /*return*/];
|
|
@@ -185,12 +185,14 @@ export function createAndSetNewCartCookie() {
|
|
|
185
185
|
}
|
|
186
186
|
export function doClearCart() {
|
|
187
187
|
return __awaiter(this, void 0, void 0, function () {
|
|
188
|
+
var domainId;
|
|
188
189
|
return __generator(this, function (_a) {
|
|
189
190
|
switch (_a.label) {
|
|
190
191
|
case 0:
|
|
192
|
+
domainId = getStore().stateCart.domainId;
|
|
191
193
|
dispatch(setCart({}));
|
|
192
194
|
closeClearCart();
|
|
193
|
-
return [4 /*yield*/, createAndSetNewCartCookie()];
|
|
195
|
+
return [4 /*yield*/, createAndSetNewCartCookie(domainId)];
|
|
194
196
|
case 1:
|
|
195
197
|
_a.sent();
|
|
196
198
|
return [2 /*return*/];
|
|
@@ -456,7 +458,7 @@ function updateCartValues(cartJson) {
|
|
|
456
458
|
dispatch(sliceCart.actions.fetchCartSuccess(cartJson));
|
|
457
459
|
dispatch(initCartShipmentSlice(cartJson));
|
|
458
460
|
}
|
|
459
|
-
function getCart(cartIdAndToken) {
|
|
461
|
+
function getCart(domainId, cartIdAndToken) {
|
|
460
462
|
var cartSettingsInvalid = sliceCart.actions.cartSettingsInvalid;
|
|
461
463
|
var id = Number(cartIdAndToken[0]);
|
|
462
464
|
if (cartIdAndToken[1]) {
|
|
@@ -478,7 +480,7 @@ function getCart(cartIdAndToken) {
|
|
|
478
480
|
}
|
|
479
481
|
})
|
|
480
482
|
.catch(function (e) {
|
|
481
|
-
createAndSetNewCartCookie();
|
|
483
|
+
createAndSetNewCartCookie(domainId);
|
|
482
484
|
});
|
|
483
485
|
}
|
|
484
486
|
export function getMerchiCart(domainId) {
|
|
@@ -489,12 +491,11 @@ export function getMerchiCart(domainId) {
|
|
|
489
491
|
case 0: return [4 /*yield*/, getMerchiCartCookie(domainId)];
|
|
490
492
|
case 1:
|
|
491
493
|
cartIdAndToken = _a.sent();
|
|
492
|
-
dispatch(setDomainId({ cartIdAndToken: cartIdAndToken, domainId: domainId }));
|
|
493
494
|
if (cartIdAndToken) {
|
|
494
|
-
getCart(cartIdAndToken);
|
|
495
|
+
getCart(domainId, cartIdAndToken);
|
|
495
496
|
}
|
|
496
497
|
else {
|
|
497
|
-
createAndSetNewCartCookie();
|
|
498
|
+
createAndSetNewCartCookie(domainId);
|
|
498
499
|
}
|
|
499
500
|
return [2 /*return*/];
|
|
500
501
|
}
|
|
@@ -528,11 +529,13 @@ export function getMerchiCartValues() {
|
|
|
528
529
|
}
|
|
529
530
|
export function doCartComplete() {
|
|
530
531
|
return __awaiter(this, void 0, void 0, function () {
|
|
532
|
+
var domainId;
|
|
531
533
|
return __generator(this, function (_a) {
|
|
532
534
|
switch (_a.label) {
|
|
533
535
|
case 0:
|
|
536
|
+
domainId = getStore().stateCart.domainId;
|
|
534
537
|
dispatch(sliceCartPayment.actions.doCardComplete());
|
|
535
|
-
return [4 /*yield*/, cartAndCookie().then(function () { return location.reload(); })];
|
|
538
|
+
return [4 /*yield*/, cartAndCookie(domainId).then(function () { return location.reload(); })];
|
|
536
539
|
case 1:
|
|
537
540
|
_a.sent();
|
|
538
541
|
return [2 /*return*/];
|
|
@@ -541,6 +544,7 @@ export function doCartComplete() {
|
|
|
541
544
|
});
|
|
542
545
|
}
|
|
543
546
|
export function initMerchiCart(domainId) {
|
|
547
|
+
dispatch(setDomainId(domainId));
|
|
544
548
|
getMerchiCart(domainId);
|
|
545
549
|
if (window && window !== undefined) {
|
|
546
550
|
window.getCart = function () { return getMerchiCart(domainId); };
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
.merchi-cart-body {
|
|
2
|
+
display: block;
|
|
3
|
+
min-height: 100px;
|
|
4
|
+
height: 450px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.merchi-loading-container {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
height: var(--bs-height-md, 100px);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.merchi-loading-container-text {
|
|
16
|
+
font-size: 1.2rem;
|
|
17
|
+
font-weight: bold;
|
|
18
|
+
text-align: center;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.merchi-payment-gateway-inactive {
|
|
22
|
+
height: 300px;
|
|
23
|
+
background: url("../assets/merchi-swipe-outline.png");
|
|
24
|
+
background-repeat: no-repeat;
|
|
25
|
+
background-position: center center;
|
|
26
|
+
background-size: 276px 215px;
|
|
27
|
+
margin-top: 100px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.merchi-tab-panel {
|
|
31
|
+
display: none;
|
|
32
|
+
padding: 1rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.merchi-cart-tab-content {
|
|
36
|
+
padding: 15px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.merchi-cart-tab-content > .merchi-cart-tab-panel {
|
|
40
|
+
display: none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.merchi-cart-tab-content > .active {
|
|
44
|
+
display: block;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.merchi-cart-clear-container {
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
align-items: center;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.merchi-cart-clear-text {
|
|
54
|
+
font-size: 16px;
|
|
55
|
+
margin-top: 3rem;
|
|
56
|
+
margin-bottom: 3rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.merchi-cart-item-table-head {
|
|
60
|
+
border: none;
|
|
61
|
+
background-color: #f8f9fa;
|
|
62
|
+
padding: 0.5rem;
|
|
63
|
+
padding-left: 0.75rem;
|
|
64
|
+
padding-right: 0.75rem;
|
|
65
|
+
text-transform: uppercase;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.merchi-cart-item-table-head-right {
|
|
69
|
+
border: none;
|
|
70
|
+
background-color: #f8f9fa;
|
|
71
|
+
padding: 0.5rem;
|
|
72
|
+
padding-left: 0.75rem;
|
|
73
|
+
padding-right: 0.75rem;
|
|
74
|
+
text-transform: uppercase;
|
|
75
|
+
text-align: right;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.merchi-cart-success-message {
|
|
79
|
+
font-size: 16px;
|
|
80
|
+
padding-bottom: 4rem;
|
|
81
|
+
padding-top: 4rem;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Merchi checkout */
|
|
85
|
+
.merchi-row {
|
|
86
|
+
display: flex;
|
|
87
|
+
flex-direction: column;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@media (min-width: 768px) {
|
|
91
|
+
.merchi-row {
|
|
92
|
+
flex-direction: row;
|
|
93
|
+
}
|
|
94
|
+
.merchi-column {
|
|
95
|
+
width: 50%;
|
|
96
|
+
padding-right: 10px;
|
|
97
|
+
}
|
|
98
|
+
.merchi-column:last-child {
|
|
99
|
+
padding-left: 10px;
|
|
100
|
+
padding-right: 0;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
.merchi-collapse {
|
|
104
|
+
display: none;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.merchi-collapse.show {
|
|
108
|
+
display: block;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.merchi-nav {
|
|
112
|
+
display: flex;
|
|
113
|
+
flex-wrap: wrap;
|
|
114
|
+
padding-left: 0;
|
|
115
|
+
margin-bottom: 0;
|
|
116
|
+
list-style: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.merchi-nav-link {
|
|
120
|
+
cursor: pointer;
|
|
121
|
+
display: block;
|
|
122
|
+
padding: 0.5rem 1rem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.merchi-nav-link:hover, .merchi-nav-link:focus {
|
|
126
|
+
text-decoration: none;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.merchi-nav-link.disabled {
|
|
130
|
+
color: #6c757d;
|
|
131
|
+
pointer-events: none;
|
|
132
|
+
cursor: default;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.merchi-nav-tabs {
|
|
136
|
+
border-bottom: 1px solid #dee2e6;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.merchi-nav-tabs .merchi-nav-item {
|
|
140
|
+
margin-bottom: -1px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.merchi-nav-tabs .merchi-nav-link {
|
|
144
|
+
border: 1px solid transparent;
|
|
145
|
+
border-top-left-radius: 0.25rem;
|
|
146
|
+
border-top-right-radius: 0.25rem;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.merchi-nav-tabs .merchi-nav-link:hover, .merchi-nav-tabs .merchi-nav-link:focus {
|
|
150
|
+
border-color: #e9ecef #e9ecef #dee2e6;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.merchi-nav-tabs .merchi-nav-link.disabled {
|
|
154
|
+
color: #6c757d;
|
|
155
|
+
background-color: transparent;
|
|
156
|
+
border-color: transparent;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.merchi-nav-tabs .merchi-nav-link.active,
|
|
160
|
+
.merchi-nav-tabs .merchi-nav-item.show .merchi-nav-link {
|
|
161
|
+
color: #495057;
|
|
162
|
+
background-color: #fff;
|
|
163
|
+
border-color: #dee2e6 #dee2e6 #fff;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.merchi-nav-pills .merchi-nav-link {
|
|
167
|
+
border-radius: 0.25rem;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.merchi-nav-pills .merchi-nav-link.active,
|
|
171
|
+
.merchi-nav-pills .show > .merchi-nav-link {
|
|
172
|
+
color: #fff;
|
|
173
|
+
background-color: #007bff;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.merchi-nav-fill .merchi-nav-item {
|
|
177
|
+
flex: 1 1 auto;
|
|
178
|
+
text-align: center;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.merchi-no-cart-items {
|
|
182
|
+
display: flex;
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
align-items: center;
|
|
185
|
+
justify-content: center;
|
|
186
|
+
height: 450px;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.btn-close {
|
|
190
|
+
background: transparent;
|
|
191
|
+
border: 0px;
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
color: inherit;
|
|
194
|
+
float: right;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/*# sourceMappingURL=globals.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/styles/globals.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA","file":"globals.css"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "merchi_cart",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3-b",
|
|
4
4
|
"description": "Merchi's cart",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.tsx",
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
"typings": "index.d.ts",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "tsc && yarn copy-assets",
|
|
12
|
-
"copy-assets": "
|
|
11
|
+
"build": "tsc && npm run sass && yarn copy-assets",
|
|
12
|
+
"copy-assets": "copyfiles -u 1 src/assets/**/* lib",
|
|
13
|
+
"sass": "sass src/styles/globals.scss lib/styles/globals.css",
|
|
13
14
|
"start": "react-scripts start",
|
|
14
15
|
"test": "react-scripts test",
|
|
15
16
|
"eject": "react-scripts eject"
|
|
@@ -74,6 +75,7 @@
|
|
|
74
75
|
"@stripe/stripe-js": "^2.1.6",
|
|
75
76
|
"@types/moment-timezone": "^0.5.30",
|
|
76
77
|
"@types/node": "^20.11.5",
|
|
78
|
+
"babel-plugin-import-css-to-jss": "^3.1.1",
|
|
77
79
|
"browser-or-node": "^3.0.0-pre.0",
|
|
78
80
|
"eslint": "8.47.0",
|
|
79
81
|
"eslint-config-next": "13.4.16",
|
|
@@ -94,6 +96,7 @@
|
|
|
94
96
|
"react-transition": "^1.0.3",
|
|
95
97
|
"react-transition-group": "^4.4.5",
|
|
96
98
|
"reflect-metadata": "^0.2.1",
|
|
99
|
+
"sass": "^1.70.0",
|
|
97
100
|
"typescript": "^5.1.6"
|
|
98
101
|
}
|
|
99
102
|
}
|