@weareconceptstudio/account 0.1.5 → 0.1.6

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.
@@ -0,0 +1,3 @@
1
+ export default AccountContainer;
2
+ declare const AccountContainer: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
3
+ import React from 'react';
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import React, { useRef, useImperativeHandle, forwardRef } from 'react';
3
+ import classNames from 'classnames';
4
+ //* Style
5
+ import AccountContainerStyle from './style';
6
+ const AccountContainer = forwardRef(({ row, isSection, full, className, children }, ref) => {
7
+ //! Ref
8
+ const contRef = useRef();
9
+ //! Imperative Handle
10
+ useImperativeHandle(ref, () => contRef.current, []);
11
+ //! ClassName
12
+ const classString = classNames('container', {
13
+ [className]: className,
14
+ ['section']: isSection,
15
+ ['full']: full,
16
+ });
17
+ return (React.createElement(AccountContainerStyle, { ref: contRef, className: classString }, row ? React.createElement("div", { className: 'row' }, children) : children));
18
+ });
19
+ export default AccountContainer;
@@ -0,0 +1,2 @@
1
+ export default AccountContainerStyle;
2
+ declare const AccountContainerStyle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
@@ -0,0 +1,21 @@
1
+ import styled from 'styled-components';
2
+ const AccountContainerStyle = styled.section `
3
+ width: 100%;
4
+ margin: 0 auto;
5
+
6
+ &:not(.full) {
7
+ width: 100%;
8
+ padding-left: var(--account_contPaddingLR);
9
+ padding-right: var(--account_contPaddingLR);
10
+ }
11
+
12
+ &.section {
13
+ margin-bottom: var(--account_sectionDistance);
14
+ }
15
+
16
+ &.full {
17
+ padding-left: 0;
18
+ padding-right: 0;
19
+ }
20
+ `;
21
+ export default AccountContainerStyle;
@@ -10,7 +10,10 @@ const AccountInfo = ({ user, onAccountUpdate, displayFields = defaultDisplayFiel
10
10
  const [edit, setEdit] = useState(false);
11
11
  //! Handle Popup
12
12
  const handleSuccessPopup = useCallback(() => {
13
- openPopup(React.createElement(WarningMessageForPopup, { title: 'yourSettingsHaveBeenSaved', description: 'yourSettingsHaveBeenSaved' }), { className: 'messagePopup' });
13
+ openPopup(React.createElement(WarningMessageForPopup, { title: 'yourSettingsHaveBeenSaved', description: 'yourSettingsHaveBeenSaved' }), {
14
+ className: 'messagePopup',
15
+ accountIcon: true,
16
+ });
14
17
  }, []);
15
18
  //! On Finish
16
19
  const onFinish = useCallback((values) => {
@@ -5,6 +5,9 @@ declare function AccountPassword({ formFields, onPasswordUpdate }: {
5
5
  labelProps: {
6
6
  label: string;
7
7
  name: string;
8
+ rules: {
9
+ type: string;
10
+ }[];
8
11
  };
9
12
  fieldProps: {
10
13
  placeholder: string;
@@ -10,7 +10,10 @@ const AccountPassword = ({ formFields = defaultFormFields, onPasswordUpdate }) =
10
10
  const [edit, setEdit] = useState(false);
11
11
  //! Handle Popup
12
12
  const handleSuccessPopup = useCallback(() => {
13
- openPopup(React.createElement(WarningMessageForPopup, { title: 'yourSettingsHaveBeenSaved', description: 'yourPasswordHaveBeenChanged' }), { className: 'messagePopup' });
13
+ openPopup(React.createElement(WarningMessageForPopup, { title: 'yourSettingsHaveBeenSaved', description: 'yourPasswordHaveBeenChanged' }), {
14
+ className: 'messagePopup',
15
+ accountIcon: true,
16
+ });
14
17
  }, []);
15
18
  //! On Finish
16
19
  const onFinish = useCallback((values) => {
@@ -3,6 +3,9 @@ export declare const defaultFormFields: {
3
3
  labelProps: {
4
4
  label: string;
5
5
  name: string;
6
+ rules: {
7
+ type: string;
8
+ }[];
6
9
  };
7
10
  fieldProps: {
8
11
  placeholder: string;
@@ -4,6 +4,7 @@ export const defaultFormFields = [
4
4
  labelProps: {
5
5
  label: 'enterCurrentPassword',
6
6
  name: 'current_password',
7
+ rules: [{ type: 'password' }],
7
8
  },
8
9
  fieldProps: {
9
10
  placeholder: 'enterCurrentPasswordPlaceholder',
@@ -14,6 +15,7 @@ export const defaultFormFields = [
14
15
  labelProps: {
15
16
  label: 'enterNewPassword',
16
17
  name: 'password',
18
+ rules: [{ type: 'password' }],
17
19
  },
18
20
  fieldProps: {
19
21
  placeholder: 'enterNewPasswordPlaceholder',
@@ -12,10 +12,15 @@ const AddressItem = ({ type, title, data, checkout_review, select_address, onCli
12
12
  const { deleteAddress, selectedAddresses, selectAddress } = useAddressContext();
13
13
  //! Handle Popups
14
14
  const handleDeletePopup = useCallback(() => {
15
- openPopup(React.createElement(WarningMessageForPopup, { isDelete: true, title: 'deleteAddressMessage', description: 'confirmDeleteAddress', onRemove: () => deleteAddress(data.id, data.type) }), { className: 'messagePopup' });
15
+ openPopup(React.createElement(WarningMessageForPopup, { isDelete: true, title: 'deleteAddressMessage', description: 'confirmDeleteAddress', onRemove: () => deleteAddress(data.id, data.type) }), {
16
+ className: 'messagePopup',
17
+ accountIcon: true,
18
+ });
16
19
  }, [data]);
17
20
  const handleEditAddressPopup = useCallback(() => {
18
- openPopup(React.createElement(AddressForm, { title: type === 'billing' ? `updateYourBillingAddress` : type == 'shipping' ? `updateYourShippingAddress` : 'updateYourAddress', data: data }));
21
+ openPopup(React.createElement(AddressForm, { title: type === 'billing' ? `updateYourBillingAddress` : type == 'shipping' ? `updateYourShippingAddress` : 'updateYourAddress', data: data }), {
22
+ accountIcon: true,
23
+ });
19
24
  }, [data]);
20
25
  return (data && (React.createElement(AddressItemStyle, { className: `item-container` },
21
26
  checkout_review && (React.createElement("div", { className: `change-address-wrap` },
@@ -13,7 +13,9 @@ const AddressWrap = ({ title = 'addresses', addNewText = 'addNewAdd', type, clas
13
13
  [className]: className,
14
14
  });
15
15
  const handleAddNewAddressPopup = () => {
16
- openPopup(React.createElement(AddressForm, { title: 'addNewAddress', type: type }));
16
+ openPopup(React.createElement(AddressForm, { title: 'addNewAddress', type: type }), {
17
+ accountIcon: true,
18
+ });
17
19
  };
18
20
  return (React.createElement("div", { className: classString },
19
21
  React.createElement("div", { className: `address-title-container` },
@@ -9,7 +9,9 @@ const SelectAddress = ({ type, title }) => {
9
9
  const { openPopup } = useUi();
10
10
  const { addresses, hasAddressType } = useAddressContext();
11
11
  const handleNewAddressPopup = () => {
12
- openPopup(React.createElement(AddressForm, { title: `addNewShippingAddress`, selected: { value: false, type: 'shipping' } }));
12
+ openPopup(React.createElement(AddressForm, { title: `addNewShippingAddress`, selected: { value: false, type: 'shipping' } }), {
13
+ accountIcon: true,
14
+ });
13
15
  };
14
16
  return (React.createElement(SelectAddressStyle, null,
15
17
  React.createElement("div", { className: `select-address-wrap` },
@@ -9,18 +9,26 @@ const SelectShippingBilling = () => {
9
9
  const { selectedAddresses, setSelectedAddresses, addresses } = addressContext;
10
10
  //! Handle Popups
11
11
  const handleAddNewShippingAddressPopup = useCallback(() => {
12
- openPopup(React.createElement(AddressForm, { title: `addNewShippingAddress`, selected: { value: false, type: 'shipping' } }));
12
+ openPopup(React.createElement(AddressForm, { title: `addNewShippingAddress`, selected: { value: false, type: 'shipping' } }), {
13
+ accountIcon: true,
14
+ });
13
15
  }, []);
14
16
  const handleAddNewBillingAddressPopup = useCallback(() => {
15
- openPopup(React.createElement(AddressForm, { title: `addNewBillingAddress`, selected: { value: false, type: 'billing' } }));
17
+ openPopup(React.createElement(AddressForm, { title: `addNewBillingAddress`, selected: { value: false, type: 'billing' } }), {
18
+ accountIcon: true,
19
+ });
16
20
  }, []);
17
21
  const handleShippingChangePopup = useCallback(() => {
18
22
  openPopup(React.createElement(AddressProvider, { ...addressContext },
19
- React.createElement(SelectShippingBillingPopup, { type: 'shipping', data: addresses, title: 'selectShippingAddress', selectedAddresses: selectedAddresses, setSelectedAddresses: setSelectedAddresses, handleClick: handleAddNewShippingAddressPopup })));
23
+ React.createElement(SelectShippingBillingPopup, { type: 'shipping', data: addresses, title: 'selectShippingAddress', selectedAddresses: selectedAddresses, setSelectedAddresses: setSelectedAddresses, handleClick: handleAddNewShippingAddressPopup })), {
24
+ accountIcon: true,
25
+ });
20
26
  }, [addresses, selectedAddresses]);
21
27
  const handleBillingChangePopup = useCallback(() => {
22
28
  openPopup(React.createElement(AddressProvider, { ...addressContext },
23
- React.createElement(SelectShippingBillingPopup, { type: 'billing', data: addresses, title: 'selectBillingAddress', selectedAddresses: selectedAddresses, setSelectedAddresses: setSelectedAddresses, handleClick: handleAddNewBillingAddressPopup })));
29
+ React.createElement(SelectShippingBillingPopup, { type: 'billing', data: addresses, title: 'selectBillingAddress', selectedAddresses: selectedAddresses, setSelectedAddresses: setSelectedAddresses, handleClick: handleAddNewBillingAddressPopup })), {
30
+ accountIcon: true,
31
+ });
24
32
  }, [addresses, selectedAddresses]);
25
33
  return (React.createElement("div", { style: { marginTop: 50 }, className: 'shipping-billing-change-wrapper' },
26
34
  React.createElement(AddressItem, { checkout_review: true, type: 'shipping', select_address: false, title: 'shippingAddress', data: selectedAddresses.shipping, onClick: handleShippingChangePopup, setSelectedAddresses: setSelectedAddresses }),
@@ -3,6 +3,9 @@ export declare const defaultFormFields: {
3
3
  labelProps: {
4
4
  label: string;
5
5
  name: string;
6
+ rules: {
7
+ type: string;
8
+ }[];
6
9
  className: string;
7
10
  };
8
11
  fieldProps: {
@@ -4,6 +4,7 @@ export const defaultFormFields = [
4
4
  labelProps: {
5
5
  label: 'newPassword',
6
6
  name: 'password',
7
+ rules: [{ type: 'password' }],
7
8
  className: 'new-password-input-wrap',
8
9
  },
9
10
  fieldProps: {
@@ -1,4 +1,4 @@
1
- export declare const defaultFormFields: ({
1
+ export declare const defaultFormFields: {
2
2
  fieldType: string;
3
3
  labelProps: {
4
4
  label: string;
@@ -10,14 +10,4 @@ export declare const defaultFormFields: ({
10
10
  fieldProps: {
11
11
  placeholder: string;
12
12
  };
13
- } | {
14
- fieldType: string;
15
- labelProps: {
16
- label: string;
17
- name: string;
18
- rules?: undefined;
19
- };
20
- fieldProps: {
21
- placeholder: string;
22
- };
23
- })[];
13
+ }[];
@@ -15,6 +15,7 @@ export const defaultFormFields = [
15
15
  labelProps: {
16
16
  label: 'password',
17
17
  name: 'password',
18
+ rules: [{ type: 'password' }],
18
19
  },
19
20
  fieldProps: {
20
21
  placeholder: 'passwordPlaceholder',
@@ -35,6 +35,7 @@ export const defaultFormFields = [
35
35
  labelProps: {
36
36
  label: 'password',
37
37
  name: 'password',
38
+ rules: [{ type: 'password' }],
38
39
  },
39
40
  fieldProps: {
40
41
  placeholder: 'passwordPlaceholder',
@@ -79,7 +79,10 @@ const VerifyEmailAddressTemplate = ({}) => {
79
79
  setIsSent(false);
80
80
  setError(err?.data?.message);
81
81
  });
82
- } }), { className: 'messagePopup' });
82
+ } }), {
83
+ className: 'messagePopup',
84
+ accountIcon: true,
85
+ });
83
86
  }, [isSent, error]);
84
87
  return (React.createElement(Page, { className: 'verify-email-address use-account' },
85
88
  React.createElement(VerifyEmailAddressTemplateStyle, null,
@@ -1,14 +1,15 @@
1
1
  import React from 'react';
2
- import { Container, Page } from '@weareconceptstudio/core';
2
+ import { Page } from '@weareconceptstudio/core';
3
3
  import { SimpleCartItems, EmptyCart } from '..';
4
4
  import { TotalCheckout, AccountButton } from '../../../components';
5
5
  import { useAccountContext } from '../../../AccountProvider';
6
+ import AccountContainer from '../../../components/AccountContainer';
6
7
  //* Styles
7
8
  import CartTemplateStyle from './style';
8
9
  const CartTemplate = ({ items, itemsCount, shippingCost, loading, children, subtotal, total, actions, btnDisabled, checkoutUrl = '/checkout/' }) => {
9
10
  const { shopUrl } = useAccountContext();
10
11
  return (React.createElement(Page, { className: 'cart use-account' },
11
- React.createElement(Container, null,
12
+ React.createElement(AccountContainer, null,
12
13
  React.createElement(CartTemplateStyle, null,
13
14
  React.createElement(TotalCheckout, { total: total, subtotal: subtotal, itemsCount: itemsCount, shippingCost: shippingCost, buttonProps: {
14
15
  url: checkoutUrl,
@@ -1,9 +1,10 @@
1
1
  import React, { useCallback, useRef, useState } from 'react';
2
- import { api, Container, Page } from '@weareconceptstudio/core';
2
+ import { api, Page } from '@weareconceptstudio/core';
3
3
  import { Sequence, TotalCheckout } from '../../../components';
4
4
  import { useAddressContext } from '../../address';
5
5
  import StepReview from './StepReview';
6
6
  import StepShipping from './StepShipping';
7
+ import AccountContainer from '../../../components/AccountContainer';
7
8
  //* Styles
8
9
  import CheckoutTemplateStyle from './style';
9
10
  const CheckoutTemplate = ({ itemsCount, items, total, subtotal, shippingCost }) => {
@@ -43,7 +44,7 @@ const CheckoutTemplate = ({ itemsCount, items, total, subtotal, shippingCost })
43
44
  checkStep.isShipping ? handleCheckoutFirstStep() : handleCheckoutSecondStep();
44
45
  }, [checkStep]);
45
46
  return (React.createElement(Page, { className: 'checkout use-account' },
46
- React.createElement(Container, null,
47
+ React.createElement(AccountContainer, null,
47
48
  React.createElement(CheckoutTemplateStyle, null,
48
49
  React.createElement(TotalCheckout, { isCheckout: true, total: total, subtotal: subtotal, itemsCount: itemsCount, shippingCost: shippingCost, isShipping: checkStep.isShipping, checkoutData: checkoutData, fillCheckoutData: fillCheckoutData, buttonProps: {
49
50
  url: false,
@@ -1,10 +1,11 @@
1
1
  'use client';
2
2
  import React, { useEffect } from 'react';
3
- import { Page, Text, Container, useTranslation } from '@weareconceptstudio/core';
4
- import { Sequence, Button } from '../../../components';
3
+ import { Page, Text, useTranslation } from '@weareconceptstudio/core';
4
+ import { AccountButton, Sequence } from '../../../components';
5
5
  import ThankYouMessageStyle from './style';
6
6
  import { useAccountContext } from '../../../AccountProvider';
7
7
  import { confirmImage } from './icons';
8
+ import AccountContainer from '../../../components/AccountContainer';
8
9
  const ThankYouTemplate = ({ orderNumber }) => {
9
10
  const { shopUrl, useCart } = useAccountContext();
10
11
  const { translate } = useTranslation();
@@ -14,13 +15,13 @@ const ThankYouTemplate = ({ orderNumber }) => {
14
15
  }, []);
15
16
  return (React.createElement(Page, { className: 'use-account' },
16
17
  React.createElement(ThankYouMessageStyle, null,
17
- React.createElement(Container, null,
18
+ React.createElement(AccountContainer, null,
18
19
  React.createElement(Sequence, { step: 'confirmed' }),
19
20
  React.createElement("div", { className: `confirmation-wrapper` },
20
21
  React.createElement("div", { className: 'confirmation-image' }, confirmImage),
21
22
  React.createElement(Text, { tag: `h6`, className: `account-h6 account-font-bold account-primary-color1 title`, text: `confirmMessageTitle` }),
22
23
  React.createElement(Text, { tag: `p`, className: `account-p account-p2 account-font-regular account-primary-color1 description`, text: `confirmMessageDesc` }),
23
24
  React.createElement(Text, { tag: `p`, className: `account-p account-p2 account-font-regular account-primary-color1 order-number` }, translate('orderNumber') + ':' + ' ' + orderNumber),
24
- React.createElement(Button, { text: `continueShopping`, btnType: `purple-text`, url: shopUrl }))))));
25
+ React.createElement(AccountButton, { text: `continueShopping`, btnType: `purple-text`, url: shopUrl }))))));
25
26
  };
26
27
  export default ThankYouTemplate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weareconceptstudio/account",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Concept Studio Account",
5
5
  "author": "Concept Studio",
6
6
  "license": "ISC",