@faststore/core 3.88.7 → 3.89.1

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 (160) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +55 -55
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/react-loadable-manifest.json +27 -27
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/1607.js +1 -0
  14. package/.next/server/chunks/2570.js +1 -1
  15. package/.next/server/chunks/6886.js +1 -1
  16. package/.next/server/chunks/9563.js +2 -2
  17. package/.next/server/chunks/9630.js +1 -1
  18. package/.next/server/functions-config-manifest.json +1 -1
  19. package/.next/server/middleware-build-manifest.js +1 -1
  20. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  21. package/.next/server/pages/404.js.nft.json +1 -1
  22. package/.next/server/pages/500.js.nft.json +1 -1
  23. package/.next/server/pages/[...slug].js.nft.json +1 -1
  24. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  25. package/.next/server/pages/_app.js.nft.json +1 -1
  26. package/.next/server/pages/_document.js.nft.json +1 -1
  27. package/.next/server/pages/_error.js.nft.json +1 -1
  28. package/.next/server/pages/api/graphql.js +1 -1
  29. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  30. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  31. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  32. package/.next/server/pages/api/preview.js.nft.json +1 -1
  33. package/.next/server/pages/checkout.js.nft.json +1 -1
  34. package/.next/server/pages/en-US/404.html +1 -1
  35. package/.next/server/pages/en-US/500.html +1 -1
  36. package/.next/server/pages/en-US/checkout.html +1 -1
  37. package/.next/server/pages/en-US/login.html +1 -1
  38. package/.next/server/pages/en-US/s.html +1 -1
  39. package/.next/server/pages/en-US.html +1 -1
  40. package/.next/server/pages/index.js.nft.json +1 -1
  41. package/.next/server/pages/login.js.nft.json +1 -1
  42. package/.next/server/pages/pvt/account/403.js +1 -1
  43. package/.next/server/pages/pvt/account/403.js.nft.json +1 -1
  44. package/.next/server/pages/pvt/account/404.js +1 -1
  45. package/.next/server/pages/pvt/account/404.js.nft.json +1 -1
  46. package/.next/server/pages/pvt/account/[...unknown].js.nft.json +1 -1
  47. package/.next/server/pages/pvt/account/orders/[id].js +1 -1
  48. package/.next/server/pages/pvt/account/orders/[id].js.nft.json +1 -1
  49. package/.next/server/pages/pvt/account/orders.js +1 -1
  50. package/.next/server/pages/pvt/account/orders.js.nft.json +1 -1
  51. package/.next/server/pages/pvt/account/profile.js +1 -1
  52. package/.next/server/pages/pvt/account/profile.js.nft.json +1 -1
  53. package/.next/server/pages/pvt/account/security.js +1 -1
  54. package/.next/server/pages/pvt/account/security.js.nft.json +1 -1
  55. package/.next/server/pages/pvt/account/user-details.js +1 -1
  56. package/.next/server/pages/pvt/account/user-details.js.nft.json +1 -1
  57. package/.next/server/pages/pvt/account.js.nft.json +1 -1
  58. package/.next/server/pages/s.js.nft.json +1 -1
  59. package/.next/server/pages-manifest.json +1 -1
  60. package/.next/static/43JSGz9XxT2_nidd-70dX/_buildManifest.js +1 -0
  61. package/.next/static/chunks/pages/pvt/account/403-f2858569fde3873b.js +1 -0
  62. package/.next/static/chunks/pages/pvt/account/404-c68124bed7cb7c48.js +1 -0
  63. package/.next/static/chunks/pages/pvt/account/orders/[id]-459f6b9a86780410.js +1 -0
  64. package/.next/static/chunks/pages/pvt/account/orders-f376bbaf561ae429.js +1 -0
  65. package/.next/static/chunks/pages/pvt/account/profile-b6cdbf02d4682544.js +1 -0
  66. package/.next/static/chunks/pages/pvt/account/security-e6289a40e745d3c4.js +1 -0
  67. package/.next/static/chunks/pages/pvt/account/user-details-fba1822e52e7de26.js +1 -0
  68. package/.next/static/chunks/{webpack-747ebf1e0c896030.js → webpack-f16e329d9f50b79b.js} +1 -1
  69. package/.next/static/css/{5273202f7c5e5ec1.css → 02eaf202d3d11fd1.css} +1 -1
  70. package/.next/static/css/0f8f72ecdeb79402.css +1 -0
  71. package/.next/static/css/2c0f8724c01f2ab8.css +1 -0
  72. package/.next/static/css/32a4ddbf3999c2a5.css +1 -0
  73. package/.next/static/css/331f08e9d306e70b.css +1 -0
  74. package/.next/static/css/{865e30903caadb79.css → 4f0597b0bf0ef2e1.css} +1 -1
  75. package/.next/static/css/5177628438c28f74.css +1 -0
  76. package/.next/static/css/6bb0abee27fe0019.css +1 -0
  77. package/.next/static/css/84ebcfe7a63d709d.css +1 -0
  78. package/.next/static/css/8df9f9a136312210.css +1 -0
  79. package/.next/static/css/a8bcd71b15adb1ec.css +1 -0
  80. package/.next/static/css/a9328b56f3942b82.css +1 -0
  81. package/.next/static/css/{b7bba8fce075688b.css → b65e005fb943434c.css} +1 -1
  82. package/.next/static/css/{831a1f72fe4b2d80.css → bd121d85d6ceed46.css} +1 -1
  83. package/.next/static/css/{dbbb10bf2f162a58.css → be59e989720e6e50.css} +1 -1
  84. package/.next/static/css/{b1806cbafd0c1f81.css → c29fee5b9f9d48d9.css} +1 -1
  85. package/.next/static/css/{936c65069d608087.css → c34f6ea9953e2f63.css} +1 -1
  86. package/.next/static/css/{e46393a76c5d93a9.css → c53b17b6fa994508.css} +1 -1
  87. package/.next/static/css/{5347dbc8b71de47d.css → ceb410a7062740d1.css} +1 -1
  88. package/.next/static/css/da0f1f3329c5657a.css +1 -0
  89. package/.next/static/css/da5bfb1f39c54578.css +1 -0
  90. package/.next/static/css/f60366555f563deb.css +1 -0
  91. package/.next/static/css/f81198b7fe9f5f6f.css +1 -0
  92. package/.next/trace +138 -137
  93. package/.turbo/turbo-build.log +26 -26
  94. package/.turbo/turbo-test.log +6 -5
  95. package/@generated/gql.ts +12 -12
  96. package/@generated/graphql.ts +13 -14
  97. package/@generated/persisted-documents.json +6 -6
  98. package/@generated/schema.graphql +0 -2
  99. package/CHANGELOG.md +12 -0
  100. package/package.json +4 -4
  101. package/src/components/account/MyAccountLayout/MyAccountLayout.tsx +3 -3
  102. package/src/components/account/MyAccountLayout/styles.scss +10 -0
  103. package/src/components/account/MyAccountMenu/styles.scss +2 -1
  104. package/src/components/account/MyAccountUserDetails/MyAccountUserDetails.tsx +18 -39
  105. package/src/components/account/MyAccountUserDetails/styles.module.scss +1 -93
  106. package/src/components/account/components/MyAccountHeader/MyAccountHeader.tsx +13 -0
  107. package/src/components/account/components/MyAccountHeader/index.ts +1 -0
  108. package/src/components/account/components/MyAccountHeader/styles.scss +13 -0
  109. package/src/components/account/components/MyAccountStatusBadge/styles.scss +4 -4
  110. package/src/components/account/components/MyAccountTable/MyAccountTable.tsx +23 -0
  111. package/src/components/account/components/MyAccountTable/index.ts +1 -0
  112. package/src/components/account/components/MyAccountTable/styles.scss +67 -0
  113. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrders.tsx +131 -134
  114. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/MyAccountListOrdersTable.tsx +9 -24
  115. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrdersTable/styles.scss +37 -42
  116. package/src/components/account/orders/MyAccountListOrders/styles.module.scss +4 -25
  117. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderActions/MyAccountOrderActions.tsx +1 -6
  118. package/src/components/account/orders/MyAccountOrderDetails/MyAccountOrderDetails.tsx +1 -1
  119. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/MyAccountStatusCard.tsx +9 -11
  120. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/styles.scss +27 -11
  121. package/src/components/account/orders/MyAccountOrderDetails/MyAccountStatusCard/useConnectorPositioning.ts +0 -8
  122. package/src/components/account/orders/MyAccountOrderDetails/section.module.scss +2 -3
  123. package/src/components/account/profile/profile.module.scss +1 -85
  124. package/src/components/account/profile/profile.tsx +24 -31
  125. package/src/components/account/security/SecurityDrawer.tsx +86 -88
  126. package/src/components/account/security/SecuritySection.tsx +23 -20
  127. package/src/components/account/security/styles.module.scss +26 -150
  128. package/src/experimental/myAccountSeverSideProps.ts +6 -4
  129. package/src/pages/pvt/account/403.tsx +5 -3
  130. package/src/pages/pvt/account/404.tsx +5 -3
  131. package/src/pages/pvt/account/orders/[id].tsx +4 -2
  132. package/src/pages/pvt/account/orders/index.tsx +4 -2
  133. package/src/pages/pvt/account/profile.tsx +2 -6
  134. package/src/pages/pvt/account/security.tsx +4 -5
  135. package/src/pages/pvt/account/user-details.tsx +4 -2
  136. package/src/utils/userOrderStatus.ts +5 -5
  137. package/test/server/index.test.ts +0 -1
  138. package/.next/static/chunks/pages/pvt/account/403-e4315ace8609a7ff.js +0 -1
  139. package/.next/static/chunks/pages/pvt/account/404-1e450ae9476bbcaa.js +0 -1
  140. package/.next/static/chunks/pages/pvt/account/orders/[id]-a3e46af1be9816a4.js +0 -1
  141. package/.next/static/chunks/pages/pvt/account/orders-db7a364869130660.js +0 -1
  142. package/.next/static/chunks/pages/pvt/account/profile-e8a7ad7a7d7c60fb.js +0 -1
  143. package/.next/static/chunks/pages/pvt/account/security-cad4e4260be8b0cd.js +0 -1
  144. package/.next/static/chunks/pages/pvt/account/user-details-401f6f6e4ce4b9ce.js +0 -1
  145. package/.next/static/css/04fb2d4b8924b0c6.css +0 -1
  146. package/.next/static/css/083dc2a5b0de2439.css +0 -1
  147. package/.next/static/css/175fa823349dc534.css +0 -1
  148. package/.next/static/css/297be4be3be36ff0.css +0 -1
  149. package/.next/static/css/2a4b7072e47636f1.css +0 -1
  150. package/.next/static/css/45fac71f6411cceb.css +0 -1
  151. package/.next/static/css/6cd282d958f613bc.css +0 -1
  152. package/.next/static/css/b52f8f6500d3439e.css +0 -1
  153. package/.next/static/css/b7fc24e8f1eb011f.css +0 -1
  154. package/.next/static/css/d26cb0a54378b3d9.css +0 -1
  155. package/.next/static/css/ec7fdad03808422d.css +0 -1
  156. package/.next/static/css/f93cf36b16950027.css +0 -1
  157. package/.next/static/css/fd0a7a134ddc3d90.css +0 -1
  158. package/.next/static/css/fe0bcc13a2b68605.css +0 -1
  159. package/.next/static/pe6z3Z3bQ07PowbWL75Ts/_buildManifest.js +0 -1
  160. /package/.next/static/{pe6z3Z3bQ07PowbWL75Ts → 43JSGz9XxT2_nidd-70dX}/_ssgManifest.js +0 -0
@@ -1,108 +1,16 @@
1
1
  @layer components {
2
2
  .section {
3
3
  @import "../components/MyAccountTag/styles.scss";
4
+ @import "../components/MyAccountTable/styles.scss";
4
5
 
5
6
  // --------------------------------------------------------
6
7
  // Design Tokens
7
8
  // --------------------------------------------------------
8
9
 
9
- --fs-user-details-padding : var(--fs-spacing-4) var(--fs-spacing-9);
10
-
11
- // Title
12
- --fs-user-details-title-padding : var(--fs-spacing-4) 0;
13
- --fs-user-details-title-size : var(--fs-text-size-4);
14
- --fs-user-details-title-weight : var(--fs-text-weight-semibold);
15
- --fs-user-details-title-line-height : var(--fs-spacing-4);
16
-
17
- // Divider
18
- --fs-user-details-divider-border : calc(var(--fs-border-width) / 2) solid #e0e0e0;
19
-
20
- // Row
21
- --fs-user-details-row-padding : var(--fs-spacing-4) 0;
22
- --fs-user-details-row-weight : var(--fs-text-weight-medium);
23
- --fs-user-details-row-label-width : 12.5rem;
24
- --fs-user-details-row-label-size : var(--fs-text-size-1);
25
- --fs-user-details-row-label-weight : var(--fs-text-weight-medium);
26
- --fs-user-details-row-label-color : var(--fs-color-neutral-5);
27
-
28
- // Row Value
29
- --fs-user-details-row-value-size : var(--fs-text-size-1);
30
- --fs-user-details-row-value-weight : var(--fs-text-weight-medium);
31
- --fs-user-details-row-value-color : black;
32
-
33
- width: 100%;
34
- padding: var(--fs-user-details-padding);
35
-
36
- @include media("<notebook") {
37
- padding: var(--fs-spacing-0) var(--fs-spacing-5);
38
- }
39
-
40
- [data-fs-user-details-table] {
41
- width: 100%;
42
- border-spacing: 0;
43
- border-collapse: collapse;
44
- }
45
-
46
- [data-fs-user-details-row] {
47
- display: flex;
48
- padding: var(--fs-user-details-row-padding);
49
- font-weight: var(--fs-user-details-row-weight);
50
- line-height: var(--fs-user-details-row-line-height);
51
- border-bottom: var(--fs-user-details-divider-border);
52
-
53
- @include media("<tablet") {
54
- flex-direction: column;
55
- gap: .5rem;
56
- }
57
- }
58
-
59
- [data-fs-user-details-row]:last-of-type {
60
- border-bottom: none;
61
- }
62
-
63
- [data-fs-user-details-divider-row] {
64
- height: 0;
65
- }
66
-
67
- [data-fs-user-details-divider] {
68
- height: 0;
69
- padding: 0;
70
- border: none;
71
- border: var(--fs-user-details-divider-border);
72
- }
73
-
74
- [data-fs-user-details-title] {
75
- display: flex;
76
- align-items: center;
77
- justify-content: space-between;
78
- padding: var(--fs-user-details-title-padding);
79
- font-size: var(--fs-user-details-title-size);
80
- font-weight: var(--fs-user-details-title-weight);
81
- line-height: var(--fs-user-details-title-line-height);
82
- }
83
-
84
- [data-fs-user-details-row-label] {
85
- width: var(--fs-user-details-row-label-width);
86
- font-size: var(--fs-user-details-row-label-size);
87
- font-weight: var(--fs-user-details-row-label-weight);
88
- color: var(--fs-user-details-row-label-color);
89
- text-align: left;
90
- }
91
-
92
- [data-fs-user-details-row-value] {
93
- font-size: var(--fs-user-details-row-value-size);
94
- font-weight: var(--fs-user-details-row-value-weight);
95
- color: var(--fs-user-details-row-value-color);
96
- }
97
-
98
10
  [data-fs-user-details-row-tags] {
99
11
  display: flex;
100
12
  flex-wrap: wrap;
101
13
  gap: var(--fs-spacing-0);
102
-
103
- [data-fs-user-details-row-value] {
104
- margin-top: var(--fs-spacing-0);
105
- }
106
14
  }
107
15
  }
108
16
  }
@@ -0,0 +1,13 @@
1
+ interface MyAccountHeaderProps {
2
+ pageTitle: string
3
+ }
4
+
5
+ function MyAccountHeader({ pageTitle }: MyAccountHeaderProps) {
6
+ return (
7
+ <header data-fs-account-header>
8
+ <h1 data-fs-account-header-title>{pageTitle}</h1>
9
+ </header>
10
+ )
11
+ }
12
+
13
+ export default MyAccountHeader
@@ -0,0 +1 @@
1
+ export { default } from './MyAccountHeader'
@@ -0,0 +1,13 @@
1
+ [data-fs-account-header] {
2
+ padding: var(--fs-spacing-3) 0;
3
+
4
+ @include media(">=notebook") {
5
+ padding: var(--fs-spacing-6) 0;
6
+ }
7
+
8
+ [data-fs-account-header-title] {
9
+ font-family: var(--fs-text-face-title);
10
+ font-size: var(--fs-text-size-4);
11
+ font-weight: var(--fs-text-weight-semibold);
12
+ }
13
+ }
@@ -11,14 +11,14 @@
11
11
  --fs-my-account-badge-padding : var(--fs-spacing-0) var(--fs-spacing-2);
12
12
  --fs-my-account-badge-line-height : 1;
13
13
  --fs-my-account-badge-color : var(--fs-color-text);
14
- --fs-my-account-badge-border : 1px none transparent;
14
+ --fs-my-account-badge-border : 2px solid var(--fs-color-neutral-0);
15
15
  --fs-my-account-badge-border-radius : var(--fs-border-radius-pill);
16
16
  --fs-my-account-badge-success-bkg : var(--fs-color-success-bkg);
17
- --fs-my-account-badge-success-border : var(--fs-color-success-bkg);
17
+ --fs-my-account-badge-success-border : var(--fs-color-neutral-0);
18
18
  --fs-my-account-badge-warning-bkg : var(--fs-color-warning-bkg);
19
- --fs-my-account-badge-warning-border : var(--fs-color-warning-bkg);
19
+ --fs-my-account-badge-warning-border : var(--fs-color-neutral-0);
20
20
  --fs-my-account-badge-neutral-bkg : var(--fs-color-neutral-bkg);
21
- --fs-my-account-badge-neutral-border : var(--fs-color-neutral-bkg);
21
+ --fs-my-account-badge-neutral-border : var(--fs-color-neutral-0);
22
22
 
23
23
  // --------------------------------------------------------
24
24
  // Structural Styles
@@ -0,0 +1,23 @@
1
+ interface MyAccountTableProps {
2
+ rows?: Array<{
3
+ heading: string
4
+ data: React.ReactNode | string
5
+ }>
6
+ }
7
+
8
+ function MyAccountTable({ rows, ...props }: MyAccountTableProps) {
9
+ return (
10
+ <table data-fs-account-table {...props}>
11
+ <tbody data-fs-account-table-body>
12
+ {rows?.map((row, idx) => (
13
+ <tr data-fs-account-table-row key={idx}>
14
+ <th data-fs-account-table-heading>{row.heading}</th>
15
+ <td data-fs-account-table-data>{row.data}</td>
16
+ </tr>
17
+ ))}
18
+ </tbody>
19
+ </table>
20
+ )
21
+ }
22
+
23
+ export default MyAccountTable
@@ -0,0 +1 @@
1
+ export { default } from './MyAccountTable'
@@ -0,0 +1,67 @@
1
+ [data-fs-account-table] {
2
+ display: grid;
3
+ grid-template-columns: 1fr;
4
+ width: 100%;
5
+ border-spacing: 0;
6
+ border-collapse: collapse;
7
+
8
+ @include media(">=notebook") {
9
+ grid-template-columns: minmax(11.25rem, auto) 1fr;
10
+ }
11
+
12
+ [data-fs-account-table-body] {
13
+ display: contents;
14
+ gap: var(--fs-spacing-1);
15
+ }
16
+
17
+ [data-fs-account-table-row] {
18
+ display: flex;
19
+ flex-direction: column;
20
+ padding: var(--fs-spacing-4) 0;
21
+ border-bottom: var(--fs-border-width) solid var(--fs-border-color-light);
22
+
23
+ &:last-child:not(:only-child) {
24
+ > [data-fs-account-table-heading],
25
+ > [data-fs-account-table-data] { border-bottom: none; }
26
+ }
27
+
28
+ @include media(">=notebook") {
29
+ display: contents;
30
+ }
31
+ }
32
+
33
+ [data-fs-account-table-heading] {
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: space-between;
37
+ padding-bottom: var(--fs-spacing-1);
38
+ font-family: var(--fs-text-face-body);
39
+ font-size: var(--fs-text-size-2);
40
+ font-weight: var(--fs-text-weight-regular);
41
+ color: var(--fs-color-text-light);
42
+ text-align: left;
43
+
44
+ @include media(">=notebook") {
45
+ min-height: var(--fs-spacing-10);
46
+ padding-bottom: 0;
47
+ border-bottom: var(--fs-border-width) solid var(--fs-border-color-light);
48
+ }
49
+ }
50
+
51
+ [data-fs-account-table-data] {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: space-between;
55
+ font-family: var(--fs-text-face-body);
56
+ font-size: var(--fs-text-size-2);
57
+ font-weight: var(--fs-text-weight-regular);
58
+ color: var(--fs-color-text);
59
+
60
+ [data-fs-link] { padding: 0; }
61
+
62
+ @include media(">=notebook") {
63
+ min-height: var(--fs-spacing-10);
64
+ border-bottom: var(--fs-border-width) solid var(--fs-border-color-light);
65
+ }
66
+ }
67
+ }
@@ -14,6 +14,7 @@ import {
14
14
  } from '@faststore/ui'
15
15
  import { useEffect } from 'react'
16
16
  import MyAccountFilterSlider from 'src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider'
17
+ import AccountHeader from '../../components/MyAccountHeader'
17
18
  import { useDebounce } from 'src/sdk/account/useDebounce'
18
19
  import {
19
20
  useMyAccountFilter,
@@ -191,151 +192,147 @@ export default function MyAccountListOrders({
191
192
 
192
193
  return (
193
194
  <div className={styles.page}>
194
- <div data-fs-list-orders>
195
- <h1 data-fs-list-orders-title>Orders</h1>
196
- <div data-fs-list-orders-header>
197
- <div data-fs-list-orders-search-filters>
198
- <SearchInputField
199
- ref={searchInputRef}
200
- data-fs-search-input-field-list-orders
201
- placeholder="Search"
202
- onBlur={(_) => {
195
+ <AccountHeader pageTitle="Orders" />
196
+ <div data-fs-list-orders-controls>
197
+ <div data-fs-list-orders-search-filters>
198
+ <SearchInputField
199
+ ref={searchInputRef}
200
+ data-fs-search-input-field-list-orders
201
+ placeholder="Search"
202
+ onBlur={(_) => {
203
+ handleSearchChange(searchInputRef.current.inputRef.value)
204
+ }}
205
+ onKeyDown={(e) => {
206
+ if (e.key === 'Enter') {
203
207
  handleSearchChange(searchInputRef.current.inputRef.value)
204
- }}
205
- onKeyDown={(e) => {
206
- if (e.key === 'Enter') {
207
- handleSearchChange(searchInputRef.current.inputRef.value)
208
- }
209
- }}
210
- onSubmit={(_) => {
211
- handleSearchChange(searchInputRef.current.inputRef.value)
212
- }}
213
- />
214
- <Button
215
- data-fs-list-orders-search-filters-button
216
- variant="tertiary"
217
- icon={
218
- <UIIcon
219
- width={16}
220
- height={16}
221
- name="FadersHorizontal"
222
- aria-label="Open Filters"
223
- />
224
208
  }
225
- iconPosition="left"
226
- onClick={() => {
227
- filter.dispatch({
228
- type: 'selectFacets',
229
- payload: getSelectedFacets({ filters }),
230
- })
231
- openFilter()
232
- }}
233
- >
234
- Filters
235
- </Button>
236
- </div>
237
- {isDesktop && (
238
- <Pagination page={filters.page} total={total} perPage={perPage} />
239
- )}
209
+ }}
210
+ onSubmit={(_) => {
211
+ handleSearchChange(searchInputRef.current.inputRef.value)
212
+ }}
213
+ />
214
+ <Button
215
+ data-fs-list-orders-search-filters-button
216
+ size="small"
217
+ variant="tertiary"
218
+ icon={
219
+ <UIIcon
220
+ name="FadersHorizontal"
221
+ width={24}
222
+ height={24}
223
+ aria-label="Open Filters"
224
+ />
225
+ }
226
+ iconPosition="left"
227
+ onClick={() => {
228
+ filter.dispatch({
229
+ type: 'selectFacets',
230
+ payload: getSelectedFacets({ filters }),
231
+ })
232
+ openFilter()
233
+ }}
234
+ >
235
+ Filters
236
+ </Button>
240
237
  </div>
238
+ {isDesktop && (
239
+ <Pagination page={filters.page} total={total} perPage={perPage} />
240
+ )}
241
+ </div>
241
242
 
242
- <SelectedFiltersTags
243
- filters={{
244
- status: filters.status,
245
- dateInitial: filters.dateInitial,
246
- dateFinal: filters.dateFinal,
247
- purchaseAgentId: filters.purchaseAgentId,
248
- }}
249
- onClearAll={() => {
250
- window.location.href = '/pvt/account/orders'
251
- }}
252
- onRemoveFilter={(key, value) => {
253
- const { page, clientEmail, ...updatedFilters } = { ...filters }
254
-
255
- if (key === 'status' && Array.isArray(updatedFilters[key])) {
256
- updatedFilters[key] = updatedFilters[key].filter(
257
- (v) => v !== value
258
- )
259
- } else if (key === 'dateInitial' || key === 'dateFinal') {
260
- delete updatedFilters.dateInitial
261
- delete updatedFilters.dateFinal
262
- } else if (key === 'purchaseAgentId') {
263
- delete updatedFilters.purchaseAgentId
264
- } else {
265
- delete updatedFilters[key]
266
- }
243
+ <SelectedFiltersTags
244
+ filters={{
245
+ status: filters.status,
246
+ dateInitial: filters.dateInitial,
247
+ dateFinal: filters.dateFinal,
248
+ purchaseAgentId: filters.purchaseAgentId,
249
+ }}
250
+ onClearAll={() => {
251
+ window.location.href = '/pvt/account/orders'
252
+ }}
253
+ onRemoveFilter={(key, value) => {
254
+ const { page, clientEmail, ...updatedFilters } = { ...filters }
267
255
 
268
- if (key === 'status' && Array.isArray(updatedFilters[key])) {
269
- updatedFilters[key] = updatedFilters[key].filter(
270
- (v) => v.toLowerCase() !== value.toLowerCase()
271
- )
272
- } else if (key === 'dateInitial' || key === 'dateFinal') {
273
- delete updatedFilters.dateInitial
274
- delete updatedFilters.dateFinal
275
- } else if (key === 'purchaseAgentId') {
276
- delete updatedFilters.purchaseAgentId
277
- } else {
278
- delete updatedFilters[key]
279
- }
256
+ if (key === 'status' && Array.isArray(updatedFilters[key])) {
257
+ updatedFilters[key] = updatedFilters[key].filter((v) => v !== value)
258
+ } else if (key === 'dateInitial' || key === 'dateFinal') {
259
+ delete updatedFilters.dateInitial
260
+ delete updatedFilters.dateFinal
261
+ } else if (key === 'purchaseAgentId') {
262
+ delete updatedFilters.purchaseAgentId
263
+ } else {
264
+ delete updatedFilters[key]
265
+ }
280
266
 
281
- // Remove filters with no values
282
- const filteredQuery = Object.fromEntries(
283
- Object.entries(updatedFilters).filter(([, v]) =>
284
- Array.isArray(v) ? v.length > 0 : Boolean(v)
285
- )
267
+ if (key === 'status' && Array.isArray(updatedFilters[key])) {
268
+ updatedFilters[key] = updatedFilters[key].filter(
269
+ (v) => v.toLowerCase() !== value.toLowerCase()
286
270
  )
271
+ } else if (key === 'dateInitial' || key === 'dateFinal') {
272
+ delete updatedFilters.dateInitial
273
+ delete updatedFilters.dateFinal
274
+ } else if (key === 'purchaseAgentId') {
275
+ delete updatedFilters.purchaseAgentId
276
+ } else {
277
+ delete updatedFilters[key]
278
+ }
287
279
 
288
- const params = new URLSearchParams(
289
- filteredQuery as Record<string, string>
280
+ // Remove filters with no values
281
+ const filteredQuery = Object.fromEntries(
282
+ Object.entries(updatedFilters).filter(([, v]) =>
283
+ Array.isArray(v) ? v.length > 0 : Boolean(v)
290
284
  )
291
- window.location.href = `/pvt/account/orders?${params.toString()}`
292
- }}
293
- />
285
+ )
294
286
 
295
- {displayFilter && (
296
- <MyAccountFilterSlider
297
- {...filter}
298
- title="Filters"
299
- clearButtonLabel="Clear All"
300
- applyButtonLabel="View Results"
301
- searchInputRef={searchInputRef}
302
- />
303
- )}
287
+ const params = new URLSearchParams(
288
+ filteredQuery as Record<string, string>
289
+ )
290
+ window.location.href = `/pvt/account/orders?${params.toString()}`
291
+ }}
292
+ />
304
293
 
305
- {isEmpty ? (
306
- <EmptyState
307
- titleIcon={
308
- <UIIcon
309
- name={hasFilters ? 'MagnifyingGlass' : 'Bag2'}
310
- width={56}
311
- height={56}
312
- weight="thin"
313
- />
314
- }
315
- title={
316
- hasFilters ? 'No results found' : "You don't have any orders"
317
- }
318
- bkgColor="light"
319
- >
320
- {!hasFilters && (
321
- <LinkButton
322
- data-fs-list-orders-empty-state-link
323
- href="/"
324
- variant="secondary"
325
- >
326
- Start shopping
327
- </LinkButton>
328
- )}
329
- </EmptyState>
330
- ) : (
331
- <MyAccountListOrdersTable
332
- listOrders={listOrders}
333
- total={total}
334
- perPage={perPage}
335
- filters={filters}
336
- />
337
- )}
338
- </div>
294
+ {displayFilter && (
295
+ <MyAccountFilterSlider
296
+ {...filter}
297
+ title="Filters"
298
+ clearButtonLabel="Clear All"
299
+ applyButtonLabel="View Results"
300
+ searchInputRef={searchInputRef}
301
+ testId="my-account-filter-slider"
302
+ />
303
+ )}
304
+
305
+ {isEmpty ? (
306
+ <EmptyState
307
+ titleIcon={
308
+ <UIIcon
309
+ name={hasFilters ? 'MagnifyingGlass' : 'Bag2'}
310
+ width={56}
311
+ height={56}
312
+ weight="thin"
313
+ />
314
+ }
315
+ title={hasFilters ? 'No results found' : "You don't have any orders"}
316
+ bkgColor="light"
317
+ >
318
+ {!hasFilters && (
319
+ <LinkButton
320
+ data-fs-list-orders-empty-state-link
321
+ href="/"
322
+ variant="secondary"
323
+ >
324
+ Start shopping
325
+ </LinkButton>
326
+ )}
327
+ </EmptyState>
328
+ ) : (
329
+ <MyAccountListOrdersTable
330
+ listOrders={listOrders}
331
+ total={total}
332
+ perPage={perPage}
333
+ filters={filters}
334
+ />
335
+ )}
339
336
  {!isDesktop && (
340
337
  <Pagination page={filters.page} total={total} perPage={perPage} />
341
338
  )}
@@ -1,4 +1,4 @@
1
- import { Button, Icon } from '@faststore/ui'
1
+ import { Button, Icon, IconButton } from '@faststore/ui'
2
2
  import type { ServerListOrdersQueryQuery } from '@generated/graphql'
3
3
  import { useState } from 'react'
4
4
 
@@ -62,36 +62,22 @@ export function Pagination({
62
62
  return (
63
63
  <div data-fs-list-orders-table-pagination>
64
64
  <p>{`${firstIndexLabel} — ${lastIndexLabel} of ${total}`}</p>
65
- <Button
65
+ <IconButton
66
66
  size="small"
67
67
  variant="tertiary"
68
68
  disabled={page === 1}
69
69
  onClick={() => handlePageChange(page - 1)}
70
- icon={
71
- <Icon
72
- width={16}
73
- height={16}
74
- name="CaretLeft"
75
- aria-label="Previous Page"
76
- />
77
- }
78
- iconPosition="left"
79
- ></Button>
80
- <Button
70
+ icon={<Icon name="CaretLeft" />}
71
+ aria-label="Previous Page"
72
+ />
73
+ <IconButton
81
74
  size="small"
82
75
  variant="tertiary"
83
76
  disabled={page === totalPages}
84
77
  onClick={() => handlePageChange(page + 1)}
85
- icon={
86
- <Icon
87
- width={16}
88
- height={16}
89
- name="CaretRight"
90
- aria-label="Next Page"
91
- />
92
- }
93
- iconPosition="left"
94
- ></Button>
78
+ icon={<Icon name="CaretRight" />}
79
+ aria-label="Next Page"
80
+ />
95
81
  </div>
96
82
  )
97
83
  }
@@ -191,7 +177,6 @@ export default function MyAccountListOrdersTable({
191
177
 
192
178
  return (
193
179
  <tr
194
- data-fs-list-orders-table-body-row
195
180
  data-fs-list-orders-table-row
196
181
  key={item.orderId}
197
182
  onClick={handleRowClick}