@weareconceptstudio/account 0.0.7 → 0.0.9

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.
Files changed (96) hide show
  1. package/dist/AccountProvider.d.ts +4 -1
  2. package/dist/AccountProvider.js +9 -7
  3. package/dist/components/EmptyOrders/index.js +5 -4
  4. package/dist/components/OrderedItems/index.d.ts +1 -1
  5. package/dist/components/OrderedItems/index.js +4 -37
  6. package/dist/components/TotalCheckout/index.js +13 -18
  7. package/dist/components/TotalCheckout/style.js +0 -7
  8. package/dist/components/cart/EmptyCart/index.js +3 -3
  9. package/dist/components/cart/EmptyCart/style.js +1 -1
  10. package/dist/components/cart/Items/Simple/Item/index.js +12 -20
  11. package/dist/components/cart/Items/Simple/ItemMobile/index.js +13 -36
  12. package/dist/components/cart/Items/Simple/index.js +10 -9
  13. package/dist/components/cart/Items/Simple/style.js +14 -7
  14. package/dist/components/index.d.ts +0 -6
  15. package/dist/components/index.js +0 -6
  16. package/dist/components/ui/AccountButton/index.js +5 -2
  17. package/dist/components/ui/AccountButton/style.js +3 -1
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.js +1 -0
  20. package/dist/modules/address/AddressForm/index.js +44 -0
  21. package/dist/{components → modules/address}/AddressItem/index.d.ts +2 -4
  22. package/dist/{components → modules/address}/AddressItem/index.js +11 -11
  23. package/dist/modules/address/AddressProvider.d.ts +7 -0
  24. package/dist/modules/address/AddressProvider.js +57 -0
  25. package/dist/{components → modules/address}/AddressWrap/index.d.ts +3 -2
  26. package/dist/{components → modules/address}/AddressWrap/index.js +7 -7
  27. package/dist/modules/address/AddressesTemplate/index.d.ts +3 -0
  28. package/dist/modules/address/AddressesTemplate/index.js +11 -0
  29. package/dist/modules/address/SelectAddress/index.d.ts +6 -0
  30. package/dist/modules/address/SelectAddress/index.js +22 -0
  31. package/dist/modules/address/SelectAddress/style.d.ts +2 -0
  32. package/dist/modules/address/SelectAddress/style.js +68 -0
  33. package/dist/modules/address/SelectShippingBilling/index.d.ts +3 -0
  34. package/dist/modules/address/SelectShippingBilling/index.js +29 -0
  35. package/dist/modules/address/SelectShippingBillingPopup/index.d.ts +3 -0
  36. package/dist/modules/address/SelectShippingBillingPopup/index.js +25 -0
  37. package/dist/{components/SelectShippingBilling → modules/address/SelectShippingBillingPopup}/style.js +0 -43
  38. package/dist/modules/address/ShippingBillingForm/index.js +15 -0
  39. package/dist/modules/address/index.d.ts +9 -0
  40. package/dist/modules/address/index.js +9 -0
  41. package/dist/modules/index.d.ts +1 -0
  42. package/dist/modules/index.js +1 -0
  43. package/dist/templates/AccountSettingsTemplate/AccountInfo/index.js +1 -1
  44. package/dist/templates/AccountTemplate/index.js +1 -1
  45. package/dist/templates/AccountTemplate/style.js +0 -6
  46. package/dist/templates/CartTemplate/index.d.ts +1 -2
  47. package/dist/templates/CartTemplate/index.js +11 -8
  48. package/dist/templates/CheckoutTemplate/StepReview/index.d.ts +5 -0
  49. package/dist/templates/CheckoutTemplate/StepReview/index.js +16 -0
  50. package/dist/templates/CheckoutTemplate/StepShipping/index.d.ts +5 -0
  51. package/dist/templates/CheckoutTemplate/StepShipping/index.js +9 -0
  52. package/dist/templates/CheckoutTemplate/index.d.ts +2 -1
  53. package/dist/templates/CheckoutTemplate/index.js +29 -149
  54. package/dist/templates/CheckoutTemplate/style.js +9 -9
  55. package/dist/templates/OrderIndividualTemplate/index.js +1 -1
  56. package/dist/templates/index.d.ts +0 -1
  57. package/dist/templates/index.js +0 -1
  58. package/dist/translations/en.d.ts +72 -133
  59. package/dist/translations/en.js +84 -133
  60. package/dist/translations/hy.d.ts +74 -64
  61. package/dist/translations/hy.js +177 -155
  62. package/dist/translations/index.d.ts +218 -289
  63. package/dist/translations/ru.d.ts +72 -92
  64. package/dist/translations/ru.js +177 -185
  65. package/dist/utils/_functions.d.ts +0 -3
  66. package/dist/utils/_functions.js +0 -10
  67. package/package.json +1 -1
  68. package/dist/components/AddressForm/index.js +0 -99
  69. package/dist/components/FavoriteButton/index.d.ts +0 -3
  70. package/dist/components/FavoriteButton/index.js +0 -42
  71. package/dist/components/OrderedItems/ReviewPopup/index.d.ts +0 -0
  72. package/dist/components/OrderedItems/ReviewPopup/index.js +0 -202
  73. package/dist/components/OrderedItems/ReviewPopup/style.d.ts +0 -2
  74. package/dist/components/OrderedItems/ReviewPopup/style.js +0 -329
  75. package/dist/components/SelectShippingBilling/index.d.ts +0 -3
  76. package/dist/components/SelectShippingBilling/index.js +0 -31
  77. package/dist/components/ShippingBillingForm/index.js +0 -96
  78. package/dist/templates/AddressesTemplate/index.d.ts +0 -6
  79. package/dist/templates/AddressesTemplate/index.js +0 -9
  80. /package/dist/{components → modules/address}/AddressForm/index.d.ts +0 -0
  81. /package/dist/{components → modules/address}/AddressForm/style.d.ts +0 -0
  82. /package/dist/{components → modules/address}/AddressForm/style.js +0 -0
  83. /package/dist/{components → modules/address}/AddressItem/style.d.ts +0 -0
  84. /package/dist/{components → modules/address}/AddressItem/style.js +0 -0
  85. /package/dist/{templates → modules/address}/AddressesTemplate/style.d.ts +0 -0
  86. /package/dist/{templates → modules/address}/AddressesTemplate/style.js +0 -0
  87. /package/dist/{components → modules/address}/EmptyAddress/index.d.ts +0 -0
  88. /package/dist/{components → modules/address}/EmptyAddress/index.js +0 -0
  89. /package/dist/{components/SelectShippingBilling → modules/address/SelectShippingBillingPopup}/style.d.ts +0 -0
  90. /package/dist/{components → modules/address}/ShippingBillingForm/index.d.ts +0 -0
  91. /package/dist/{components → modules/address}/ShippingBillingForm/style.d.ts +0 -0
  92. /package/dist/{components → modules/address}/ShippingBillingForm/style.js +0 -0
  93. /package/dist/{components → modules/address}/ShippingBillingInfo/index.d.ts +0 -0
  94. /package/dist/{components → modules/address}/ShippingBillingInfo/index.js +0 -0
  95. /package/dist/{components → modules/address}/ShippingBillingInfo/style.d.ts +0 -0
  96. /package/dist/{components → modules/address}/ShippingBillingInfo/style.js +0 -0
@@ -1,8 +1,11 @@
1
1
  export function useAccountContext(): any;
2
- export function AccountProvider({ fontFamily, children, maxQty, currency }: {
2
+ export function AccountProvider({ fontFamily, shopUrl, children, maxQty, currency, addressType, addressFormFields }: {
3
3
  fontFamily?: string;
4
+ shopUrl?: string;
4
5
  children: any;
5
6
  maxQty?: number;
6
7
  currency: any;
8
+ addressType: any;
9
+ addressFormFields: any;
7
10
  }): React.JSX.Element;
8
11
  import React from 'react';
@@ -1,6 +1,7 @@
1
1
  import React, { createContext, useContext, useEffect } from 'react';
2
2
  import { useTranslation } from '@weareconceptstudio/core';
3
3
  import { ThemeProvider } from 'styled-components';
4
+ import { AddressProvider } from './modules/address/AddressProvider';
4
5
  //* Translations
5
6
  import translations from './translations';
6
7
  //* Styles
@@ -13,15 +14,16 @@ export const useAccountContext = () => {
13
14
  const context = useContext(AccountContext);
14
15
  return context;
15
16
  };
16
- export const AccountProvider = ({ fontFamily = 'core_Font', children, maxQty = 99, currency }) => {
17
+ export const AccountProvider = ({ fontFamily = 'core_Font', shopUrl = '/', children, maxQty = 99, currency, addressType, addressFormFields }) => {
17
18
  const { addTranslation } = useTranslation();
18
19
  useEffect(() => {
19
20
  addTranslation(translations, 'prepend');
20
21
  }, []);
21
- return (React.createElement(AccountContext.Provider, { value: { currency, maxQty } },
22
- React.createElement(ThemeProvider, { theme: theme },
23
- React.createElement(AccountVariables, { fontFamily: fontFamily }),
24
- React.createElement(AccountHelperClass, null),
25
- React.createElement(AccountTypography, null),
26
- children)));
22
+ return (React.createElement(AccountContext.Provider, { value: { currency, maxQty, shopUrl } },
23
+ React.createElement(AddressProvider, { addressType: addressType, addressFormFields: addressFormFields },
24
+ React.createElement(ThemeProvider, { theme: theme },
25
+ React.createElement(AccountVariables, { fontFamily: fontFamily }),
26
+ React.createElement(AccountHelperClass, null),
27
+ React.createElement(AccountTypography, null),
28
+ children))));
27
29
  };
@@ -1,12 +1,13 @@
1
1
  import React, { memo as Memo } from 'react';
2
+ import { useAccountContext } from '../../AccountProvider';
2
3
  import { Text } from '@weareconceptstudio/core';
3
- //* Style
4
- import EmptyOrdersStyle from './style';
5
- //* Components
6
4
  import AccountButton from '../ui/AccountButton';
5
+ import EmptyOrdersStyle from './style';
7
6
  const EmptyOrders = Memo(() => {
7
+ const { shopUrl } = useAccountContext();
8
8
  return (React.createElement(EmptyOrdersStyle, { className: 'empty-orders' },
9
9
  React.createElement(Text, { tag: `h6`, className: `account-h6 account-font-bold account-primary-color1 empty-orders-title`, text: `emptyTitle` }),
10
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 empty-orders-description`, text: `emptyDesc` })));
10
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 empty-orders-description`, text: `emptyDesc` }),
11
+ React.createElement(AccountButton, { text: `shopNow`, btnType: 'purple-text', url: shopUrl })));
11
12
  });
12
13
  export default EmptyOrders;
@@ -1,5 +1,5 @@
1
1
  export default OrderedItems;
2
- declare function OrderedItems({ data, status, currency }: {
2
+ declare function OrderedItems({ data: items, status, currency }: {
3
3
  data: any;
4
4
  status: any;
5
5
  currency: any;
@@ -1,46 +1,13 @@
1
- import React, { useMemo, useCallback, useState } from 'react';
2
- import { Image, Text, useTranslation, useUi } from '@weareconceptstudio/core';
3
- // import SwiperCore, { Navigation } from 'swiper';
4
- // import { Swiper, SwiperSlide } from 'swiper/react';
5
- // SwiperCore.use([Navigation]);
1
+ import React, { useMemo } from 'react';
2
+ import { Image, Text, useUi } from '@weareconceptstudio/core';
6
3
  //* Utils
7
4
  import { handlePriceCheckFunc } from '../../utils/_functions';
8
5
  //* Components
9
- // import OldEditor from '../OldEditor';
10
- // import ReviewPopup from './ReviewPopup';
11
- // import ImagesPopup from '../ImagesPopup';
12
6
  import AccountButton from '../ui/AccountButton';
13
7
  //* Styles
14
- // import 'swiper/swiper-bundle.css';
15
8
  import OrderedItemsStyle from './style';
16
- const OrderedItems = ({ data, status, currency }) => {
17
- const { translate } = useTranslation();
18
- const { winWidth, openPopup } = useUi();
19
- const createReview = () => { };
20
- const updateReview = () => { };
21
- //! State
22
- const [items, setItems] = useState(data);
23
- //! Handle Review update
24
- const addOrUpdateReview = useCallback((id, newValues) => {
25
- setItems(items.map((item) => (item.id == id ? { ...item, review: newValues } : item)));
26
- }, [items]);
27
- //! Review popup
28
- // const handleReviewPopup = useCallback(
29
- // ({ orderItemId, product, review }) => {
30
- // return openPopup(
31
- // <ReviewPopup
32
- // review={review}
33
- // product={product}
34
- // orderItemId={orderItemId}
35
- // createReview={createReview}
36
- // updateReview={updateReview}
37
- // addOrUpdateReview={addOrUpdateReview}
38
- // />,
39
- // { className: 'is-review-popup' }
40
- // );
41
- // },
42
- // [addOrUpdateReview]
43
- // );
9
+ const OrderedItems = ({ data: items, status, currency }) => {
10
+ const { winWidth } = useUi();
44
11
  //! Store order items
45
12
  const storeOrderedItems = useMemo(() => {
46
13
  return items.map((item, index) => winWidth >= 768 ? (React.createElement("div", { key: index, className: `item-wrap` },
@@ -1,36 +1,31 @@
1
- import React, { memo, useState, useEffect } from 'react';
2
- import { Text, useUi } from '@weareconceptstudio/core';
1
+ import React, { memo, useState } from 'react';
2
+ import { Text } from '@weareconceptstudio/core';
3
3
  import { useAccountContext } from '../../AccountProvider';
4
4
  import AccountButton from '../ui/AccountButton';
5
5
  //* Utils
6
6
  import { handlePriceCheckFunc, numToLocalString } from '../../utils/_functions';
7
7
  //* Style
8
8
  import TotalCheckoutStyle from './style';
9
- const TotalCheckout = memo(({ isShipping, children, confirmation, buttonProps, itemsCount, subtotal, total, loading, shippingCost }) => {
10
- const { winWidth } = useUi();
9
+ // TODO: Note
10
+ const TotalCheckout = memo(({ isShipping, children, confirmation, buttonProps, itemsCount, subtotal, total, shippingCost }) => {
11
11
  const { currency } = useAccountContext();
12
12
  //! States
13
- const [headerHeight, setHeaderHeight] = useState();
14
13
  const [note, setNote] = useState();
15
- //! useEffect
16
- useEffect(() => {
17
- setHeaderHeight(document.getElementsByTagName('header')[0]?.clientHeight);
18
- }, [winWidth]);
19
- return (React.createElement(TotalCheckoutStyle, { "$headerHeight": headerHeight },
14
+ return (React.createElement(TotalCheckoutStyle, null,
20
15
  React.createElement("div", { className: `cart-main-wrap` },
21
16
  React.createElement("div", { className: `left-panel-wrap panel` }, children),
22
17
  React.createElement("div", { className: `right-panel-wrap panel ${confirmation ? 'display-none-wrap' : ''}` }, !confirmation && (React.createElement("div", { className: `max-width-wrapper sticky-wrap` },
23
- React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1`, text: `orderSummary` }),
18
+ React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1 sticky-wrap-title`, text: `orderSummary` }),
24
19
  React.createElement("div", { className: `od-line` }),
25
20
  React.createElement("div", { className: `od-item-wrap` },
26
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1`, text: `subtotal` }),
27
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1`, text: itemsCount ? handlePriceCheckFunc(subtotal, currency) : `0 ${currency}` })),
21
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 sticky-wrap-subtotal`, text: `subtotal` }),
22
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 sticky-wrap-currency`, text: itemsCount ? handlePriceCheckFunc(subtotal, currency) : `0 ${currency}` })),
28
23
  React.createElement("div", { className: `od-item-wrap` },
29
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1`, text: `shipping` }),
30
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1`, text: `${String(shippingCost).toLowerCase() === 'free' || shippingCost === '-' ? shippingCost : `${numToLocalString(shippingCost)} ${currency}`}` })),
24
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 sticky-wrap-shipping`, text: `shipping` }),
25
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 sticky-wrap-shipping-cost`, text: `${String(shippingCost).toLowerCase() === 'free' || shippingCost === '-' ? shippingCost : `${numToLocalString(shippingCost)} ${currency}`}` })),
31
26
  React.createElement("div", { className: `od-item-wrap` },
32
- React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1`, text: `total` }),
33
- React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1`, text: itemsCount ? handlePriceCheckFunc(total, currency) : `0 ${currency}` })),
27
+ React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1 sticky-wrap-total`, text: `total` }),
28
+ React.createElement(Text, { className: `account-p account-p2 account-font-bold account-primary-color1 sticky-wrap-currnecy2`, text: itemsCount ? handlePriceCheckFunc(total, currency) : `0 ${currency}` })),
34
29
  typeof isShipping === 'boolean' && !isShipping ? (
35
30
  // <Input.TextArea
36
31
  // value={note}
@@ -43,6 +38,6 @@ const TotalCheckout = memo(({ isShipping, children, confirmation, buttonProps, i
43
38
  textAlign: 'center',
44
39
  margin: '16px 0',
45
40
  }, className: 'account-p account-p3 account-font-regular account-primary-color1' }, "Input Filed Textarea")) : null,
46
- React.createElement(AccountButton, { url: buttonProps.url, btnType: `full-width`, text: buttonProps.text, type: buttonProps.type, onClick: () => buttonProps.handleClick && buttonProps.handleClick(note), className: `${!itemsCount || loading || buttonProps.disabled ? 'disabled' : ''}` })))))));
41
+ React.createElement(AccountButton, { url: buttonProps.url, btnType: `full-width`, text: buttonProps.text, type: buttonProps.type, disabled: buttonProps.disabled, onClick: () => buttonProps.handleClick && buttonProps.handleClick(note), className: `sticky-wrap-btn ${buttonProps.disabled ? 'disabled' : ''}` })))))));
47
42
  });
48
43
  export default TotalCheckout;
@@ -82,13 +82,6 @@ const TotalCheckoutStyle = styled.section `
82
82
  margin-top: var(--account_btnMTop);
83
83
  }
84
84
  }
85
-
86
- //! Sticky Wrapper
87
- .sticky-wrap {
88
- position: sticky;
89
- height: fit-content;
90
- top: calc(${(props) => props.$headerHeight}px + var(--account_cartMainWrapPadTop));
91
- }
92
85
  }
93
86
  }
94
87
 
@@ -6,8 +6,8 @@ import EmptyCartStyle from './style';
6
6
  const EmptyCart = ({ shoppingUrl }) => {
7
7
  return (React.createElement(EmptyCartStyle, null,
8
8
  React.createElement("div", { className: `empty-cart-wrap` },
9
- React.createElement(Text, { tag: `h4`, className: `account-h4 account-font-bold account-primary-color1`, text: `cartEmpty` }),
10
- React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 description`, text: `cartEmptyDesc` }),
11
- shoppingUrl ? (React.createElement(AccountButton, { btnType: 'purple-text', text: `shopNow`, url: shoppingUrl })) : null)));
9
+ React.createElement(Text, { tag: `h4`, className: `account-h4 account-font-bold account-primary-color1 empty-cart-title`, text: `cartEmpty` }),
10
+ React.createElement(Text, { className: `account-p account-p2 account-font-regular account-primary-color1 empty-cart-description`, text: `cartEmptyDesc` }),
11
+ shoppingUrl ? (React.createElement(AccountButton, { text: `shopNow`, url: shoppingUrl, btnType: 'purple-text', className: 'empty-cart-btn' })) : null)));
12
12
  };
13
13
  export default EmptyCart;
@@ -8,7 +8,7 @@ const EmptyCartStyle = styled.section `
8
8
  max-width: var(--account_emptyCartWrapMaxWidth);
9
9
  width: 100%;
10
10
 
11
- .description {
11
+ .empty-cart-description {
12
12
  margin-top: var(--account_descriptionMTop);
13
13
  }
14
14
 
@@ -1,19 +1,16 @@
1
1
  import React, { memo, useMemo } from 'react';
2
- import { Image, Text, useUi } from '@weareconceptstudio/core';
2
+ import { Image, Text } from '@weareconceptstudio/core';
3
3
  import { Select } from '@weareconceptstudio/form';
4
- import { useAccountContext } from '../../../../../AccountProvider';
5
4
  import { handlePriceCheckFunc } from '../../../../../utils/_functions';
6
5
  import Button from '../../../../ui/AccountButton';
7
- import FavoriteButton from '../../../../FavoriteButton';
6
+ //TODO: Fake
8
7
  const pathname = '/cart/';
9
- const Item = memo(({ data, edit, favorite, remove, select, isLast, favorites, actions }) => {
10
- const { openPopup } = useUi();
11
- const { currency, maxQty } = useAccountContext();
8
+ const Item = memo(({ data, remove, select, isLast, actions, maxQty, currency }) => {
12
9
  const selectionList = useMemo(() => {
13
10
  if (select) {
14
11
  const selectList = [];
15
12
  for (let index = 1; index <= maxQty; index++) {
16
- selectList.push({ value: index, label: index });
13
+ selectList.push({ id: index, name: index });
17
14
  }
18
15
  return selectList;
19
16
  }
@@ -25,30 +22,25 @@ const Item = memo(({ data, edit, favorite, remove, select, isLast, favorites, ac
25
22
  React.createElement("div", { className: `image-wrapper` },
26
23
  React.createElement(Image, { src: data?.product?.image?.src, alt: data?.product?.image?.alt })),
27
24
  React.createElement("div", { className: `col-1-right-wrap` },
28
- React.createElement(Button, { url: data.product?.url, className: `capitalize`, text: data.product?.name, btnType: `green-large-text`, target: pathname === '/cart/' || pathname === '/checkout' ? '_blank' : '_self' }),
25
+ React.createElement(Button, { url: data.product?.url, text: data.product?.name, btnType: `green-large-text`, className: `capitalize title-btn`, target: pathname === '/cart/' || pathname === '/checkout' ? '_blank' : '_self' }),
29
26
  React.createElement("div", { className: `right-first-item-wrap` },
30
27
  React.createElement(Text, { className: `account-p account-p3 account-font-regular account-primary-color1 capitalize`, text: data.product.short_info_1 })),
31
28
  React.createElement("div", { className: `right-second-item-wrap` },
32
- React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1`, text: data.product.short_info_2 })),
33
- edit && !data.product?.out_of_stock ? (React.createElement("div", { className: `edit-btn-wrap empty` },
34
- React.createElement(Button, { text: 'edit', btnType: `green-small-text`, onClick: () => openPopup(React.createElement("div", null, "Product Individual")) }))) : pathname === '/cart/' ? (React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color3 underline opacityZero empty`, text: 'empty' })) : (''))),
29
+ React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1`, text: data.product.short_info_2 })))),
35
30
  React.createElement("div", { className: `col-item tl-col-2` }, select ? (React.createElement("div", { className: `select-and-out-of-stock-wrap` }, !data.product?.out_of_stock ? (React.createElement(Select, { allowSearch: false, options: selectionList, value: data.qty, onChange: (val) => actions.add({
36
31
  productId: data.product.id,
37
32
  qty: val,
38
33
  }) })) : (React.createElement(Text, { className: `account-p account-p3 account-font-medium account-primary-color1`, text: data.qty })))) : (React.createElement(Text, { className: `account-p account-p3 account-font-medium account-primary-color1`, text: data.qty }))),
39
34
  React.createElement("div", { className: `col-item tl-col-3 col-item-3 nowrap` }, data?.product?.sale_price ? (React.createElement("div", null,
40
- React.createElement(Text, { className: `account-p account-p3 account-font-bold account-secondary-color2 alignRight`, text: handlePriceCheckFunc(data?.product?.sale_price, currency) }),
41
- React.createElement(Text, { className: `account-p account-p3 account-font-regular account-primary-color2 line-through value align-right`, text: handlePriceCheckFunc(data.product?.price, currency) }))) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 alignRight`, text: handlePriceCheckFunc(data.product?.price, currency) }))),
35
+ React.createElement(Text, { className: `account-p account-p3 account-font-bold account-secondary-color2 align-right cart-sale-price`, text: handlePriceCheckFunc(data?.product?.sale_price, currency) }),
36
+ React.createElement(Text, { className: `account-p account-p3 account-font-regular account-primary-color2 line-through value align-right cart-price1`, text: handlePriceCheckFunc(data.product?.price, currency) }))) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 align-right cart-price2`, text: handlePriceCheckFunc(data.product?.price, currency) }))),
42
37
  React.createElement("div", { className: `col-item tl-col-4 col-item-4 nowrap` },
43
38
  React.createElement("div", { className: `col-item-inner-wrap` },
44
39
  React.createElement("div", { className: `flex-end-wrap` }, data?.product.sale_price ? (React.createElement("div", null,
45
- React.createElement(Text, { className: `account-p account-p3 account-font-bold account-secondary-color2 align-right`, text: `${data.sale_total} ${currency}` }),
46
- React.createElement(Text, { className: `account-p account-p3 account-font-regular account-primary-color2 line-through value align-right`, text: handlePriceCheckFunc(data.product?.price * data.qty, currency) }))) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 align-right`, text: `${data.total} ${currency}` }))),
47
- React.createElement("div", { className: `favorite-and-remove-wrap` },
48
- favorite && !data.product?.out_of_stock && (React.createElement("div", { className: `favorite-btn-wrap` },
49
- React.createElement(FavoriteButton, { qty: data.qty, type: `withText`, favorites: favorites, productId: data.product?.id, optionId: data.selectedOption?.id, variantId: data.selectedVariant?.id }))),
50
- remove && (React.createElement("div", { className: `remove-btn-wrap` },
51
- React.createElement(Button, { text: 'remove', btnType: `green-small-text`, onClick: () => actions.delete({ productId: data.product?.id }) }))))))),
40
+ React.createElement(Text, { className: `account-p account-p3 account-font-bold account-secondary-color2 align-right cart-sale-total`, text: `${data.sale_total} ${currency}` }),
41
+ React.createElement(Text, { className: `account-p account-p3 account-font-regular account-primary-color2 line-through value align-right cart-total1`, text: handlePriceCheckFunc(data.product?.price * data.qty, currency) }))) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 align-right cart-total2`, text: `${data.total} ${currency}` }))),
42
+ React.createElement("div", { className: `favorite-and-remove-wrap` }, remove && (React.createElement("div", { className: `remove-btn-wrap` },
43
+ React.createElement(Button, { text: 'remove', btnType: `green-small-text`, className: 'cart-remove-btn', onClick: () => actions.delete({ productId: data.product?.id }) }))))))),
52
44
  isLast ? React.createElement("div", { className: 'line' }) : null));
53
45
  });
54
46
  export default Item;
@@ -1,29 +1,20 @@
1
1
  import React, { memo, useMemo } from 'react';
2
- import { Image, Text, useUi } from '@weareconceptstudio/core';
2
+ import { Image, Text } from '@weareconceptstudio/core';
3
3
  import { Select } from '@weareconceptstudio/form';
4
4
  import Button from '../../../../ui/AccountButton';
5
- import { useAccountContext } from '../../../../../AccountProvider';
6
- //* Utils
7
5
  import { handlePriceCheckFunc } from '../../../../../utils/_functions';
8
- //* Components
9
- import FavoriteButton from '../../../../FavoriteButton';
10
- // import ProductIndividual from '@/components/common/ProductIndividual';
11
6
  //TODO: Fake
12
7
  const pathname = '/cart/';
13
- const addToCart = () => { };
14
- const removeCart = () => { };
15
- const ItemMobile = memo(({ data, additionalParameters, isLast, favorites }) => {
16
- const { openPopup } = useUi();
17
- const { currency } = useAccountContext();
8
+ const ItemMobile = memo(({ data, remove, select, isLast, actions, maxQty, currency }) => {
18
9
  const selectionList = useMemo(() => {
19
- if (additionalParameters.select) {
10
+ if (select) {
20
11
  const selectList = [];
21
- for (let index = 1; index <= data.qty; index++) {
22
- selectList.push({ value: index, label: index });
12
+ for (let index = 1; index <= maxQty; index++) {
13
+ selectList.push({ id: index, name: index });
23
14
  }
24
15
  return selectList;
25
16
  }
26
- }, [data]);
17
+ }, [data, select, maxQty]);
27
18
  return (React.createElement(React.Fragment, null,
28
19
  isLast ? React.createElement("div", { className: 'line' }) : null,
29
20
  React.createElement("div", { className: `mobile-order-item-wrap` },
@@ -31,18 +22,14 @@ const ItemMobile = memo(({ data, additionalParameters, isLast, favorites }) => {
31
22
  React.createElement("div", { className: `mobile-image-wrap` },
32
23
  React.createElement(Image, { src: data?.images?.[0].src, alt: data?.images?.[0].alt })),
33
24
  React.createElement("div", { className: `mobile-info-wrap` },
34
- React.createElement(Button, { className: `capitalize`, url: data.product?.url, btnType: `green-large-text`, text: data.product?.name || data.name, target: pathname === '/cart/' || pathname === '/checkout/' ? '_blank' : '_self' }),
35
- additionalParameters.select ? (React.createElement("div", { className: `select-and-out-of-stock-mobile-wrap` }, !data.product?.out_of_stock ? (
36
- // <FormSelect
37
- // list={selectionList}
38
- // selectedValue={data.qty}
39
- // className={`quantity-select-mobile-wrap`}
40
- // onChange={(val) => addToCart({ productId: data.product.id, variantId: data.selectedVariant.id, optionId: data.selectedOption.id, qty: val, update: true })}
41
- // />
42
- React.createElement(Select, { allowSearch: false, options: selectionList, value: 1, onChange: () => { } })) : (React.createElement("div", { className: `mobile-info-item` },
25
+ React.createElement(Button, { url: data.product?.url, btnType: `green-large-text`, text: data.product?.name || data.name, className: `capitalize mobile-info-wrap-title`, target: pathname === '/cart/' || pathname === '/checkout/' ? '_blank' : '_self' }),
26
+ select ? (React.createElement("div", { className: `select-and-out-of-stock-mobile-wrap` }, !data.product?.out_of_stock ? (React.createElement(Select, { allowSearch: false, options: selectionList, value: data.qty, onChange: (val) => actions.add({
27
+ productId: data.product.id,
28
+ qty: val,
29
+ }) })) : (React.createElement("div", { className: `mobile-info-item` },
43
30
  React.createElement(Text, { className: `account-p account-p3 account-font-medium primaryColor1`, text: `quantityWithSymbol` }),
44
31
  "\u00A0",
45
- React.createElement(Text, { className: `account-p account-p3 account-font-medium primaryColor1`, text: data.qty }))))) : (React.createElement("div", { className: `mobile-info-item` },
32
+ React.createElement(Text, { className: `account-p account-p3 account-font-medium primaryColor1`, text: data.qty || data.quantity }))))) : (React.createElement("div", { className: `mobile-info-item` },
46
33
  React.createElement(Text, { className: `account-p account-p3 account-font-medium primaryColor1`, text: `quantityWithSymbol` }),
47
34
  "\u00A0",
48
35
  React.createElement(Text, { className: `account-p account-p3 account-font-medium primaryColor1`, text: data.qty || data.quantity }))),
@@ -57,17 +44,7 @@ const ItemMobile = memo(({ data, additionalParameters, isLast, favorites }) => {
57
44
  React.createElement(Text, { className: `account-p account-p3 account-font-bold secondaryColor2`, text: handlePriceCheckFunc(data.product?.discountedPrice * data.qty, currency) }),
58
45
  React.createElement(Text, { className: `account-p account-p3 account-font-regular primaryColor2 lineThrough`, text: handlePriceCheckFunc(data.product?.price * data.qty, currency) }))) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold primaryColor1`, text: handlePriceCheckFunc(data.product?.price * data.qty || data.total, currency || currency) }))))),
59
46
  pathname === '/cart/' && (React.createElement("div", { className: `edit-remove-favorite-mobile-wrap` },
60
- additionalParameters.edit.item && !data.product?.out_of_stock ? (React.createElement(Button, { text: 'edit', btnType: `green-small-text`, onClick: () => openPopup(
61
- // <ProductIndividual
62
- // isPopup
63
- // qty={data.qty}
64
- // itemId={data.id}
65
- // selectedOption={data.selectedOption}
66
- // selectedVariant={data.selectedVariant}
67
- // {...data.product}
68
- // />
69
- React.createElement("div", null, "Product Individual")) })) : (React.createElement(Text, { className: `account-p account-p3 account-font-bold primaryColor3 underline opacityZero empty`, text: 'empty' })),
70
- React.createElement("div", { className: `favorite-remove-mobile-wrap` }, additionalParameters.remove && (React.createElement(Button, { text: 'remove', btnType: `green-small-text`, onClick: () => removeCart({ productId: data.product.id, variantId: data.selectedVariant.id, optionId: data.selectedOption.id }) })))))),
47
+ React.createElement("div", { className: `favorite-remove-mobile-wrap` }, remove && (React.createElement(Button, { text: 'remove', btnType: `green-small-text`, onClick: () => actions.delete({ productId: data.product?.id }) })))))),
71
48
  React.createElement("div", { className: 'line' })));
72
49
  });
73
50
  export default ItemMobile;
@@ -3,9 +3,10 @@ import { Text, useUi } from '@weareconceptstudio/core';
3
3
  //* Components
4
4
  import Item from './Item';
5
5
  import ItemMobile from './ItemMobile';
6
+ import Button from '../../../ui/AccountButton';
6
7
  //* Style
7
8
  import CartItemsStyle from './style';
8
- const CartItems = memo(({ data, className, title, smallFontSize, additionalParameters, currency, isLast, favorites, actions }) => {
9
+ const CartItems = memo(({ data, className, title, smallFontSize, additionalParameters, actions, currency, maxQty }) => {
9
10
  const { winWidth } = useUi();
10
11
  //! Store
11
12
  const orderStore = useMemo(() => {
@@ -16,20 +17,20 @@ const CartItems = memo(({ data, className, title, smallFontSize, additionalParam
16
17
  React.createElement("div", { className: `title-wrap tl-col-2` },
17
18
  React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 nowrap`, text: `quantity` })),
18
19
  React.createElement("div", { className: `title-wrap tl-col-3 title-item` },
19
- React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 nowrap alignRight`, text: `price` })),
20
+ React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 nowrap align-right`, text: `price` })),
20
21
  React.createElement("div", { className: `title-wrap tl-col-4 title-item` },
21
- React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 nowrap alignRight`, text: `total` }))),
22
+ React.createElement(Text, { className: `account-p account-p3 account-font-bold account-primary-color1 nowrap align-right`, text: `total` }))),
22
23
  React.createElement("div", { className: `items-wrap` }, data?.map((item, index) => {
23
- return (React.createElement(Item, { key: index, data: item, currency: currency, favorites: favorites, isLast: data.length - 1 == index, select: additionalParameters.select, remove: additionalParameters.remove, edit: additionalParameters.edit.item, favorite: additionalParameters.favorite, actions: actions }));
24
+ return (React.createElement(Item, { key: index, data: item, maxQty: maxQty, actions: actions, currency: currency, isLast: data.length - 1 == index, select: additionalParameters.select, remove: additionalParameters.remove, edit: additionalParameters.edit.item }));
24
25
  })))) : (React.createElement("div", { className: `mobile-order-items-table-wrap` }, data?.map((item, index) => {
25
- return (React.createElement(ItemMobile, { key: index, data: item, isLast: isLast, currency: currency, favorites: favorites, additionalParameters: additionalParameters }));
26
+ return (React.createElement(ItemMobile, { key: index, data: item, maxQty: maxQty, actions: actions, currency: currency, isLast: data.length - 1 == index, select: additionalParameters.select, remove: additionalParameters.remove, edit: additionalParameters.edit.item }));
26
27
  })));
27
- }, [winWidth, data, additionalParameters, currency]);
28
+ }, [winWidth, data, additionalParameters, currency, actions, maxQty]);
28
29
  return (React.createElement(CartItemsStyle, { className: className || '' },
29
30
  additionalParameters.edit.list ? (React.createElement("div", { className: `title-edit-wrapper` },
30
- React.createElement(Text, { className: `p ${smallFontSize ? 'p2' : 'p1'} account-font-bold account-primary-color1`, text: title }),
31
- React.createElement(Button, { url: '/cart/', text: `editCart`, btnType: `green-small-text` }))) : (React.createElement(Text, { className: `p ${smallFontSize ? 'p2' : 'p1'} account-font-bold account-primary-color1`, text: title })),
32
- additionalParameters.horizontalLine && React.createElement("div", { className: `order-items-line` }),
31
+ React.createElement(Text, { className: `account-p ${smallFontSize ? 'account-p2' : 'account-p1'} account-font-bold account-primary-color1 cart-items-title2-version`, text: title }),
32
+ React.createElement(Button, { url: '/cart/', text: `editCart`, btnType: `green-small-text`, className: 'cart-items-edit-btn' }))) : (React.createElement(Text, { className: `account-p ${smallFontSize ? 'account-p2' : 'account-p1'} account-font-bold account-primary-color1 cart-items-title1-version`, text: title })),
33
+ additionalParameters.horizontalLine ? React.createElement("div", { className: `order-items-line` }) : null,
33
34
  orderStore));
34
35
  });
35
36
  export default CartItems;
@@ -132,6 +132,13 @@ const CartItemsStyle = styled.section `
132
132
  flex: 1;
133
133
  margin-left: var(--col1RightWrapML);
134
134
 
135
+ .title-btn {
136
+ a,
137
+ button {
138
+ text-align: left;
139
+ }
140
+ }
141
+
135
142
  .btn-wrap {
136
143
  margin-bottom: 0 !important;
137
144
  }
@@ -251,7 +258,7 @@ const CartItemsStyle = styled.section `
251
258
  }
252
259
  }
253
260
 
254
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.DesktopSizeXLMin}) and (min-width: ${(props) => props.theme.mediaQuery.DesktopSizeL}) {
261
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeXLMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeL}) {
255
262
  --spaceLineMTop: var(--sp2x);
256
263
  --spaceLineMBot: var(--sp4x);
257
264
 
@@ -295,7 +302,7 @@ const CartItemsStyle = styled.section `
295
302
  }
296
303
  }
297
304
 
298
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.DesktopSizeLMin}) and (min-width: ${(props) => props.theme.mediaQuery.DesktopSizeM}) {
305
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeLMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeM}) {
299
306
  --spaceLineMTop: var(--sp2x);
300
307
  --spaceLineMBot: var(--sp4x);
301
308
 
@@ -339,7 +346,7 @@ const CartItemsStyle = styled.section `
339
346
  }
340
347
  }
341
348
 
342
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.DesktopSizeMMin}) and (min-width: ${(props) => props.theme.mediaQuery.DesktopSizeS}) {
349
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeMMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeS}) {
343
350
  --spaceLineMTop: var(--sp2x);
344
351
  --spaceLineMBot: var(--sp3x);
345
352
 
@@ -383,7 +390,7 @@ const CartItemsStyle = styled.section `
383
390
  }
384
391
  }
385
392
 
386
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.DesktopSizeSMin}) and (min-width: ${(props) => props.theme.mediaQuery.DesktopSizeXS}) {
393
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeSMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeXS}) {
387
394
  --spaceLineMTop: var(--sp2x);
388
395
  --spaceLineMBot: var(--sp3x);
389
396
 
@@ -428,7 +435,7 @@ const CartItemsStyle = styled.section `
428
435
  }
429
436
  }
430
437
 
431
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.DesktopSizeXSMin}) and (min-width: ${(props) => props.theme.mediaQuery.TabletSize}) {
438
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_DesktopSizeXSMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_TabletSize}) {
432
439
  --spaceLineMTop: var(--sp2x);
433
440
  --spaceLineMBot: var(--sp3x);
434
441
 
@@ -474,7 +481,7 @@ const CartItemsStyle = styled.section `
474
481
  }
475
482
  }
476
483
 
477
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.TabletSizeMin}) and (min-width: ${(props) => props.theme.mediaQuery.TabletSizeS}) {
484
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_TabletSizeMin}) and (min-width: ${(props) => props.theme.account.mediaQuery.account_TabletSizeS}) {
478
485
  --spaceLineMTop: var(--sp2x);
479
486
  --spaceLineMBot: var(--sp2x);
480
487
 
@@ -519,7 +526,7 @@ const CartItemsStyle = styled.section `
519
526
  }
520
527
  }
521
528
 
522
- @media only screen and (max-width: ${(props) => props.theme.mediaQuery.TabletSizeSMin}) {
529
+ @media only screen and (max-width: ${(props) => props.theme.account.mediaQuery.account_TabletSizeSMin}) {
523
530
  --spaceLineMTop: var(--sp2x);
524
531
  --spaceLineMBot: 0;
525
532
  --orderItemsMarTop: var(--sp6x);
@@ -1,14 +1,8 @@
1
1
  export * from './ui';
2
2
  export * from './cart';
3
3
  export { default as FormInputCode } from './FormInputCode';
4
- export { default as AddressWrap } from './AddressWrap';
5
- export { default as AddressForm } from './AddressForm';
6
- export { default as AddressItem } from './AddressItem';
7
4
  export { default as TotalCheckout } from './TotalCheckout';
8
5
  export { default as EmptyOrders } from './EmptyOrders';
9
6
  export { default as OrderDetails } from './OrderDetails';
10
7
  export { default as OrderedItems } from './OrderedItems';
11
8
  export { default as OrdersList } from './OrdersList';
12
- export { default as ShippingBillingInfo } from './ShippingBillingInfo';
13
- export { default as ShippingBillingForm } from './ShippingBillingForm';
14
- export { default as SelectShippingBilling } from './SelectShippingBilling';
@@ -1,14 +1,8 @@
1
1
  export * from './ui';
2
2
  export * from './cart';
3
3
  export { default as FormInputCode } from './FormInputCode';
4
- export { default as AddressWrap } from './AddressWrap';
5
- export { default as AddressForm } from './AddressForm';
6
- export { default as AddressItem } from './AddressItem';
7
4
  export { default as TotalCheckout } from './TotalCheckout';
8
5
  export { default as EmptyOrders } from './EmptyOrders';
9
6
  export { default as OrderDetails } from './OrderDetails';
10
7
  export { default as OrderedItems } from './OrderedItems';
11
8
  export { default as OrdersList } from './OrdersList';
12
- export { default as ShippingBillingInfo } from './ShippingBillingInfo';
13
- export { default as ShippingBillingForm } from './ShippingBillingForm';
14
- export { default as SelectShippingBilling } from './SelectShippingBilling';
@@ -1,4 +1,4 @@
1
- import React, { memo, useMemo } from 'react';
1
+ import React, { memo, useCallback, useMemo } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { Link, useTranslation } from '@weareconceptstudio/core';
4
4
  import { useTheme } from 'styled-components';
@@ -14,7 +14,10 @@ const AccountButton = memo(({ btnType, text, className, onClick, children, url,
14
14
  [btnType]: btnType,
15
15
  [className]: className,
16
16
  });
17
- return (React.createElement(AccountButtonStyle, { onClick: onClick, className: classString, theme: theme(globalTheme) },
17
+ const handleClick = useCallback(() => {
18
+ return !disabled && onClick?.();
19
+ }, [onClick, disabled]);
20
+ return (React.createElement(AccountButtonStyle, { onClick: handleClick, className: classString, theme: theme(globalTheme) },
18
21
  React.createElement(Component, { ...customProps },
19
22
  svg_icon || children || translate(text),
20
23
  " ")));
@@ -164,10 +164,12 @@ const AccountButtonStyle = styled.div `
164
164
  }
165
165
 
166
166
  &.disabled {
167
+ pointer-events: none;
168
+ opacity: 0.5;
169
+
167
170
  button,
168
171
  a {
169
172
  pointer-events: none;
170
- opacity: 0.5;
171
173
  }
172
174
  }
173
175
 
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './AccountProvider';
2
+ export * from './modules';
2
3
  export * from './templates';
3
4
  export * from './components';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use client';
2
2
  export * from './AccountProvider';
3
+ export * from './modules';
3
4
  export * from './templates';
4
5
  export * from './components';