chore: orders uffff

This commit is contained in:
Vlad Stan 2023-07-10 18:04:48 +03:00
parent 1f467c20ed
commit 9c19dc8ee1
2 changed files with 37 additions and 7 deletions

View file

@ -41,7 +41,7 @@
<strong>Email:</strong>
</div>
<div class="col-xs-12 col-sm-12 col-md-10">
<q-input v-model.trim="contactData.address" outlined label="Email (optional)"></q-input>
<q-input v-model.trim="contactData.email" outlined label="Email (optional)"></q-input>
</div>
</div>
@ -50,7 +50,7 @@
<strong>Message:</strong>
</div>
<div class="col-xs-12 col-sm-12 col-md-10">
<q-input v-model.trim="contactData.address" outlined type="textarea" rows="3"
<q-input v-model.trim="contactData.message" outlined type="textarea" rows="3"
label="Message to Merchant (optional)"></q-input>
</div>
</div>

View file

@ -650,6 +650,7 @@ const market = async () => {
event.sig = await NostrTools.signEvent(event, this.account.privkey)
this.sendOrderEvent(event)
this.persistOrderUpdate(this.checkoutStall.pubkey, order)
},
sendOrderEvent(event) {
@ -715,8 +716,10 @@ const market = async () => {
const jsonData = JSON.parse(plainText)
if (jsonData.type === 1) {
this.handlePaymentRequest(jsonData)
this.persistOrderUpdate(event.pubkey, jsonData)
} else if (jsonData.type === 2) {
this.handleOrderStatusUpdate(jsonData)
this.persistOrderUpdate(event.pubkey, jsonData)
}
} catch (e) {
console.warn('Unable to handle incomming DM', e)
@ -724,13 +727,10 @@ const market = async () => {
},
handlePaymentRequest(json) {
console.log('### handlePaymentRequest', json, this.activeOrderId)
if (!json.payment_options?.length) {
this.qrCodeDialog.data.message = json.message || 'Unexpected error'
return
}
console.log('### ')
if (json.id && (json.id !== this.activeOrderId)) {
// not for active order, store somewehre else
return
@ -751,15 +751,19 @@ const market = async () => {
this.qrCodeDialog.dismissMsg()
this.qrCodeDialog.show = false
}
const message = jsonData.shipped ? 'Order shipped' : jsonData.paid ? 'Order paid' : 'Order updated'
const message = jsonData.shipped ? 'Order shipped' : jsonData.paid ? 'Order paid' : 'Order notification'
this.$q.notify({
type: 'positive',
message: message
message: message,
caption: jsonData.message || ''
})
},
persistDMEvent(event) {
const dms = this.$q.localStorage.getItem(`nostrmarket.dm.${event.pubkey}`) || { events: [], lastCreatedAt: 0 }
const existingEvent = dms.events.find(e => e.id === event.id)
if (existingEvent) return
dms.events.push(event)
dms.events.sort((a, b) => a - b)
dms.lastCreatedAt = dms.events[dms.events.length - 1].created_at
@ -771,6 +775,32 @@ const market = async () => {
const dms = this.$q.localStorage.getItem(`nostrmarket.dm.${pubkey}`)
if (!dms) return 0
return dms.lastCreatedAt
},
persistOrderUpdate(pubkey, orderUpdate) {
console.log('### persistOrderUpdate', pubkey, orderUpdate)
const orders = this.$q.localStorage.getItem(`nostrmarket.orders.${pubkey}`) || []
let order = orders.find(o => o.id === orderUpdate.id)
if (!order) {
orders.push({ ...orderUpdate, messages: orderUpdate.message ? [orderUpdate.message] : [] })
this.$q.localStorage.set(`nostrmarket.orders.${pubkey}`, orders)
return
}
if (orderUpdate.message) {
order.messages.push(orderUpdate.message)
}
if (orderUpdate.type === 0 || orderUpdate.type === 1) {
order = { ...orderUpdate, ...order }
} else if (orderUpdate.type === 2) {
order.paid = orderUpdate.paid
order.shipped = orderUpdate.shipped
}
orders.filter(o => o.id !== order.id).unshift(order)
this.$q.localStorage.set(`nostrmarket.orders.${pubkey}`, orders)
}
}