chore: orders uffff
This commit is contained in:
parent
1f467c20ed
commit
9c19dc8ee1
2 changed files with 37 additions and 7 deletions
|
|
@ -41,7 +41,7 @@
|
||||||
<strong>Email:</strong>
|
<strong>Email:</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-12 col-md-10">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<strong>Message:</strong>
|
<strong>Message:</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-12 col-md-10">
|
<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>
|
label="Message to Merchant (optional)"></q-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -650,6 +650,7 @@ const market = async () => {
|
||||||
event.sig = await NostrTools.signEvent(event, this.account.privkey)
|
event.sig = await NostrTools.signEvent(event, this.account.privkey)
|
||||||
|
|
||||||
this.sendOrderEvent(event)
|
this.sendOrderEvent(event)
|
||||||
|
this.persistOrderUpdate(this.checkoutStall.pubkey, order)
|
||||||
},
|
},
|
||||||
|
|
||||||
sendOrderEvent(event) {
|
sendOrderEvent(event) {
|
||||||
|
|
@ -715,8 +716,10 @@ const market = async () => {
|
||||||
const jsonData = JSON.parse(plainText)
|
const jsonData = JSON.parse(plainText)
|
||||||
if (jsonData.type === 1) {
|
if (jsonData.type === 1) {
|
||||||
this.handlePaymentRequest(jsonData)
|
this.handlePaymentRequest(jsonData)
|
||||||
|
this.persistOrderUpdate(event.pubkey, jsonData)
|
||||||
} else if (jsonData.type === 2) {
|
} else if (jsonData.type === 2) {
|
||||||
this.handleOrderStatusUpdate(jsonData)
|
this.handleOrderStatusUpdate(jsonData)
|
||||||
|
this.persistOrderUpdate(event.pubkey, jsonData)
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn('Unable to handle incomming DM', e)
|
console.warn('Unable to handle incomming DM', e)
|
||||||
|
|
@ -724,13 +727,10 @@ const market = async () => {
|
||||||
},
|
},
|
||||||
|
|
||||||
handlePaymentRequest(json) {
|
handlePaymentRequest(json) {
|
||||||
console.log('### handlePaymentRequest', json, this.activeOrderId)
|
|
||||||
|
|
||||||
if (!json.payment_options?.length) {
|
if (!json.payment_options?.length) {
|
||||||
this.qrCodeDialog.data.message = json.message || 'Unexpected error'
|
this.qrCodeDialog.data.message = json.message || 'Unexpected error'
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
console.log('### ')
|
|
||||||
if (json.id && (json.id !== this.activeOrderId)) {
|
if (json.id && (json.id !== this.activeOrderId)) {
|
||||||
// not for active order, store somewehre else
|
// not for active order, store somewehre else
|
||||||
return
|
return
|
||||||
|
|
@ -751,15 +751,19 @@ const market = async () => {
|
||||||
this.qrCodeDialog.dismissMsg()
|
this.qrCodeDialog.dismissMsg()
|
||||||
this.qrCodeDialog.show = false
|
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({
|
this.$q.notify({
|
||||||
type: 'positive',
|
type: 'positive',
|
||||||
message: message
|
message: message,
|
||||||
|
caption: jsonData.message || ''
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
persistDMEvent(event) {
|
persistDMEvent(event) {
|
||||||
const dms = this.$q.localStorage.getItem(`nostrmarket.dm.${event.pubkey}`) || { events: [], lastCreatedAt: 0 }
|
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.push(event)
|
||||||
dms.events.sort((a, b) => a - b)
|
dms.events.sort((a, b) => a - b)
|
||||||
dms.lastCreatedAt = dms.events[dms.events.length - 1].created_at
|
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}`)
|
const dms = this.$q.localStorage.getItem(`nostrmarket.dm.${pubkey}`)
|
||||||
if (!dms) return 0
|
if (!dms) return 0
|
||||||
return dms.lastCreatedAt
|
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue