@riosst100/pwa-marketplace 2.0.8 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/dependabot.yml +28 -28
- package/i18n/en_US.json +508 -509
- package/i18n/id_ID.json +508 -509
- package/package.json +18 -22
- package/src/componentOverrideMapping.js +1 -0
- package/src/components/AccountLayout/index.js +15 -0
- package/src/components/OrderDetail/components/itemsOrdered.js +128 -0
- package/src/components/OrderDetail/components/rmaList.js +114 -0
- package/src/components/OrderDetail/orderDetail.js +204 -0
- package/src/components/OrderDetail/orderDetailPage.js +14 -0
- package/src/components/RMAPage/RMACreate.js +238 -0
- package/src/components/RMAPage/RMACreatePage.js +14 -0
- package/src/components/RMAPage/RMADetail.js +318 -0
- package/src/components/RMAPage/RMADetailPage.js +14 -0
- package/src/components/RMAPage/RMAList.js +241 -0
- package/src/components/RMAPage/RMASelect.js +36 -0
- package/src/components/RMAPage/RMASelectPage.js +13 -0
- package/src/components/RMAPage/components/productItem.js +114 -0
- package/src/components/RMAPage/components/rmaList.js +250 -0
- package/src/components/RMAPage/index.js +14 -0
- package/src/components/RMAPage/orderRow.js +318 -0
- package/src/components/commons/Checkbox/index.js +57 -0
- package/src/components/commons/Collapsible/index.js +51 -0
- package/src/components/commons/Select/index.js +29 -0
- package/src/components/commons/Textfield/index.js +20 -0
- package/src/intercept.js +35 -0
- package/src/overwrites/venia-ui/lib/components/AccountMenu/accountMenu.js +2 -1
- package/src/overwrites/venia-ui/lib/components/Breadcrumbs/breadcrumbs.module.css +38 -0
- package/src/overwrites/venia-ui/lib/components/CartPage/ProductListing/product.js +9 -2
- package/src/overwrites/venia-ui/lib/components/Footer/footer.js +1 -1
- package/src/overwrites/venia-ui/lib/components/Header/header.js +12 -1
- package/src/overwrites/venia-ui/lib/components/Newsletter/newsletter.js +1 -1
- package/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderRow.js +11 -3
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.js +34 -3
- package/src/overwrites/venia-ui/lib/components/ProductFullDetail/productFullDetail.module.css +9 -0
- package/src/overwrites/venia-ui/lib/components/ProductImageCarousel/carousel.module.css +1 -1
- package/src/overwrites/venia-ui/lib/components/WishlistPage/actionMenu.ee.js +54 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/actionMenu.js +7 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.ee.js +129 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.js +3 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/createWishlist.module.css +63 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/index.js +14 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlist.js +193 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlist.module.css +78 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistConfirmRemoveProductDialog.js +84 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistConfirmRemoveProductDialog.module.css +20 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistEditFavoritesListDialog.js +96 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistEditFavoritesListDialog.module.css +22 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItem.js +138 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItem.module.css +78 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItems.js +45 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistItems.module.css +9 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistListActionsDialog.js +61 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistMoreActionsDialog.js +84 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistMoreActionsDialog.module.css +19 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistPage.js +120 -0
- package/src/overwrites/venia-ui/lib/components/WishlistPage/wishlistPage.module.css +31 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import React, { useMemo, useEffect } from 'react';
|
|
2
|
+
import { useIntl, FormattedMessage } from 'react-intl';
|
|
3
|
+
import {
|
|
4
|
+
AlertCircle as AlertCircleIcon,
|
|
5
|
+
} from 'react-feather';
|
|
6
|
+
import { shape, string } from 'prop-types';
|
|
7
|
+
import { Form } from 'informed';
|
|
8
|
+
|
|
9
|
+
import { useToasts } from '@magento/peregrine/lib/Toasts';
|
|
10
|
+
import OrderHistoryContextProvider from '@magento/peregrine/lib/talons/OrderHistoryPage/orderHistoryContext';
|
|
11
|
+
import { useOrderHistoryPage } from '@magento/peregrine/lib/talons/OrderHistoryPage/useOrderHistoryPage';
|
|
12
|
+
|
|
13
|
+
import { useStyle } from '@magento/venia-ui/lib/classify';
|
|
14
|
+
import Button from '@magento/venia-ui/lib/components/Button';
|
|
15
|
+
import Icon from '@magento/venia-ui/lib/components/Icon';
|
|
16
|
+
import LoadingIndicator from '@magento/venia-ui/lib/components/LoadingIndicator';
|
|
17
|
+
import { StoreTitle } from '@magento/venia-ui/lib/components/Head';
|
|
18
|
+
import TextInput from '@magento/venia-ui/lib/components/TextInput';
|
|
19
|
+
|
|
20
|
+
import defaultClasses from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/orderHistoryPage.module.css';
|
|
21
|
+
import OrderRow from './orderRow';
|
|
22
|
+
import ResetButton from '@riosst100/pwa-marketplace/src/overwrites/venia-ui/lib/components/OrderHistoryPage/resetButton';
|
|
23
|
+
import { SearchNormal } from 'iconsax-react';
|
|
24
|
+
import cn from 'classnames';
|
|
25
|
+
import { useHistory } from "react-router-dom";
|
|
26
|
+
|
|
27
|
+
const errorIcon = (
|
|
28
|
+
<Icon
|
|
29
|
+
src={AlertCircleIcon}
|
|
30
|
+
attrs={{
|
|
31
|
+
width: 18
|
|
32
|
+
}}
|
|
33
|
+
/>
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const RMAList = props => {
|
|
37
|
+
const talonProps = useOrderHistoryPage();
|
|
38
|
+
const {
|
|
39
|
+
errorMessage,
|
|
40
|
+
loadMoreOrders,
|
|
41
|
+
handleReset,
|
|
42
|
+
handleSubmit,
|
|
43
|
+
isBackgroundLoading,
|
|
44
|
+
isLoadingWithoutData,
|
|
45
|
+
orders,
|
|
46
|
+
pageInfo,
|
|
47
|
+
searchText
|
|
48
|
+
} = talonProps;
|
|
49
|
+
const [, { addToast }] = useToasts();
|
|
50
|
+
const { formatMessage } = useIntl();
|
|
51
|
+
const PAGE_TITLE = formatMessage({
|
|
52
|
+
id: 'RMA.pageTitleText',
|
|
53
|
+
defaultMessage: 'Quotes'
|
|
54
|
+
});
|
|
55
|
+
const SEARCH_PLACE_HOLDER = formatMessage({
|
|
56
|
+
id: 'RMA.search',
|
|
57
|
+
defaultMessage: 'Search by Order Number'
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const history = useHistory();
|
|
61
|
+
|
|
62
|
+
const classes = useStyle(defaultClasses, props.classes);
|
|
63
|
+
|
|
64
|
+
const orderRows = useMemo(() => {
|
|
65
|
+
return orders.map(order => {
|
|
66
|
+
return <OrderRow key={order.id} order={order} />;
|
|
67
|
+
});
|
|
68
|
+
}, [orders]);
|
|
69
|
+
|
|
70
|
+
const pageContents = useMemo(() => {
|
|
71
|
+
if (isLoadingWithoutData) {
|
|
72
|
+
return <LoadingIndicator />;
|
|
73
|
+
} else if (!isBackgroundLoading && searchText && !orders.length) {
|
|
74
|
+
return (
|
|
75
|
+
<h3 className={classes.emptyHistoryMessage}>
|
|
76
|
+
<FormattedMessage
|
|
77
|
+
id={'orderHistoryPage.invalidOrderNumber'}
|
|
78
|
+
defaultMessage={`Order "${searchText}" was not found.`}
|
|
79
|
+
values={{
|
|
80
|
+
number: searchText
|
|
81
|
+
}}
|
|
82
|
+
/>
|
|
83
|
+
</h3>
|
|
84
|
+
);
|
|
85
|
+
} else if (!isBackgroundLoading && !orders.length) {
|
|
86
|
+
return (
|
|
87
|
+
<h3 className={classes.emptyHistoryMessage}>
|
|
88
|
+
<FormattedMessage
|
|
89
|
+
id={'orderHistoryPage.emptyDataMessage'}
|
|
90
|
+
defaultMessage={"You don't have any orders yet."}
|
|
91
|
+
/>
|
|
92
|
+
</h3>
|
|
93
|
+
);
|
|
94
|
+
} else {
|
|
95
|
+
return (
|
|
96
|
+
<ul
|
|
97
|
+
className={classes.orderHistoryTable}
|
|
98
|
+
data-cy="OrderHistoryPage-orderHistoryTable"
|
|
99
|
+
>
|
|
100
|
+
{orderRows}
|
|
101
|
+
</ul>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}, [
|
|
105
|
+
classes.emptyHistoryMessage,
|
|
106
|
+
classes.orderHistoryTable,
|
|
107
|
+
isBackgroundLoading,
|
|
108
|
+
isLoadingWithoutData,
|
|
109
|
+
orderRows,
|
|
110
|
+
orders.length,
|
|
111
|
+
searchText
|
|
112
|
+
]);
|
|
113
|
+
|
|
114
|
+
const resetButtonElement = searchText ? (
|
|
115
|
+
<ResetButton onReset={handleReset} />
|
|
116
|
+
) : null;
|
|
117
|
+
|
|
118
|
+
const submitIcon = (
|
|
119
|
+
<SearchNormal size="18" color="#1b1b1b" className='mt-[4px]' />
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
const pageInfoLabel = pageInfo ? (
|
|
123
|
+
<FormattedMessage
|
|
124
|
+
defaultMessage={'Showing {current} of {total}'}
|
|
125
|
+
id={'orderHistoryPage.pageInfo'}
|
|
126
|
+
values={pageInfo}
|
|
127
|
+
/>
|
|
128
|
+
) : null;
|
|
129
|
+
|
|
130
|
+
const loadMoreButton = loadMoreOrders ? (
|
|
131
|
+
<Button
|
|
132
|
+
classes={{ root_lowPriority: classes.loadMoreButton }}
|
|
133
|
+
disabled={isBackgroundLoading || isLoadingWithoutData}
|
|
134
|
+
onClick={loadMoreOrders}
|
|
135
|
+
priority="low"
|
|
136
|
+
>
|
|
137
|
+
<FormattedMessage
|
|
138
|
+
id={'orderHistoryPage.loadMore'}
|
|
139
|
+
defaultMessage={'Load More'}
|
|
140
|
+
/>
|
|
141
|
+
</Button>
|
|
142
|
+
) : null;
|
|
143
|
+
|
|
144
|
+
const gotoSelectRMA = () => {
|
|
145
|
+
history.push('/return/select')
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
useEffect(() => {
|
|
149
|
+
if (errorMessage) {
|
|
150
|
+
addToast({
|
|
151
|
+
type: 'error',
|
|
152
|
+
icon: errorIcon,
|
|
153
|
+
message: errorMessage,
|
|
154
|
+
dismissable: true,
|
|
155
|
+
timeout: 10000
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}, [addToast, errorMessage]);
|
|
159
|
+
|
|
160
|
+
return (
|
|
161
|
+
<OrderHistoryContextProvider>
|
|
162
|
+
<div className="grid gap-y-md">
|
|
163
|
+
<StoreTitle>{PAGE_TITLE}</StoreTitle>
|
|
164
|
+
<div aria-live="polite" className="text-xl font-medium text-left">
|
|
165
|
+
{PAGE_TITLE}
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div className={classes.filterRow}>
|
|
169
|
+
|
|
170
|
+
<Form className="flex gap-x-1 border border-gray-100 rounded-full px-[15px] w-[calc(100%-120px)] max-w-[450px]" onSubmit={handleSubmit}>
|
|
171
|
+
<TextInput
|
|
172
|
+
field="search"
|
|
173
|
+
id={classes.search}
|
|
174
|
+
placeholder={SEARCH_PLACE_HOLDER}
|
|
175
|
+
classes={{
|
|
176
|
+
input: 'focus-visible_outline-none border-none w-full'
|
|
177
|
+
}}
|
|
178
|
+
/>
|
|
179
|
+
{searchText ? (
|
|
180
|
+
<>
|
|
181
|
+
{resetButtonElement}
|
|
182
|
+
</>
|
|
183
|
+
) : (
|
|
184
|
+
<Button
|
|
185
|
+
className="focus-visible_outline-none"
|
|
186
|
+
disabled={
|
|
187
|
+
isBackgroundLoading || isLoadingWithoutData
|
|
188
|
+
}
|
|
189
|
+
priority={'high'}
|
|
190
|
+
type="submit"
|
|
191
|
+
aria-label="submit"
|
|
192
|
+
>
|
|
193
|
+
{submitIcon}
|
|
194
|
+
</Button>
|
|
195
|
+
)}
|
|
196
|
+
</Form>
|
|
197
|
+
<span className={classes.pageInfo}>{pageInfoLabel}</span>
|
|
198
|
+
</div>
|
|
199
|
+
<div className='flex justify-end w-full'>
|
|
200
|
+
<Button
|
|
201
|
+
priority='high'
|
|
202
|
+
classes={{
|
|
203
|
+
content: "flex justify-center gap-x-2.5 items-center text-[14px] font-medium capitalize"
|
|
204
|
+
}}
|
|
205
|
+
className={cn(
|
|
206
|
+
"bg-blue-600 px-6 py-2 rounded-md text-white border ",
|
|
207
|
+
"border-blue-600 hover_bg-blue-700 hover_border-blue-700 focus-visible_outline-none"
|
|
208
|
+
)}
|
|
209
|
+
onClick={gotoSelectRMA}
|
|
210
|
+
>
|
|
211
|
+
<span className='flex gap-x-3 justify-center'>
|
|
212
|
+
{
|
|
213
|
+
formatMessage({
|
|
214
|
+
id: 'RMA.newReturn',
|
|
215
|
+
defaultMessage: 'New Return'
|
|
216
|
+
})
|
|
217
|
+
}
|
|
218
|
+
</span>
|
|
219
|
+
</Button>
|
|
220
|
+
</div>
|
|
221
|
+
{pageContents}
|
|
222
|
+
{loadMoreButton}
|
|
223
|
+
</div>
|
|
224
|
+
</OrderHistoryContextProvider >
|
|
225
|
+
);
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
export default RMAList;
|
|
229
|
+
|
|
230
|
+
RMAList.propTypes = {
|
|
231
|
+
classes: shape({
|
|
232
|
+
root: string,
|
|
233
|
+
heading: string,
|
|
234
|
+
emptyHistoryMessage: string,
|
|
235
|
+
orderHistoryTable: string,
|
|
236
|
+
search: string,
|
|
237
|
+
searchButton: string,
|
|
238
|
+
submitIcon: string,
|
|
239
|
+
loadMoreButton: string
|
|
240
|
+
})
|
|
241
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
3
|
+
import { StoreTitle } from '@magento/venia-ui/lib/components/Head';
|
|
4
|
+
import RMAList from './components/rmaList';
|
|
5
|
+
|
|
6
|
+
const RMASelect = () => {
|
|
7
|
+
const { formatMessage } = useIntl();
|
|
8
|
+
const PAGE_TITLE = formatMessage({
|
|
9
|
+
id: 'Quotes.pageTitleTextSelectOrder',
|
|
10
|
+
defaultMessage: 'Select Order'
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className='relative grid gap-y-md'>
|
|
15
|
+
<StoreTitle>{PAGE_TITLE}</StoreTitle>
|
|
16
|
+
<div aria-live="polite" className="text-xl font-medium text-left">
|
|
17
|
+
{PAGE_TITLE}
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="block block-order-details-view">
|
|
21
|
+
<div aria-live="polite" className="text-lg font-medium text-left mb-4 block-title">
|
|
22
|
+
{
|
|
23
|
+
formatMessage({
|
|
24
|
+
id: 'rma.selectOrderToReturn',
|
|
25
|
+
defaultMessage: 'Select an order to return'
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<RMAList />
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export default RMASelect;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import AccountLayout from '@riosst100/pwa-marketplace/src/components/AccountLayout';
|
|
3
|
+
import RMASelect from './RMASelect';
|
|
4
|
+
|
|
5
|
+
const RMASelectPage = () => {
|
|
6
|
+
return (
|
|
7
|
+
<AccountLayout>
|
|
8
|
+
<RMASelect />
|
|
9
|
+
</AccountLayout>
|
|
10
|
+
)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default RMASelectPage;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import Image from '@magento/venia-ui/lib/components/Image';
|
|
3
|
+
import { Link } from 'react-router-dom';
|
|
4
|
+
import Select from '@riosst100/pwa-marketplace/src/components/commons/Select';
|
|
5
|
+
import TextField from '@riosst100/pwa-marketplace/src/components/commons/Textfield';
|
|
6
|
+
import Checkbox from '@riosst100/pwa-marketplace/src/components/commons/Checkbox';
|
|
7
|
+
|
|
8
|
+
const productItem = (props) => {
|
|
9
|
+
const { withCheckbox = false } = props
|
|
10
|
+
const urlImage = 'https://pwa-tcgcollective.local:8255/media/catalog/product/s/-/s-l1600_6__1.jpg?auto=webp&format=pjpg&width=495&height=618.75&fit=cover';
|
|
11
|
+
const reasonOptions = [
|
|
12
|
+
{
|
|
13
|
+
value: 0,
|
|
14
|
+
label: 'Out of Service'
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
const [show, setShow] = useState(false);
|
|
19
|
+
|
|
20
|
+
const handleChange = (e) => {
|
|
21
|
+
const checked = e.target.checked;
|
|
22
|
+
setShow(checked)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<>
|
|
27
|
+
<div className='item flex flex-col lg_flex-row justify-between border border-gray-100 rounded-md p-4'>
|
|
28
|
+
<div className='flex gap-4 w-full lg_w-3/5'>
|
|
29
|
+
{withCheckbox ? (
|
|
30
|
+
<Checkbox onChange={(e) => handleChange(e)} />
|
|
31
|
+
) : null}
|
|
32
|
+
|
|
33
|
+
<div className='flex w-full gap-4'>
|
|
34
|
+
<div className='block'>
|
|
35
|
+
<Image
|
|
36
|
+
alt='product image'
|
|
37
|
+
className="relative max-w-[120px]"
|
|
38
|
+
src={urlImage}
|
|
39
|
+
classes={{
|
|
40
|
+
root: ' relative self-center mb-5'
|
|
41
|
+
}}
|
|
42
|
+
/>
|
|
43
|
+
</div>
|
|
44
|
+
<div className='flex flex-col gap-y-1 w-full md_w-6/12'>
|
|
45
|
+
<div className='block'>
|
|
46
|
+
<p className='text-[13px] text-colorDefault flex justify-between'>
|
|
47
|
+
<span className='font-medium block'>
|
|
48
|
+
BANPRESTO DEMON SLAYER: KIMETSU NO YAIBA: GIYU TOMIOKA - FIGURE
|
|
49
|
+
</span>
|
|
50
|
+
</p>
|
|
51
|
+
</div>
|
|
52
|
+
<div className='block'>
|
|
53
|
+
<p className='text-[13px] text-gray-200 flex justify-between'>
|
|
54
|
+
<span className='font-normal block'>
|
|
55
|
+
Qty : 3
|
|
56
|
+
</span>
|
|
57
|
+
</p>
|
|
58
|
+
</div>
|
|
59
|
+
<div className='block'>
|
|
60
|
+
<p className='text-[13px] text-gray-200 flex justify-between'>
|
|
61
|
+
<span className='font-normal block'>
|
|
62
|
+
SGD 16
|
|
63
|
+
</span>
|
|
64
|
+
</p>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div className='block w-full lg_w-2/5'>
|
|
71
|
+
{show ? (
|
|
72
|
+
<>
|
|
73
|
+
<div className='flex flex-col mb-2.5'>
|
|
74
|
+
<p className='mb-1'>
|
|
75
|
+
Qty Return
|
|
76
|
+
</p>
|
|
77
|
+
<TextField />
|
|
78
|
+
</div>
|
|
79
|
+
<div className='flex flex-col mb-2.5'>
|
|
80
|
+
<p className='mb-1'>
|
|
81
|
+
Return Reason
|
|
82
|
+
</p>
|
|
83
|
+
<Select
|
|
84
|
+
options={reasonOptions}
|
|
85
|
+
className='w-full'
|
|
86
|
+
/>
|
|
87
|
+
</div>
|
|
88
|
+
<div className='flex flex-col mb-2.5'>
|
|
89
|
+
<p className='mb-1'>
|
|
90
|
+
Item Condition
|
|
91
|
+
</p>
|
|
92
|
+
<Select
|
|
93
|
+
options={reasonOptions}
|
|
94
|
+
className='w-full'
|
|
95
|
+
/>
|
|
96
|
+
</div>
|
|
97
|
+
<div className='flex flex-col mb-2.5'>
|
|
98
|
+
<p className='mb-1'>
|
|
99
|
+
Resolution
|
|
100
|
+
</p>
|
|
101
|
+
<Select
|
|
102
|
+
options={reasonOptions}
|
|
103
|
+
className='w-full'
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
</>
|
|
107
|
+
) : null}
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export default productItem
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { useIntl } from 'react-intl';
|
|
3
|
+
import { Link } from 'react-router-dom';
|
|
4
|
+
|
|
5
|
+
const rmaList = () => {
|
|
6
|
+
const { formatMessage } = useIntl();
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<>
|
|
10
|
+
<div className='rounded-md border border-gray-100'>
|
|
11
|
+
<div class="hidden md_block table-wrapper order-items w-full">
|
|
12
|
+
<table class="data table table-order-items w-full" id="my-orders-table" summary="Items Ordered">
|
|
13
|
+
<thead>
|
|
14
|
+
<tr className='bg-gray-150'>
|
|
15
|
+
<th class="col text-left py-3 px-2.5 rounded-tl-md">Order</th>
|
|
16
|
+
<th class="col text-left py-3 px-2.5">Date</th>
|
|
17
|
+
<th class="col text-left py-3 px-2.5">Ship To</th>
|
|
18
|
+
<th class="col text-left py-3 px-2.5">Total</th>
|
|
19
|
+
<th class="col text-left py-3 px-2.5">Status</th>
|
|
20
|
+
<th class="col text-left py-3 px-2.5 rounded-tr-md">Action</th>
|
|
21
|
+
</tr>
|
|
22
|
+
</thead>
|
|
23
|
+
<tbody>
|
|
24
|
+
<tr id="order-item-row-1" className='item'>
|
|
25
|
+
<td class="col rma text-left align-top py-3 px-2.5" data-th="Product Name">
|
|
26
|
+
<span className='font-semibold'>
|
|
27
|
+
3000000011
|
|
28
|
+
</span>
|
|
29
|
+
</td>
|
|
30
|
+
<td class="col date align-top py-3 px-2.5" data-th="SKU">
|
|
31
|
+
<span className='font-normal'>
|
|
32
|
+
Jun 29, 2024
|
|
33
|
+
</span>
|
|
34
|
+
</td>
|
|
35
|
+
<td class="col date align-top py-3 px-2.5" data-th="SKU">
|
|
36
|
+
<span className='font-normal'>
|
|
37
|
+
John Doe
|
|
38
|
+
</span>
|
|
39
|
+
</td>
|
|
40
|
+
<td class="col order text-left align-top py-3 px-2.5" data-th="Price">
|
|
41
|
+
<span className='font-normal'>
|
|
42
|
+
SGD 34.69
|
|
43
|
+
</span>
|
|
44
|
+
</td>
|
|
45
|
+
<td class="col qty text-left align-top py-3 px-2.5" data-th="Qty">
|
|
46
|
+
<p className='p-1 bg-[#F1EFF6] rounded-md flex items-center px-5 w-fit'>
|
|
47
|
+
<span className='font-medium block text-blue-700'>
|
|
48
|
+
Pending Approval
|
|
49
|
+
</span>
|
|
50
|
+
</p>
|
|
51
|
+
</td>
|
|
52
|
+
<td class="col subtotal text-left align-top py-3 px-2.5" data-th="Subtotal">
|
|
53
|
+
<Link to={'/return/view/123123'} className="underline">
|
|
54
|
+
View Return
|
|
55
|
+
</Link>
|
|
56
|
+
</td>
|
|
57
|
+
</tr>
|
|
58
|
+
<tr class="seller-order-info border-b border-gray-150 last-of-type_border-0">
|
|
59
|
+
<td data-th="Order #" class="col id"> </td>
|
|
60
|
+
<td data-th="Date" class="col date"> </td>
|
|
61
|
+
<td data-th="Ship To" class="col shipping"> </td>
|
|
62
|
+
<td data-th="Seller: " class="col total"> </td>
|
|
63
|
+
<td class="col status text-left align-top py-3 px-2.5">
|
|
64
|
+
<span className='font-semibold mr-1'>Seller </span>
|
|
65
|
+
<Link to="/seller/test-store" target="_BLANK" title="View The Seller" className="underline">
|
|
66
|
+
Test Store
|
|
67
|
+
</Link>
|
|
68
|
+
</td>
|
|
69
|
+
<td data-th="Actions" class="col actions text-left align-top py-3 px-2.5">
|
|
70
|
+
<Link to="/return/create/123123" class="action return underline">
|
|
71
|
+
<span>Return to Seller</span>
|
|
72
|
+
</Link>
|
|
73
|
+
</td>
|
|
74
|
+
</tr>
|
|
75
|
+
</tbody>
|
|
76
|
+
</table>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
{/* <div class="block">
|
|
80
|
+
<div class="block-title">
|
|
81
|
+
<strong>Select an order to return</strong>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="block-content">
|
|
84
|
+
<div class="order-filter-form-wrappger">
|
|
85
|
+
<form action="https://seller-dev.tcgcollective.co/returns/rma/sellect/" id="form-search-order" method="GET">
|
|
86
|
+
<table class="data table table-order-finder-items" id="my-orders-finder-table">
|
|
87
|
+
<thead>
|
|
88
|
+
<tr>
|
|
89
|
+
<th scope="col" class="col order-id">Order ID</th>
|
|
90
|
+
<th scope="col" class="col product-name">Product Name</th>
|
|
91
|
+
<th scope="col" class="col order-date">Order Date</th>
|
|
92
|
+
<th scope="col" class="col sort-by">Sort</th>
|
|
93
|
+
<th scope="col" class="col actions"> </th>
|
|
94
|
+
</tr>
|
|
95
|
+
</thead>
|
|
96
|
+
<tbody>
|
|
97
|
+
<tr>
|
|
98
|
+
<td data-th="Order ID" class="col order-id">
|
|
99
|
+
<input type="text" class="input-text" name="id" placeholder="Search by Order ID" value="" />
|
|
100
|
+
</td>
|
|
101
|
+
<td data-th="Product Name" class="col product-name">
|
|
102
|
+
<input type="text" class="input-text" name="product" placeholder="Search by Product Name" value="" />
|
|
103
|
+
</td>
|
|
104
|
+
<td data-th="Order Date" class="col order-date">
|
|
105
|
+
<input type="text" class="input-text hasDatepicker filterHasDatePicker _has-datepicker" id="filter-order-date-from" name="date_from" placeholder="From Date" value="" autocomplete="on" />
|
|
106
|
+
<input type="text" class="input-text hasDatepicker filterHasDatePicker _has-datepicker" id="filter-order-date-to" name="date_to" placeholder="To Date" value="" autocomplete="on" />
|
|
107
|
+
</td>
|
|
108
|
+
<td data-th="Sort" class="col sort">
|
|
109
|
+
<select name="sort" class="input-select">
|
|
110
|
+
<option value="">Default</option>
|
|
111
|
+
<option value="entity_id:ASC">ID ASC</option>
|
|
112
|
+
<option value="entity_id:DESC">ID DESC</option>
|
|
113
|
+
<option value="created_at:ASC">Order Date ASC</option>
|
|
114
|
+
<option value="created_at:DESC">Order Date DESC</option>
|
|
115
|
+
<option value="grand_total:ASC">Order Total ASC</option>
|
|
116
|
+
<option value="grand_total:DESC">Order Total DESC</option>
|
|
117
|
+
</select>
|
|
118
|
+
</td>
|
|
119
|
+
<td data-th="Actions" class="col actions">
|
|
120
|
+
<input type="submit" class="action save primary" name="submit" value="Submit" />
|
|
121
|
+
</td>
|
|
122
|
+
</tr>
|
|
123
|
+
</tbody>
|
|
124
|
+
</table>
|
|
125
|
+
</form>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="table-wrapper orders-history">
|
|
128
|
+
<table class="data table table-order-items history w-full" id="my-orders-table">
|
|
129
|
+
<thead>
|
|
130
|
+
<tr>
|
|
131
|
+
<th scope="col" class="col id">Order #</th>
|
|
132
|
+
<th scope="col" class="col date">Date</th>
|
|
133
|
+
<th scope="col" class="col shipping">Ship To</th>
|
|
134
|
+
<th scope="col" class="col total">Order Total</th>
|
|
135
|
+
<th scope="col" class="col status">Status</th>
|
|
136
|
+
<th scope="col" class="col actions">Action</th>
|
|
137
|
+
</tr>
|
|
138
|
+
</thead>
|
|
139
|
+
<tbody>
|
|
140
|
+
<tr>
|
|
141
|
+
<td data-th="Order #" class="col id">#000000029</td>
|
|
142
|
+
<td data-th="Date" class="col date">7/22/24</td>
|
|
143
|
+
<td data-th="Ship To" class="col shipping">danis alifian 16</td>
|
|
144
|
+
<td data-th="Order Total" class="col total"><span class="price">$34.69</span></td>
|
|
145
|
+
<td data-th="Status" class="col status">Complete</td>
|
|
146
|
+
<td data-th="Actions" class="col actions">
|
|
147
|
+
<a href="https://seller-dev.tcgcollective.co/sales/order/view/order_id/41/" class="action view">
|
|
148
|
+
<span>View Order</span>
|
|
149
|
+
</a>
|
|
150
|
+
</td>
|
|
151
|
+
</tr>
|
|
152
|
+
<tr class="seller-order-info">
|
|
153
|
+
<td data-th="Order #" class="col id"> </td>
|
|
154
|
+
<td data-th="Date" class="col date"> </td>
|
|
155
|
+
<td data-th="Ship To" class="col shipping"> </td>
|
|
156
|
+
<td data-th="Seller: " class="col total"><strong><i>Seller: </i></strong></td>
|
|
157
|
+
<td class="col status"><a href="https://dev.tcgcollective.co/seller/test-store" target="_BLANK" title="View The Seller">Test Store</a></td>
|
|
158
|
+
<td data-th="Actions" class="col actions">
|
|
159
|
+
<a href="https://seller-dev.tcgcollective.co/returns/rma/new/order_id/41/seller_id/6/" class="action return">
|
|
160
|
+
<span>Return to Seller</span>
|
|
161
|
+
</a>
|
|
162
|
+
</td>
|
|
163
|
+
</tr>
|
|
164
|
+
<tr>
|
|
165
|
+
<td data-th="Order #" class="col id">#3000000011</td>
|
|
166
|
+
<td data-th="Date" class="col date">5/25/24</td>
|
|
167
|
+
<td data-th="Ship To" class="col shipping">danis alifian 16</td>
|
|
168
|
+
<td data-th="Order Total" class="col total"><span class="price">SGD 20.76</span></td>
|
|
169
|
+
<td data-th="Status" class="col status">Complete</td>
|
|
170
|
+
<td data-th="Actions" class="col actions">
|
|
171
|
+
<a href="https://seller-dev.tcgcollective.co/sales/order/view/order_id/40/" class="action view">
|
|
172
|
+
<span>View Order</span>
|
|
173
|
+
</a>
|
|
174
|
+
</td>
|
|
175
|
+
</tr>
|
|
176
|
+
<tr class="seller-order-info">
|
|
177
|
+
<td data-th="Order #" class="col id"> </td>
|
|
178
|
+
<td data-th="Date" class="col date"> </td>
|
|
179
|
+
<td data-th="Ship To" class="col shipping"> </td>
|
|
180
|
+
<td data-th="Seller: " class="col total"><strong><i>Seller: </i></strong></td>
|
|
181
|
+
<td class="col status"><a href="https://dev.tcgcollective.co/seller/test-store" target="_BLANK" title="View The Seller">Test Store</a></td>
|
|
182
|
+
<td data-th="Actions" class="col actions">
|
|
183
|
+
</td>
|
|
184
|
+
</tr>
|
|
185
|
+
</tbody>
|
|
186
|
+
</table>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div> */}
|
|
190
|
+
|
|
191
|
+
<div className='md_hidden'>
|
|
192
|
+
<div class="orderDetails-orderTotalContainer-6or m-0 max-w-none min-w-none lg_m-auto lg_max-w-[25rem] lg_min-w-[22rem]">
|
|
193
|
+
<div className='item flex flex-col gap-2 p-4 odd_border border-gray-150 last-of-type_border-0'>
|
|
194
|
+
<div className='flex gap-3'>
|
|
195
|
+
<div className='min-w-[60px] text-[14px] font-semibold'>
|
|
196
|
+
RMA
|
|
197
|
+
</div>
|
|
198
|
+
<div className='min-w-[60px] text-[14px]'>
|
|
199
|
+
3000000011-2
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
<div className='flex gap-3'>
|
|
203
|
+
<div className='min-w-[60px] text-[14px] font-semibold'>
|
|
204
|
+
Date
|
|
205
|
+
</div>
|
|
206
|
+
<div className='min-w-[60px] text-[14px]'>
|
|
207
|
+
Jun 29, 2024
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
<div className='flex gap-3'>
|
|
211
|
+
<div className='min-w-[60px] text-[14px] font-semibold'>
|
|
212
|
+
Order
|
|
213
|
+
</div>
|
|
214
|
+
<div className='min-w-[60px] text-[14px]'>
|
|
215
|
+
<Link to={'/order/123123'} className="underline">
|
|
216
|
+
3000000011
|
|
217
|
+
</Link>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
<div className='flex gap-3'>
|
|
221
|
+
<div className='min-w-[60px] text-[14px] font-semibold self-center'>
|
|
222
|
+
Status
|
|
223
|
+
</div>
|
|
224
|
+
<div className='min-w-[60px] text-[14px]'>
|
|
225
|
+
<p className='p-1 bg-[#F1EFF6] rounded-md flex items-center px-5 w-fit'>
|
|
226
|
+
<span className='font-medium block text-blue-700'>
|
|
227
|
+
Pending Approval
|
|
228
|
+
</span>
|
|
229
|
+
</p>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
<div className='flex gap-3'>
|
|
233
|
+
<div className='min-w-[60px] text-[14px] font-semibold self-center'>
|
|
234
|
+
Action
|
|
235
|
+
</div>
|
|
236
|
+
<div className='min-w-[60px] text-[14px]'>
|
|
237
|
+
<Link to={'/order/123123'} className="underline">
|
|
238
|
+
View Return
|
|
239
|
+
</Link>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
</>
|
|
247
|
+
)
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export default rmaList
|