feat: UI improvements
This commit is contained in:
parent
84807367c3
commit
e90d0161eb
4 changed files with 35 additions and 18 deletions
|
|
@ -25,14 +25,24 @@
|
||||||
|
|
||||||
<q-separator />
|
<q-separator />
|
||||||
<q-card-section v-if="orderConfirmed">
|
<q-card-section v-if="orderConfirmed">
|
||||||
|
<div class="row q-mt-md q-ml-md q-pr-md">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-2 q-mt-md">
|
||||||
|
<strong>Message:</strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-10">
|
||||||
|
<q-input v-model.trim="contactData.message" outlined type="textarea" rows="3"
|
||||||
|
label="Message (optional)" hint="Message merchant about additional order needs"></q-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row q-mt-md q-ml-md q-pr-md">
|
<div class="row q-mt-md q-ml-md q-pr-md">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-2 q-mt-md">
|
<div class="col-xs-12 col-sm-12 col-md-2 q-mt-md">
|
||||||
<strong>Address:</strong>
|
<strong>Address:</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
|
<q-input v-model.trim="contactData.address" outlined type="textarea" rows="3"
|
||||||
label="Address (required for physical shipping)"></q-input>
|
label="Address (optional)" hint="Must provide for physical shipping">
|
||||||
|
</q-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -48,13 +58,15 @@
|
||||||
|
|
||||||
<div class="row q-mt-md q-ml-md q-pr-md">
|
<div class="row q-mt-md q-ml-md q-pr-md">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-2 q-mt-md">
|
<div class="col-xs-12 col-sm-12 col-md-2 q-mt-md">
|
||||||
<strong>Message:</strong>
|
<strong>Npub:</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.message" outlined type="textarea" rows="3"
|
<q-input v-model.trim="contactData.npub" outlined label="Alternative Npub (optional)"
|
||||||
label="Message to Merchant (optional)"></q-input>
|
hint="Use a different Npub to communicate with the merchant"></q-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
|
|
||||||
<q-card-section v-else horizontal>
|
<q-card-section v-else horizontal>
|
||||||
|
|
@ -126,6 +138,9 @@
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
<q-btn @click="goToShoppingCart" flat color="gray">
|
||||||
|
Back
|
||||||
|
</q-btn>
|
||||||
<q-btn @click="orderConfirmed = true" flat color="primary">
|
<q-btn @click="orderConfirmed = true" flat color="primary">
|
||||||
Confirm
|
Confirm
|
||||||
</q-btn>
|
</q-btn>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ async function shoppingCartCheckout(path) {
|
||||||
shippingZone: null,
|
shippingZone: null,
|
||||||
contactData: {
|
contactData: {
|
||||||
email: null,
|
email: null,
|
||||||
|
npub: null,
|
||||||
address: null,
|
address: null,
|
||||||
message: null
|
message: null
|
||||||
},
|
},
|
||||||
|
|
@ -61,8 +62,6 @@ async function shoppingCartCheckout(path) {
|
||||||
},
|
},
|
||||||
|
|
||||||
async placeOrder() {
|
async placeOrder() {
|
||||||
console.log('### placeOrder cart', this.cart)
|
|
||||||
console.log('### placeOrder stal', this.stall)
|
|
||||||
if (!this.shippingZone) {
|
if (!this.shippingZone) {
|
||||||
this.$q.notify({
|
this.$q.notify({
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
|
|
@ -79,7 +78,7 @@ async function shoppingCartCheckout(path) {
|
||||||
address: this.contactData.address,
|
address: this.contactData.address,
|
||||||
message: this.contactData.message,
|
message: this.contactData.message,
|
||||||
contact: {
|
contact: {
|
||||||
nostr: this.customerPubkey,
|
nostr: this.contactData.npub,
|
||||||
email: this.contactData.email
|
email: this.contactData.email
|
||||||
},
|
},
|
||||||
items: Array.from(this.cart.products, p => {
|
items: Array.from(this.cart.products, p => {
|
||||||
|
|
@ -103,12 +102,12 @@ async function shoppingCartCheckout(path) {
|
||||||
|
|
||||||
this.$emit('place-order', { event, order })
|
this.$emit('place-order', { event, order })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
goToShoppingCart: function(){
|
||||||
|
this.$emit('change-page', 'shopping-cart-list')
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
console.log('### shoppingCartCheckout', this.stall)
|
|
||||||
if (this.stall.shipping?.length === 1) {
|
if (this.stall.shipping?.length === 1) {
|
||||||
this.shippingZone = this.stall.shipping[0]
|
this.shippingZone = this.stall.shipping[0]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,8 @@ const market = async () => {
|
||||||
|
|
||||||
qrCodeDialog: {
|
qrCodeDialog: {
|
||||||
data: {
|
data: {
|
||||||
payment_request: null
|
payment_request: null,
|
||||||
|
message: null,
|
||||||
},
|
},
|
||||||
dismissMsg: null,
|
dismissMsg: null,
|
||||||
show: false
|
show: false
|
||||||
|
|
@ -706,7 +707,8 @@ const market = async () => {
|
||||||
})
|
})
|
||||||
this.qrCodeDialog = {
|
this.qrCodeDialog = {
|
||||||
data: {
|
data: {
|
||||||
payment_request: null
|
payment_request: null,
|
||||||
|
message: null,
|
||||||
},
|
},
|
||||||
dismissMsg: null,
|
dismissMsg: null,
|
||||||
show: true
|
show: true
|
||||||
|
|
@ -781,13 +783,14 @@ const market = async () => {
|
||||||
handlePaymentRequest(json) {
|
handlePaymentRequest(json) {
|
||||||
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'
|
||||||
|
console.log('### qrCodeDialog.data.message', this.qrCodeDialog.data.message)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
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
|
||||||
}
|
}
|
||||||
let paymentRequest = json.payment_options.find(o => o.type == 'ln')
|
const paymentRequest = json.payment_options.find(o => o.type == 'ln')
|
||||||
.link
|
.link
|
||||||
if (!paymentRequest) return
|
if (!paymentRequest) return
|
||||||
this.qrCodeDialog.data.payment_request = paymentRequest
|
this.qrCodeDialog.data.payment_request = paymentRequest
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@
|
||||||
@checkout-cart="checkoutStallCart"></shopping-cart-list>
|
@checkout-cart="checkoutStallCart"></shopping-cart-list>
|
||||||
<shopping-cart-checkout v-else-if="activePage === 'shopping-cart-checkout'" :cart="checkoutCart"
|
<shopping-cart-checkout v-else-if="activePage === 'shopping-cart-checkout'" :cart="checkoutCart"
|
||||||
:stall="checkoutStall" :customer-pubkey="account?.pubkey" @login-required="openAccountDialog"
|
:stall="checkoutStall" :customer-pubkey="account?.pubkey" @login-required="openAccountDialog"
|
||||||
@place-order="placeOrder"></shopping-cart-checkout>
|
@place-order="placeOrder" @change-page="navigateTo"></shopping-cart-checkout>
|
||||||
<customer-orders v-else-if="activePage === 'customer-orders'" :orders="orders" :products="products"
|
<customer-orders v-else-if="activePage === 'customer-orders'" :orders="orders" :products="products"
|
||||||
:stalls="stalls" :merchants="merchants" @show-invoice="showInvoiceQr"></customer-orders>
|
:stalls="stalls" :merchants="merchants" @show-invoice="showInvoiceQr"></customer-orders>
|
||||||
<customer-stall v-else-if=" !isLoading && activeStall" :stall="stalls.find(stall => stall.id == activeStall)"
|
<customer-stall v-else-if=" !isLoading && activeStall" :stall="stalls.find(stall => stall.id == activeStall)"
|
||||||
|
|
@ -291,10 +291,10 @@
|
||||||
<q-dialog v-model="qrCodeDialog.show" position="top">
|
<q-dialog v-model="qrCodeDialog.show" position="top">
|
||||||
<q-card class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
<q-card class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
||||||
<div class="text-center q-mb-lg">
|
<div class="text-center q-mb-lg">
|
||||||
<div class="q-my-lg" v-if="qrCodeDialog.data.message">
|
<div v-if="qrCodeDialog.data.message" class="q-my-lg">
|
||||||
<p><span v-text="qrCodeDialog.data.message"></span> </p>
|
<strong><span v-text="qrCodeDialog.data.message"></span> </strong>
|
||||||
</div>
|
</div>
|
||||||
<a v-else :href="'lightning:' + qrCodeDialog.data.payment_request">
|
<a v-else :href="'lightning:' + qrCodeDialog.data?.payment_request">
|
||||||
<q-responsive v-if="qrCodeDialog.data.payment_request" :ratio="1" class="q-mx-xl">
|
<q-responsive v-if="qrCodeDialog.data.payment_request" :ratio="1" class="q-mx-xl">
|
||||||
<qrcode :value="qrCodeDialog.data.payment_request" :options="{width: 340}" class="rounded-borders"></qrcode>
|
<qrcode :value="qrCodeDialog.data.payment_request" :options="{width: 340}" class="rounded-borders"></qrcode>
|
||||||
</q-responsive>
|
</q-responsive>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue