Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Frontend finetuning after v3 graphql #126

Merged
merged 10 commits into from
Nov 5, 2024
Prev Previous commit
Next Next commit
Resolved merge conflict
  • Loading branch information
jordythevulder committed Nov 5, 2024
commit 59b54bf2ac708dbd981347d1944e2b8fbf8022c9
4 changes: 2 additions & 2 deletions resources/views/checkout/pages/credentials.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<form
class="contents"
v-on:submit.prevent="(e) => {
submitFieldsets(e.target?.form ?? e.target)
submitPartials(e.target?.form ?? e.target)
.then((result) =>
window.app.$emit('checkout-credentials-saved')
&& window.Turbo.visit(window.url('{{ route('checkout', ['step' => 'payment']) }}'))
Expand All @@ -37,4 +37,4 @@ class="contents"
</x-slot:sidebar>
</x-rapidez-ct::layout>
</div>
@endsection
@endsection
4 changes: 2 additions & 2 deletions resources/views/checkout/pages/login.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
<x-rapidez-ct::title-progress-bar :href="route('cart')" :$checkoutSteps :$currentStep :$currentStepKey>
@lang('Credentials')
</x-rapidez-ct::title-progress-bar>

<form
v-if="hasCart"
v-on:submit.prevent="(e) => {
submitFieldsets(e.target?.form ?? e.target)
submitPartials(e.target?.form ?? e.target)
.then((result) =>
window.Turbo.visit(window.url('{{ route('checkout', ['step' => 'credentials']) }}'))
).catch();
Expand Down
6 changes: 3 additions & 3 deletions resources/views/checkout/pages/payment.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<x-rapidez-ct::title-progress-bar :href="route('checkout', ['step' => 'credentials'])" :$checkoutSteps :$currentStep :$currentStepKey>
@lang('Payment')
</x-rapidez-ct::title-progress-bar>
<form
<form
class="contents"
v-on:submit.prevent="(e) => {
submitFieldsets(e.target?.form ?? e.target)
submitPartials(e.target?.form ?? e.target)
.then((result) =>
window.app.$emit('checkout-payment-saved')
&& window.app.$emit('placeOrder')
Expand All @@ -27,4 +27,4 @@ class="contents"
</x-slot:sidebar>
</x-rapidez-ct::layout>
</div>
@endsection
@endsection
86 changes: 41 additions & 45 deletions resources/views/checkout/partials/address-card.blade.php
Original file line number Diff line number Diff line change
@@ -1,56 +1,52 @@
<div class="grid gap-5 lg:grid-cols-2">
<graphql-mutation
:query="config.queries.setExistingShippingAddressesOnCart"
:variables="{
cart_id: mask,
customer_address_id: cart.shipping_addresses[0]?.customer_address_id,
}"
:callback="updateCart"
:error-callback="checkResponseForExpiredCart"
mutate-event="setShippingAddressesOnCart"
v-slot="setShippingAddress"
>
<graphql-mutation
:query="config.queries.setExistingShippingAddressesOnCart"
:query="config.queries.setExistingBillingAddressOnCart"
:variables="{
cart_id: mask,
customer_address_id: cart.shipping_addresses[0]?.customer_address_id,
customer_address_id: cart.billing_address?.customer_address_id,
}"
:callback="updateCart"
:error-callback="checkResponseForExpiredCart"
mutate-event="setShippingAddressesOnCart"
v-slot="setShippingAddress"
mutate-event="setBillingAddressOnCart"
v-slot="setBillingAddress"
>
<div>
<graphql-mutation
:query="config.queries.setExistingBillingAddressOnCart"
:variables="{
cart_id: mask,
customer_address_id: cart.billing_address?.customer_address_id,
}"
:callback="updateCart"
:error-callback="checkResponseForExpiredCart"
mutate-event="setBillingAddressOnCart"
v-slot="setBillingAddress"
>
<div>
<template v-for="userAddress in $root.user.addresses">
<x-rapidez-ct::card.address
v-bind:key="userAddress.id"
v-bind:address="userAddress"
v-bind:billing="setBillingAddress.variables.customer_address_id === userAddress.id"
v-bind:shipping="setShippingAddress.variables.customer_address_id === userAddress.id"
v-bind:check="setBillingAddress.variables.customer_address_id === userAddress.id || setShippingAddress.variables.customer_address_id === userAddress.id"
class="w-full sm:min-w-[350px]"
<div class="grid gap-5 lg:grid-cols-2">
<template v-for="userAddress in $root.user.addresses">
<x-rapidez-ct::card.address
v-bind:key="userAddress.id"
v-bind:address="userAddress"
v-bind:billing="setBillingAddress.variables.customer_address_id === userAddress.id"
v-bind:shipping="setShippingAddress.variables.customer_address_id === userAddress.id"
v-bind:check="setBillingAddress.variables.customer_address_id === userAddress.id || setShippingAddress.variables.customer_address_id === userAddress.id"
class="w-full sm:min-w-[350px]"
>
<x-rapidez-ct::button.link
v-if="!cart.is_virtual && setShippingAddress.variables.customer_address_id !== userAddress.id"
v-on:click.prevent="() => window.app.$set(setShippingAddress.variables, 'customer_address_id', userAddress.id) && setShippingAddress.mutate()"
v-bind:class="{'blur pointer-events-none': setShippingAddress.mutating}"
>
<x-rapidez-ct::button.link
v-if="!cart.is_virtual && setShippingAddress.variables.customer_address_id !== userAddress.id"
v-on:click.prevent="() => window.app.$set(setShippingAddress.variables, 'customer_address_id', userAddress.id) && setShippingAddress.mutate()"
v-bind:class="{'blur pointer-events-none': setShippingAddress.mutating}"
>
@lang('Select as shipping')
</x-rapidez-ct::button.link>
@lang('Select as shipping')
</x-rapidez-ct::button.link>

<x-rapidez-ct::button.link
v-if="setBillingAddress.variables.customer_address_id !== userAddress.id"
v-on:click.prevent="() => window.app.$set(setBillingAddress.variables, 'customer_address_id', userAddress.id) && setBillingAddress.mutate()"
v-bind:class="{'blur pointer-events-none': setBillingAddress.mutating}"
>
@lang('Select as billing')
</x-rapidez-ct::button.link>
</x-rapidez-ct::card.address>
</template>
</div>
</graphql-mutation>
<x-rapidez-ct::button.link
v-if="setBillingAddress.variables.customer_address_id !== userAddress.id"
v-on:click.prevent="() => window.app.$set(setBillingAddress.variables, 'customer_address_id', userAddress.id) && setBillingAddress.mutate()"
v-bind:class="{'blur pointer-events-none': setBillingAddress.mutating}"
>
@lang('Select as billing')
</x-rapidez-ct::button.link>
</x-rapidez-ct::card.address>
</template>
</div>
</graphql-mutation>
</div>
</graphql-mutation>
2 changes: 1 addition & 1 deletion resources/views/checkout/partials/address-cards.blade.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div class="grid gap-5 sm:grid-cols-2">
<div class="grid gap-5 md:grid-cols-2">
<template v-if="cart.billing_address?.same_as_shipping">
<x-rapidez-ct::card.address v-bind:address="cart.shipping_addresses[0]" shipping billing check>
<x-rapidez-ct::button.link v-on:click.prevent="toggleEdit">
Expand Down
5 changes: 2 additions & 3 deletions resources/views/checkout/partials/sections/address.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@
v-slot="{ mutate, variables }"
v-if="!cart.is_virtual"
>
<fieldset data-function="mutate" v-on:change="function (e) {e.target.closest('fieldset').querySelector(':invalid') === null && mutate().then(() => (cart?.billing_address?.same_as_shipping ?? true) && window.app.$emit('setBillingAddressOnCart'))}">
<fieldset partial-submit="mutate" v-on:change="function (e) {e.target.closest('fieldset').querySelector(':invalid') === null && mutate().then(() => (cart?.billing_address?.same_as_shipping ?? true) && window.app.$emit('setBillingAddressOnCart'))}">
@include('rapidez-ct::checkout.partials.shipping-billing-fields', ['type' => 'shipping'])
</fieldset>
</graphql-mutation>

<graphql-mutation
:query="config.queries.setNewBillingAddressOnCart"
:variables="JSON.parse(JSON.stringify({
Expand All @@ -44,7 +43,7 @@
mutate-event="setBillingAddressOnCart"
v-slot="{ mutate, variables }"
>
<fieldset data-function="mutate" v-on:change="function (e) {e.target.closest('fieldset').querySelector(':invalid') === null && mutate().then(() => (cart?.billing_address?.same_as_shipping ?? true) && window.app.$emit('setBillingAddressOnCart'))}">
<fieldset partial-submit="mutate" v-on:change="function (e) {e.target.closest('fieldset').querySelector(':invalid') === null && mutate().then(() => (cart?.billing_address?.same_as_shipping ?? true) && window.app.$emit('setBillingAddressOnCart'))}">
@include('rapidez-ct::checkout.partials.shipping-billing-fields', ['type' => 'billing'])
</fieldset>
</graphql-mutation>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
<checkout-login v-slot="checkoutLogin">
<<<<<<< HEAD
<fieldset data-function="go" class="flex flex-col gap-3">
=======
<fieldset partial-submit="go" class="grid gap-4 md:gap-5 md:grid-cols-2">
>>>>>>> 6cc528cd1c252e24d49c24058012c98f5a281ac8
<x-rapidez-ct::input
label="Email"
name="email"
Expand All @@ -10,6 +14,7 @@ class="justify-center"
required
:placeholder="__('Enter your e-mail address')"
/>
<<<<<<< HEAD
<template v-if="!loggedIn && (!checkoutLogin.isEmailAvailable || checkoutLogin.createAccount)">
<x-rapidez-ct::input
label="Password"
Expand Down Expand Up @@ -56,11 +61,64 @@ class="justify-center"
@lang('Create an account')
</x-rapidez::checkbox>
</template>
=======
>>>>>>> 6cc528cd1c252e24d49c24058012c98f5a281ac8

<p v-if="checkoutLogin.isEmailAvailable" class="self-end text-ct-inactive">
@lang('We will send your order confirmation to this e-mail address. We will also check if you already have an account so you can checkout more efficiently.')
</p>

<<<<<<< HEAD
=======
<template v-if="!loggedIn && (!checkoutLogin.isEmailAvailable || checkoutLogin.createAccount)">
<x-rapidez-ct::input.password
label="Password"
name="password"
v-model="checkoutLogin.password"
required
/>
</template>
<p v-if="!loggedIn && !checkoutLogin.isEmailAvailable" class="self-end text-ct-inactive">
@lang('You already have an account with this e-mail address. Please log in to continue.')
<a href="{{ route('account.forgotpassword') }}" class="underline hover:no-underline">@lang('Forgot your password?')</a>
</p>
@if (App::providerIsLoaded('Rapidez\Account\AccountServiceProvider'))
<a href="{{ route('account.forgotpassword') }}" class="inline-block text-sm hover:underline mt-5" v-if="!checkoutLogin.isEmailAvailable">
@lang('Forgot your password?')
</a>
@endif
<template v-if="!loggedIn && checkoutLogin.createAccount">
<x-rapidez-ct::input.password
label="Repeat password"
name="password_repeat"
v-model="checkoutLogin.password_repeat"
required
/>
<x-rapidez-ct::input
label="Firstname"
name="firstname"
type="text"
v-model="checkoutLogin.firstname"
required
/>
<x-rapidez-ct::input
label="Lastname"
name="lastname"
type="text"
v-model="checkoutLogin.lastname"
required
/>
</template>

<template v-if="!loggedIn && checkoutLogin.isEmailAvailable">
<div class="col-span-full">
<x-rapidez-ct::input.checkbox v-model="checkoutLogin.createAccount" dusk="create_account" class="">
@lang('Create an account')
</x-rapidez-ct::input.checkbox>
</div>
</template>

>>>>>>> 6cc528cd1c252e24d49c24058012c98f5a281ac8
<x-rapidez-ct::button.accent type="button" v-on:click="checkoutLogin.go" v-if="checkoutLogin.isEmailAvailable && checkoutLogin.createAccount" dusk="register">
@lang('Register')
</x-rapidez-ct::button.accent>
Expand Down
80 changes: 40 additions & 40 deletions resources/views/checkout/partials/sections/payment.blade.php
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
<graphql-mutation
:query="config.queries.setPaymentMethodOnCart"
:variables="{
cart_id: mask,
code: cart.selected_payment_method.code,
}"
group="payment"
:before-request="handleBeforePaymentMethodHandlers"
:callback="updateCart"
:error-callback="checkResponseForExpiredCart"
mutate-event="setPaymentMethodOnCart"
v-slot="{ mutate, variables }"
>
<div data-function="mutate">
<div v-for="(method, index) in cart.available_payment_methods">
@include('rapidez-ct::checkout.partials.sections.payment.payment-methods')
</div>
<graphql-mutation
:query="config.queries.setPaymentMethodOnCart"
:variables="{
cart_id: mask,
code: cart.selected_payment_method.code,
}"
group="payment"
:before-request="handleBeforePaymentMethodHandlers"
:callback="updateCart"
:error-callback="checkResponseForExpiredCart"
mutate-event="setPaymentMethodOnCart"
v-slot="{ mutate, variables }"
>
<div partial-submit="mutate">
<div v-for="(method, index) in cart.available_payment_methods">
@include('rapidez-ct::checkout.partials.sections.payment.payment-methods')
</div>
</graphql-mutation>
<graphql query="{ checkoutAgreements { agreement_id name checkbox_text content is_html mode } }">
<div v-if="data?.checkoutAgreements?.length" class="mt-5 flex flex-col gap-y-4" slot-scope="{ data }">
<div v-for="agreement in data.checkoutAgreements">
<label
class="text-ct-primary cursor-pointer text-sm underline"
v-bind:for="agreement.checkbox_text"
v-if="agreement.mode == 'AUTO'"
>
@{{ agreement.checkbox_text }}
</label>
<template v-else>
@include('rapidez-ct::checkout.partials.sections.payment.agreement-checkbox')
</template>
<x-rapidez-ct::slideover id="agreement.checkbox_text">
<x-slot name="title">
@{{ agreement.name }}
</x-slot>
<div v-if="agreement.is_html" v-html="agreement.content"></div>
<div v-else class="whitespace-pre-wrap" v-text="agreement.content"></div>
</x-rapidez-ct::slideover>
</div>
</div>
</graphql-mutation>
<graphql query="{ checkoutAgreements { agreement_id name checkbox_text content is_html mode } }">
<div v-if="data?.checkoutAgreements?.length" class="mt-5 flex flex-col gap-y-4" slot-scope="{ data }">
<div v-for="agreement in data.checkoutAgreements">
<label
class="text-ct-primary cursor-pointer text-sm underline"
v-bind:for="agreement.checkbox_text"
v-if="agreement.mode == 'AUTO'"
>
@{{ agreement.checkbox_text }}
</label>
<template v-else>
@include('rapidez-ct::checkout.partials.sections.payment.agreement-checkbox')
</template>
<x-rapidez-ct::slideover id="agreement.checkbox_text">
<x-slot name="title">
@{{ agreement.name }}
</x-slot>
<div v-if="agreement.is_html" v-html="agreement.content"></div>
<div v-else class="whitespace-pre-wrap" v-text="agreement.content"></div>
</x-rapidez-ct::slideover>
</div>
</graphql>
</div>
</graphql>
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
v-slot="{ mutate, variables }"
v-if="!cart.is_virtual"
>
<fieldset class="mt-5 flex flex-col gap-2" data-function="mutate" v-on:change="window.app.$emit('setShippingAddressesOnCart')">
<fieldset class="mt-5 flex flex-col gap-2" partial-submit="mutate" v-on:change="window.app.$emit('setShippingAddressesOnCart')">
<template v-for="(method, index) in cart.shipping_addresses[0]?.available_shipping_methods">
<x-rapidez-ct::input.radio
name="shipping_method"
Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.