Skip to content

Commit 342f972

Browse files
committed
refactor(theme): move composable helpers to theme
1 parent 85f06a3 commit 342f972

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const getContextProperty = <RETURN_TYPE>(object: Record<string, any>, name: string) => (
2+
object?.[`$${name}`]
3+
|| object?.[name]) as RETURN_TYPE;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
export function htmlDecode(input: string) {
2+
const formatName = () => {
3+
try {
4+
const domParser = new DOMParser();
5+
const doc = domParser.parseFromString(input, 'text/html');
6+
return doc.documentElement.textContent;
7+
} catch {
8+
return input;
9+
}
10+
};
11+
const name = formatName();
12+
return name === 'undefined' ? '' : name;
13+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { CustomerAddressInput } from '@vue-storefront/magento-api';
2+
3+
export const transformUserCreateAddressInput = (addressInputParams): CustomerAddressInput => {
4+
const {
5+
apartment,
6+
neighborhood,
7+
extra,
8+
...address
9+
} = addressInputParams.address;
10+
11+
const street = [address.street];
12+
13+
if (apartment) street.push(apartment);
14+
15+
if (neighborhood) street.push(neighborhood);
16+
17+
if (extra) street.push(extra);
18+
19+
return {
20+
...address,
21+
street,
22+
};
23+
};
24+
25+
export const transformUserUpdateAddressInput = (addressInputParams): {
26+
addressId: number;
27+
input: CustomerAddressInput;
28+
} => {
29+
const {
30+
apartment,
31+
neighborhood,
32+
extra,
33+
id,
34+
// @ts-ignore
35+
// eslint-disable-next-line
36+
extension_attributes,
37+
// @ts-ignore
38+
// eslint-disable-next-line no-underscore-dangle
39+
__typename: typenameAddress,
40+
...address
41+
} = addressInputParams.address;
42+
43+
const {
44+
// @ts-ignore
45+
// eslint-disable-next-line no-underscore-dangle
46+
__typename: typenameRegion,
47+
...region
48+
} = address.region;
49+
50+
const street = (Array.isArray(address.street) ? [...address.street] : [address.street]);
51+
52+
if (apartment) street.push(apartment);
53+
54+
if (neighborhood) street.push(neighborhood);
55+
56+
if (extra) street.push(extra);
57+
58+
const addressParams: CustomerAddressInput = {
59+
...address,
60+
region,
61+
street: street.filter(Boolean),
62+
};
63+
64+
return {
65+
addressId: id,
66+
input: {
67+
...addressParams,
68+
},
69+
};
70+
};
71+
72+
export const transformUserGetter = (addressInput) => ({
73+
...addressInput,
74+
street: addressInput.street[0],
75+
apartment: addressInput.street[1],
76+
neighborhood: addressInput.street[2],
77+
extra: addressInput.street[3],
78+
});

0 commit comments

Comments
 (0)