@riosst100/pwa-marketplace 3.2.8 → 3.2.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.
@@ -0,0 +1,299 @@
1
+ import { gql } from '@apollo/client';
2
+
3
+ export const GET_STORE_CONFIG_DATA = gql`
4
+ query getStoreConfigData {
5
+ # eslint-disable-next-line @graphql-eslint/require-id-when-available
6
+ storeConfig {
7
+ store_code
8
+ product_url_suffix
9
+ }
10
+ }
11
+ `;
12
+
13
+ export const GET_SELLER_DETAIL_QUERY = gql`
14
+ query getSellerDetailForSellerPage($urlKey: String!, $getOtherInfo: Boolean, $getProducts: Boolean) {
15
+ sellerByUrl(seller_url: $urlKey, get_other_info: $getOtherInfo, get_products: $getProducts) {
16
+ seller_id
17
+ contact_number
18
+ shop_title
19
+ company
20
+ term_and_conditions
21
+ website_url
22
+ ship_to
23
+ ship_to_country
24
+ seller_rates {
25
+ total_count
26
+ page_info {
27
+ current_page
28
+ page_size
29
+ total_pages
30
+ }
31
+ items {
32
+ rating_id
33
+ seller_id
34
+ customer_id
35
+ rate1
36
+ rate2
37
+ rate3
38
+ rate4
39
+ rate5
40
+ rating
41
+ email
42
+ title
43
+ status
44
+ detail
45
+ nickname
46
+ created_at
47
+ verified_buyer
48
+ is_recommended
49
+ is_hidden
50
+ answer
51
+ admin_note
52
+ like_about
53
+ not_like_about
54
+ guest_email
55
+ plus_review
56
+ minus_review
57
+ report_abuse
58
+ country
59
+ }
60
+ }
61
+ products {
62
+ total_count
63
+ page_info {
64
+ current_page
65
+ page_size
66
+ total_pages
67
+ }
68
+ items {
69
+ name
70
+ sku
71
+ }
72
+ }
73
+ operating_hours {
74
+ day
75
+ status
76
+ time {
77
+ opening_time
78
+ closing_time
79
+ }
80
+ }
81
+ store_locators {
82
+ name
83
+ country
84
+ region
85
+ address_line_1
86
+ address_line_2
87
+ city
88
+ postcode
89
+ operating_hours {
90
+ day
91
+ status
92
+ time {
93
+ opening_time
94
+ closing_time
95
+ }
96
+ }
97
+ }
98
+ description
99
+ country
100
+ image
101
+ thumbnail
102
+ city
103
+ region
104
+ group
105
+ group_id
106
+ url
107
+ email
108
+ name
109
+ sale
110
+ creation_time
111
+ page_layout
112
+ status
113
+ position
114
+ twitter_id
115
+ facebook_id
116
+ gplus_id
117
+ youtube_id
118
+ vimeo_id
119
+ instagram_id
120
+ pinterest_id
121
+ linkedin_id
122
+ tw_active
123
+ fb_active
124
+ gplus_active
125
+ vimeo_active
126
+ instagram_active
127
+ pinterest_active
128
+ linkedin_active
129
+ banner_pic
130
+ shop_url
131
+ url_key
132
+ logo_pic
133
+ verify_status
134
+ product_count
135
+ telephone
136
+ creation_time
137
+ update_time
138
+ country_id
139
+ total_sold
140
+ operating_time
141
+ order_processing_time
142
+ shipping_partners
143
+ offers
144
+ benefits
145
+ product_shipping_info
146
+ prepare_time
147
+ response_ratio
148
+ response_time
149
+ store_id
150
+ products {
151
+ total_count
152
+ page_info {
153
+ page_size
154
+ current_page
155
+ }
156
+ items {
157
+ id
158
+ name
159
+ }
160
+ }
161
+ }
162
+ }
163
+ `;
164
+
165
+ export const GET_COUPON_CODE_QUERY = gql`
166
+ query getSellerCoupons(
167
+ $sellerUrl: String!
168
+ $pageSize: Int
169
+ $currentPage: Int
170
+ $filters: CouponCodeFilterInput
171
+ ) {
172
+ sellerCoupons(
173
+ sellerUrl: $sellerUrl
174
+ pageSize: $pageSize
175
+ currentPage: $currentPage
176
+ filters: $filters
177
+ ) {
178
+ items {
179
+ code
180
+ coupon_id
181
+ couponcode_id
182
+ created_at
183
+ description
184
+ discount_amount
185
+ expiration_date
186
+ from_date
187
+ is_active
188
+ name
189
+ seller_id
190
+ times_used
191
+ to_date
192
+ type
193
+ uses_per_customer
194
+ }
195
+ page_info {
196
+ current_page
197
+ page_size
198
+ total_pages
199
+ }
200
+ total_count
201
+ }
202
+ }
203
+ `;
204
+
205
+ export const GET_CUSTOMER_SELLER_MESSAGES = gql`
206
+ query GetCustomerSellerMessages(
207
+ $pageSize: Int!
208
+ $currentPage: Int!
209
+ $filter: SellerMessageFilterInput
210
+ $sort: SellerMessageSortInput
211
+ ) {
212
+ customer {
213
+ sellerMessages(
214
+ pageSize: $pageSize
215
+ currentPage: $currentPage
216
+ filter: $filter
217
+ sort: $sort
218
+ ) {
219
+ total_count
220
+ page_info {
221
+ current_page
222
+ page_size
223
+ total_pages
224
+ }
225
+ items {
226
+ message_id
227
+ subject
228
+ description
229
+ sender_email
230
+ sender_name
231
+ created_at
232
+ status
233
+ is_read
234
+ sender_id
235
+ owner_id
236
+ receiver_id
237
+ seller_send
238
+ details(pageSize: 500, currentPage: 1) {
239
+ total_count
240
+ items {
241
+ content
242
+ sender_name
243
+ sender_email
244
+ receiver_name
245
+ is_read
246
+ created_at
247
+ }
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ `;
254
+
255
+ export const CUSTOMER_SEND_MESSAGE_MUTATION = gql`
256
+ mutation CustomerSendMessage($input: CustomerMessageInput!) {
257
+ customerSendMessage(input: $input) {
258
+ message_id
259
+ subject
260
+ description
261
+ sender_name
262
+ sender_email
263
+ created_at
264
+ status
265
+ }
266
+ }
267
+ `;
268
+
269
+ export const CUSTOMER_REPLY_MESSAGE_MUTATION = gql`
270
+ mutation CUSTOMER_REPLY_MESSAGE_MUTATION($input: ReplyMessageInput!) {
271
+ customerReplyMessage(input: $input) {
272
+ content
273
+ sender_name
274
+ sender_email
275
+ receiver_name
276
+ is_read
277
+ created_at
278
+ }
279
+ }
280
+ `;
281
+
282
+ export const CUSTOMER_DELETE_MESSAGE_MUTATION = gql`
283
+ mutation CustomerDeleteMessage($id: Int!) {
284
+ customerDeleteMessage(message_id: $id) {
285
+ message
286
+ code
287
+ }
288
+ }
289
+ `;
290
+
291
+ export default {
292
+ getStoreConfigData: GET_STORE_CONFIG_DATA,
293
+ getSellerDetailQuery: GET_SELLER_DETAIL_QUERY,
294
+ getCouponCodeQuery: GET_COUPON_CODE_QUERY,
295
+ getCustomerSellerMessages: GET_CUSTOMER_SELLER_MESSAGES,
296
+ customerSendMessageMutation: CUSTOMER_SEND_MESSAGE_MUTATION,
297
+ customerReplyMessageMutation: CUSTOMER_REPLY_MESSAGE_MUTATION,
298
+ customerDeleteMessageMutation: CUSTOMER_DELETE_MESSAGE_MUTATION,
299
+ };
@@ -0,0 +1,87 @@
1
+ import { useCallback, useState, useEffect, useMemo } from 'react';
2
+ import { useHistory, useLocation } from 'react-router-dom';
3
+ import mergeOperations from '@magento/peregrine/lib/util/shallowMerge';
4
+ import DEFAULT_OPERATIONS from './messagesPage.gql';
5
+ import { useQuery, useMutation } from '@apollo/client';
6
+ import { useToasts } from '@magento/peregrine/lib';
7
+ import { FormattedMessage, useIntl } from 'react-intl';
8
+
9
+ export const useMessagesPage = props => {
10
+ const operations = mergeOperations(DEFAULT_OPERATIONS, null);
11
+
12
+ const [, { addToast }] = useToasts();
13
+ const { formatMessage } = useIntl();
14
+
15
+ const {
16
+ getCustomerSellerMessages,
17
+ customerSendMessageMutation,
18
+ customerReplyMessageMutation,
19
+ customerDeleteMessageMutation
20
+ } = operations;
21
+
22
+ const [messageListVars] = useState({
23
+ pageSize: 500,
24
+ currentPage: 1,
25
+ filter: undefined,
26
+ sort: undefined
27
+ });
28
+
29
+ const {
30
+ data: messagesData,
31
+ loading: messagesLoading,
32
+ error: messagesError,
33
+ refetch: refetchMessages
34
+ } = useQuery(getCustomerSellerMessages, {
35
+ fetchPolicy: 'network-only',
36
+ nextFetchPolicy: 'network-only',
37
+ variables: messageListVars,
38
+ pollInterval: 10000,
39
+ notifyOnNetworkStatusChange: true
40
+ });
41
+
42
+ const [sendMessage] = useMutation(customerSendMessageMutation);
43
+ const [replyMessage] = useMutation(customerReplyMessageMutation);
44
+ const [deleteMessage] = useMutation(customerDeleteMessageMutation);
45
+
46
+ const handleSendMessage = async ({ subject, content, seller_url }) => {
47
+ const input = { subject, content, seller_url };
48
+ const result = await sendMessage({ variables: { input }, refetchQueries: [{ query: getCustomerSellerMessages, variables: messageListVars }] });
49
+ addToast({
50
+ type: 'success',
51
+ message: formatMessage({ id: 'messages.messageSent', defaultMessage: 'Message sent successfully.' }),
52
+ timeout: 3000
53
+ });
54
+ await refetchMessages({ fetchPolicy: 'network-only' });
55
+ return result?.data?.customerSendMessage;
56
+ };
57
+
58
+ const handleReplyMessage = async ({ message_id, content }) => {
59
+ const input = { message_id, content };
60
+ const result = await replyMessage({ variables: { input }, refetchQueries: [{ query: getCustomerSellerMessages, variables: messageListVars }] });
61
+ addToast({
62
+ type: 'success',
63
+ message: formatMessage({ id: 'messages.replySent', defaultMessage: 'Reply sent successfully.' }),
64
+ timeout: 3000
65
+ });
66
+ await refetchMessages({ fetchPolicy: 'network-only' });
67
+ return result?.data?.customerReplyMessage;
68
+ };
69
+
70
+ const handleDeleteMessage = async ({ id }) => {
71
+ await deleteMessage({ variables: { id }, refetchQueries: [{ query: getCustomerSellerMessages, variables: messageListVars }] });
72
+ addToast({
73
+ type: 'success',
74
+ message: formatMessage({ id: 'messages.messageDeleted', defaultMessage: 'Message deleted successfully.' }),
75
+ timeout: 3000
76
+ });
77
+ await refetchMessages({ fetchPolicy: 'network-only' });
78
+ };
79
+
80
+ return {
81
+ messagesData,
82
+ messagesLoading,
83
+ handleReplyMessage,
84
+ handleDeleteMessage,
85
+ handleSendMessage
86
+ };
87
+ };
@@ -70,6 +70,11 @@ export const GET_QUICK_RFQ_LIST_QUERY = gql`
70
70
  export const GET_QUICK_RFQ_DETAIL_QUERY = gql`
71
71
  query getQuickRfqDetail($quickrfqId: Int!) {
72
72
  quickrfqDetail(quickrfq_id: $quickrfqId) {
73
+ admin_price {
74
+ currency
75
+ value
76
+ }
77
+ admin_quantity
73
78
  attachment
74
79
  attachments {
75
80
  created_at
@@ -84,8 +89,11 @@ export const GET_QUICK_RFQ_DETAIL_QUERY = gql`
84
89
  cart_id
85
90
  comment
86
91
  contact_name
92
+ coupon_code
87
93
  create_date
94
+ date_need_quote
88
95
  email
96
+ expiry
89
97
  info_buy_request
90
98
  messages {
91
99
  created_at
@@ -103,12 +111,17 @@ export const GET_QUICK_RFQ_DETAIL_QUERY = gql`
103
111
  }
104
112
  product_id
105
113
  product_name
114
+ product_sku
106
115
  quantity
107
116
  quickrfq_id
117
+ seller_id
118
+ seller_name
108
119
  status
109
120
  store_currency_code
110
121
  store_id
111
122
  update_date
123
+ user_id
124
+ user_name
112
125
  website_id
113
126
  }
114
127
  }
@@ -1,7 +1,7 @@
1
1
  import { useQuery, useMutation } from '@apollo/client';
2
2
  import { useEffect, useMemo, useCallback, useState } from 'react';
3
3
  import { useToasts } from '@magento/peregrine/lib/Toasts/useToasts';
4
- import { useLocation } from 'react-router-dom';
4
+ import { useLocation, useHistory } from 'react-router-dom';
5
5
  import { useAppContext } from '@magento/peregrine/lib/context/app';
6
6
  import { useIntl } from 'react-intl';
7
7
 
@@ -13,6 +13,8 @@ export const useSeller = props => {
13
13
 
14
14
  const { formatMessage } = useIntl();
15
15
 
16
+ const history = useHistory();
17
+
16
18
  const operations = mergeOperations(DEFAULT_OPERATIONS, props.operations);
17
19
  const {
18
20
  getStoreConfigData,
@@ -152,7 +154,7 @@ export const useSeller = props => {
152
154
  }),
153
155
  timeout: 3000
154
156
  });
155
- await refetchMessages({ fetchPolicy: 'network-only' });
157
+ history.push('/messages');
156
158
  return result?.data?.customerSendMessage;
157
159
  }, [sendMessage, refetchMessages, addToast, formatMessage]);
158
160