Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 13 additions & 9 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -416,15 +416,19 @@ export default {
contact: {
title: 'Contact',
subtitle: 'Necessitatibus eius consequatur ex aliquid fuga eum quidem sint consectetur velit',
address: 'A108 Adam Street, New York, NY 535022',
phone: '+1 5589 55488 55',
email: 'info@example.com',
formAction: 'forms/contact.php',
formMethod: 'post',
formName: 'Your Name',
formEmail: 'Your Email',
formSubject: 'Subject',
formMessage: 'Message',
info: {
address: 'A108 Adam Street, New York, NY 535022',
phone: '+1 5589 55488 55',
email: 'info@example.com',
},
form: {
action: 'forms/contact.php',
method: 'post',
name: 'Your Name',
email: 'Your Email',
subject: 'Subject',
message: 'Message',
},
},
}
},
Expand Down
45 changes: 45 additions & 0 deletions src/components/ContactForm.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<template>
<div class="col-lg-7">
<form v-bind:action="value.action" v-bind:method="value.method" class="php-email-form" data-aos="fade-up" data-aos-delay="500">
<div class="row gy-4">

<div class="col-md-6">
<input type="text" name="name" class="form-control" v-bind:placeholder="value.name" required="">
</div>

<div class="col-md-6 ">
<input type="email" class="form-control" name="email" v-bind:placeholder="value.email" required="">
</div>

<div class="col-md-12">
<input type="text" class="form-control" name="subject" v-bind:placeholder="value.subject" required="">
</div>

<div class="col-md-12">
<textarea class="form-control" name="message" rows="6" v-bind:placeholder="value.message" required=""></textarea>
</div>

<div class="col-md-12 text-center">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Your message has been sent. Thank you!</div>

<button type="submit">Send Message</button>
</div>

</div>
</form>
</div><!-- End Contact Form -->
</template>

<script>
export default {
name: 'ContactForm',
props: {
value: {
type: Object,
required: true,
}
}
}
</script>
40 changes: 40 additions & 0 deletions src/components/ContactInfo.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<template>
<div class="col-lg-5">
<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="200">
<i class="bi bi-geo-alt flex-shrink-0"></i>
<div>
<h3>Address</h3>
<p>{{ value.address }}</p>
</div>
</div><!-- End Info Item -->

<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="300">
<i class="bi bi-telephone flex-shrink-0"></i>
<div>
<h3>Call Us</h3>
<p>{{ value.phone }}</p>
</div>
</div><!-- End Info Item -->

<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="400">
<i class="bi bi-envelope flex-shrink-0"></i>
<div>
<h3>Email Us</h3>
<p>{{ value.email }}</p>
</div>
</div><!-- End Info Item -->

</div>
</template>

<script>
export default {
name: 'ContactInfo',
props: {
value: {
type: Object,
required: true,
}
}
}
</script>
67 changes: 9 additions & 58 deletions src/components/ContactSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,64 +12,8 @@

<div class="row gy-4">

<div class="col-lg-5">
<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="200">
<i class="bi bi-geo-alt flex-shrink-0"></i>
<div>
<h3>Address</h3>
<p>{{ value.address }}</p>
</div>
</div><!-- End Info Item -->

<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="300">
<i class="bi bi-telephone flex-shrink-0"></i>
<div>
<h3>Call Us</h3>
<p>{{ value.phone }}</p>
</div>
</div><!-- End Info Item -->

<div class="info-item d-flex" data-aos="fade-up" data-aos-delay="400">
<i class="bi bi-envelope flex-shrink-0"></i>
<div>
<h3>Email Us</h3>
<p>{{ value.email }}</p>
</div>
</div><!-- End Info Item -->

</div>

<div class="col-lg-7">
<form v-bind:action="value.formAction" v-bind:method="value.formMethod" class="php-email-form" data-aos="fade-up" data-aos-delay="500">
<div class="row gy-4">

<div class="col-md-6">
<input type="text" name="name" class="form-control" v-bind:placeholder="value.formName" required="">
</div>

<div class="col-md-6 ">
<input type="email" class="form-control" name="email" v-bind:placeholder="value.formEmail" required="">
</div>

<div class="col-md-12">
<input type="text" class="form-control" name="subject" v-bind:placeholder="value.formSubject" required="">
</div>

<div class="col-md-12">
<textarea class="form-control" name="message" rows="6" v-bind:placeholder="value.formMessage" required=""></textarea>
</div>

<div class="col-md-12 text-center">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Your message has been sent. Thank you!</div>

<button type="submit">Send Message</button>
</div>

</div>
</form>
</div><!-- End Contact Form -->
<ContactInfo v-bind:value="value.info"></ContactInfo>
<ContactForm v-bind:value="value.form"></ContactForm>

</div>

Expand All @@ -79,8 +23,15 @@
</template>

<script>
import ContactInfo from './ContactInfo.vue';
import ContactForm from './ContactForm.vue';

export default {
name: 'ContactSection',
components: {
ContactInfo,
ContactForm,
},
props: {
value: {
type: Object,
Expand Down