Simplify error handling
This commit is contained in:
parent
9a5a4a3055
commit
a49456b323
|
@ -6,7 +6,7 @@
|
||||||
<div class="px-10 py-12">
|
<div class="px-10 py-12">
|
||||||
<h1 class="text-center font-bold text-3xl">Welcome Back!</h1>
|
<h1 class="text-center font-bold text-3xl">Welcome Back!</h1>
|
||||||
<div class="mx-auto mt-6 w-24 border-b-2" />
|
<div class="mx-auto mt-6 w-24 border-b-2" />
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="mt-10" label="Email" type="email" autofocus autocapitalize="off" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="mt-10" label="Email" type="email" autofocus autocapitalize="off" />
|
||||||
<text-input v-model="form.password" class="mt-6" label="Password" type="password" />
|
<text-input v-model="form.password" class="mt-6" label="Password" type="password" />
|
||||||
<label class="mt-6 select-none flex items-center" for="remember">
|
<label class="mt-6 select-none flex items-center" for="remember">
|
||||||
<input id="remember" v-model="form.remember" class="mr-1" type="checkbox">
|
<input id="remember" v-model="form.remember" class="mr-1" type="checkbox">
|
||||||
|
|
|
@ -7,23 +7,23 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.first_name" :errors="errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
<text-input v-model="form.first_name" :errors="$page.errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
||||||
<text-input v-model="form.last_name" :errors="errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
<text-input v-model="form.last_name" :errors="$page.errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
||||||
<select-input v-model="form.organization_id" :errors="errors.organization_id" class="pr-6 pb-8 w-full lg:w-1/2" label="Organization">
|
<select-input v-model="form.organization_id" :errors="$page.errors.organization_id" class="pr-6 pb-8 w-full lg:w-1/2" label="Organization">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option v-for="organization in organizations" :key="organization.id" :value="organization.id">{{ organization.name }}</option>
|
<option v-for="organization in organizations" :key="organization.id" :value="organization.id">{{ organization.name }}</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.phone" :errors="errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
<text-input v-model="form.phone" :errors="$page.errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
||||||
<text-input v-model="form.address" :errors="errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
<text-input v-model="form.address" :errors="$page.errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
||||||
<text-input v-model="form.city" :errors="errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
<text-input v-model="form.city" :errors="$page.errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
||||||
<text-input v-model="form.region" :errors="errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
<text-input v-model="form.region" :errors="$page.errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
||||||
<select-input v-model="form.country" :errors="errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
<select-input v-model="form.country" :errors="$page.errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option value="CA">Canada</option>
|
<option value="CA">Canada</option>
|
||||||
<option value="US">United States</option>
|
<option value="US">United States</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.postal_code" :errors="errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
<text-input v-model="form.postal_code" :errors="$page.errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
||||||
</div>
|
</div>
|
||||||
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex justify-end items-center">
|
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex justify-end items-center">
|
||||||
<loading-button :loading="sending" class="btn-indigo" type="submit">Create Contact</loading-button>
|
<loading-button :loading="sending" class="btn-indigo" type="submit">Create Contact</loading-button>
|
||||||
|
@ -48,10 +48,6 @@ export default {
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
organizations: Array,
|
organizations: Array,
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -11,23 +11,23 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.first_name" :errors="errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
<text-input v-model="form.first_name" :errors="$page.errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
||||||
<text-input v-model="form.last_name" :errors="errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
<text-input v-model="form.last_name" :errors="$page.errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
||||||
<select-input v-model="form.organization_id" :errors="errors.organization_id" class="pr-6 pb-8 w-full lg:w-1/2" label="Organization">
|
<select-input v-model="form.organization_id" :errors="$page.errors.organization_id" class="pr-6 pb-8 w-full lg:w-1/2" label="Organization">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option v-for="organization in organizations" :key="organization.id" :value="organization.id">{{ organization.name }}</option>
|
<option v-for="organization in organizations" :key="organization.id" :value="organization.id">{{ organization.name }}</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.phone" :errors="errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
<text-input v-model="form.phone" :errors="$page.errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
||||||
<text-input v-model="form.address" :errors="errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
<text-input v-model="form.address" :errors="$page.errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
||||||
<text-input v-model="form.city" :errors="errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
<text-input v-model="form.city" :errors="$page.errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
||||||
<text-input v-model="form.region" :errors="errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
<text-input v-model="form.region" :errors="$page.errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
||||||
<select-input v-model="form.country" :errors="errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
<select-input v-model="form.country" :errors="$page.errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option value="CA">Canada</option>
|
<option value="CA">Canada</option>
|
||||||
<option value="US">United States</option>
|
<option value="US">United States</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.postal_code" :errors="errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
<text-input v-model="form.postal_code" :errors="$page.errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
||||||
</div>
|
</div>
|
||||||
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex items-center">
|
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex items-center">
|
||||||
<button v-if="!contact.deleted_at" class="text-red hover:underline" tabindex="-1" type="button" @click="destroy">Delete Contact</button>
|
<button v-if="!contact.deleted_at" class="text-red hover:underline" tabindex="-1" type="button" @click="destroy">Delete Contact</button>
|
||||||
|
@ -56,10 +56,6 @@ export default {
|
||||||
props: {
|
props: {
|
||||||
contact: Object,
|
contact: Object,
|
||||||
organizations: Array,
|
organizations: Array,
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -7,18 +7,18 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.name" :errors="errors.name" class="pr-6 pb-8 w-full lg:w-1/2" label="Name" />
|
<text-input v-model="form.name" :errors="$page.errors.name" class="pr-6 pb-8 w-full lg:w-1/2" label="Name" />
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.phone" :errors="errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
<text-input v-model="form.phone" :errors="$page.errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
||||||
<text-input v-model="form.address" :errors="errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
<text-input v-model="form.address" :errors="$page.errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
||||||
<text-input v-model="form.city" :errors="errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
<text-input v-model="form.city" :errors="$page.errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
||||||
<text-input v-model="form.region" :errors="errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
<text-input v-model="form.region" :errors="$page.errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
||||||
<select-input v-model="form.country" :errors="errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
<select-input v-model="form.country" :errors="$page.errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option value="CA">Canada</option>
|
<option value="CA">Canada</option>
|
||||||
<option value="US">United States</option>
|
<option value="US">United States</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.postal_code" :errors="errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
<text-input v-model="form.postal_code" :errors="$page.errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
||||||
</div>
|
</div>
|
||||||
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex justify-end items-center">
|
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex justify-end items-center">
|
||||||
<loading-button :loading="sending" class="btn-indigo" type="submit">Create Organization</loading-button>
|
<loading-button :loading="sending" class="btn-indigo" type="submit">Create Organization</loading-button>
|
||||||
|
@ -41,12 +41,6 @@ export default {
|
||||||
SelectInput,
|
SelectInput,
|
||||||
TextInput,
|
TextInput,
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -11,18 +11,18 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.name" :errors="errors.name" class="pr-6 pb-8 w-full lg:w-1/2" label="Name" />
|
<text-input v-model="form.name" :errors="$page.errors.name" class="pr-6 pb-8 w-full lg:w-1/2" label="Name" />
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.phone" :errors="errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
<text-input v-model="form.phone" :errors="$page.errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" />
|
||||||
<text-input v-model="form.address" :errors="errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
<text-input v-model="form.address" :errors="$page.errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" />
|
||||||
<text-input v-model="form.city" :errors="errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
<text-input v-model="form.city" :errors="$page.errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" />
|
||||||
<text-input v-model="form.region" :errors="errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
<text-input v-model="form.region" :errors="$page.errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" />
|
||||||
<select-input v-model="form.country" :errors="errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
<select-input v-model="form.country" :errors="$page.errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country">
|
||||||
<option :value="null" />
|
<option :value="null" />
|
||||||
<option value="CA">Canada</option>
|
<option value="CA">Canada</option>
|
||||||
<option value="US">United States</option>
|
<option value="US">United States</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
<text-input v-model="form.postal_code" :errors="errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
<text-input v-model="form.postal_code" :errors="$page.errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" />
|
||||||
</div>
|
</div>
|
||||||
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex items-center">
|
<div class="px-8 py-4 bg-grey-lightest border-t border-grey-lighter flex items-center">
|
||||||
<button v-if="!organization.deleted_at" class="text-red hover:underline" tabindex="-1" type="button" @click="destroy">Delete Organization</button>
|
<button v-if="!organization.deleted_at" class="text-red hover:underline" tabindex="-1" type="button" @click="destroy">Delete Organization</button>
|
||||||
|
@ -88,10 +88,6 @@ export default {
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
organization: Object,
|
organization: Object,
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.first_name" :errors="errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
<text-input v-model="form.first_name" :errors="$page.errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
||||||
<text-input v-model="form.last_name" :errors="errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
<text-input v-model="form.last_name" :errors="$page.errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.password" :errors="errors.password" class="pr-6 pb-8 w-full lg:w-1/2" type="password" autocomplete="new-password" label="Password" />
|
<text-input v-model="form.password" :errors="$page.errors.password" class="pr-6 pb-8 w-full lg:w-1/2" type="password" autocomplete="new-password" label="Password" />
|
||||||
<select-input v-model="form.owner" :errors="errors.owner" class="pr-6 pb-8 w-full lg:w-1/2" label="Owner">
|
<select-input v-model="form.owner" :errors="$page.errors.owner" class="pr-6 pb-8 w-full lg:w-1/2" label="Owner">
|
||||||
<option :value="true">Yes</option>
|
<option :value="true">Yes</option>
|
||||||
<option :value="false">No</option>
|
<option :value="false">No</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
|
@ -37,12 +37,6 @@ export default {
|
||||||
SelectInput,
|
SelectInput,
|
||||||
TextInput,
|
TextInput,
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
<div class="bg-white rounded shadow overflow-hidden max-w-lg">
|
||||||
<form @submit.prevent="submit">
|
<form @submit.prevent="submit">
|
||||||
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
<div class="p-8 -mr-6 -mb-8 flex flex-wrap">
|
||||||
<text-input v-model="form.first_name" :errors="errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
<text-input v-model="form.first_name" :errors="$page.errors.first_name" class="pr-6 pb-8 w-full lg:w-1/2" label="First name" />
|
||||||
<text-input v-model="form.last_name" :errors="errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
<text-input v-model="form.last_name" :errors="$page.errors.last_name" class="pr-6 pb-8 w-full lg:w-1/2" label="Last name" />
|
||||||
<text-input v-model="form.email" :errors="errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" />
|
||||||
<text-input v-model="form.password" :errors="errors.password" class="pr-6 pb-8 w-full lg:w-1/2" type="password" autocomplete="new-password" label="Password" />
|
<text-input v-model="form.password" :errors="$page.errors.password" class="pr-6 pb-8 w-full lg:w-1/2" type="password" autocomplete="new-password" label="Password" />
|
||||||
<select-input v-model="form.owner" :errors="errors.owner" class="pr-6 pb-8 w-full lg:w-1/2" label="Owner">
|
<select-input v-model="form.owner" :errors="$page.errors.owner" class="pr-6 pb-8 w-full lg:w-1/2" label="Owner">
|
||||||
<option :value="true">Yes</option>
|
<option :value="true">Yes</option>
|
||||||
<option :value="false">No</option>
|
<option :value="false">No</option>
|
||||||
</select-input>
|
</select-input>
|
||||||
|
@ -46,10 +46,6 @@ export default {
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
user: Object,
|
user: Object,
|
||||||
errors: {
|
|
||||||
type: Object,
|
|
||||||
default: () => ({}),
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
remember: 'form',
|
remember: 'form',
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
class Errors {
|
|
||||||
constructor(errors = {}) {
|
|
||||||
this.record(errors)
|
|
||||||
}
|
|
||||||
|
|
||||||
record(errors = {}) {
|
|
||||||
this.errors = errors
|
|
||||||
}
|
|
||||||
|
|
||||||
all() {
|
|
||||||
return this.errors
|
|
||||||
}
|
|
||||||
|
|
||||||
any() {
|
|
||||||
return Object.keys(this.errors).length > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
has(key) {
|
|
||||||
return key in this.errors
|
|
||||||
}
|
|
||||||
|
|
||||||
first(field) {
|
|
||||||
return this.get(field)[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
get(field) {
|
|
||||||
return this.errors[field] || []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Errors
|
|
Loading…
Reference in New Issue