|
1 | 1 | <template> |
2 | 2 | <div class="container mx-auto sm:flex py-5 sm:py-10 mt-10 sm:mt-20"> |
3 | 3 | <!-- Contact form start --> |
4 | | - <div class="w-full sm:w-1/2"> |
5 | | - <div class="leading-loose"> |
6 | | - <form |
7 | | - class="max-w-xl m-4 p-6 sm:p-10 bg-secondary-light dark:bg-secondary-dark rounded-xl shadow-xl text-left" |
8 | | - > |
9 | | - <p |
10 | | - class="text-primary-dark dark:text-primary-light text-2xl font-semibold mb-8" |
11 | | - > |
12 | | - Contact Form |
13 | | - </p> |
14 | | - <div class=""> |
15 | | - <label |
16 | | - class="block text-lg text-primary-dark dark:text-primary-light mb-2" |
17 | | - for="name" |
18 | | - >Full Name</label |
19 | | - > |
20 | | - <input |
21 | | - class="w-full px-5 py-2 border-0 text-primary-dark dark:text-secondary-light bg-ternary-light dark:bg-ternary-dark rounded-md shadow-sm text-md dark:font-medium" |
22 | | - id="name" |
23 | | - name="name" |
24 | | - type="text" |
25 | | - required="" |
26 | | - placeholder="Your Name" |
27 | | - aria-label="Name" |
28 | | - /> |
29 | | - </div> |
30 | | - <div class="mt-6"> |
31 | | - <label |
32 | | - class="block text-lg text-primary-dark dark:text-primary-light mb-2" |
33 | | - for="email" |
34 | | - >Email</label |
35 | | - > |
36 | | - <input |
37 | | - class="w-full px-5 py-2 border-0 text-primary-dark dark:text-secondary-light bg-ternary-light dark:bg-ternary-dark rounded-md shadow-sm text-md dark:font-medium" |
38 | | - id="email" |
39 | | - name="email" |
40 | | - type="text" |
41 | | - required="" |
42 | | - placeholder="Your Email" |
43 | | - aria-label="Email" |
44 | | - /> |
45 | | - </div> |
46 | | - <div class="mt-6"> |
47 | | - <label |
48 | | - class="block text-lg text-primary-dark dark:text-primary-light mb-2" |
49 | | - for="subject" |
50 | | - >Subject</label |
51 | | - > |
52 | | - <input |
53 | | - class="w-full px-5 py-2 border-0 text-primary-dark dark:text-secondary-light bg-ternary-light dark:bg-ternary-dark rounded-md shadow-sm text-md dark:font-medium" |
54 | | - id="subject" |
55 | | - name="subject" |
56 | | - type="text" |
57 | | - required="" |
58 | | - placeholder="Subject" |
59 | | - aria-label="Subject" |
60 | | - /> |
61 | | - </div> |
62 | | - |
63 | | - <div class="mt-6"> |
64 | | - <label |
65 | | - class="block text-lg text-primary-dark dark:text-primary-light mb-2" |
66 | | - for="message" |
67 | | - >Message</label |
68 | | - > |
69 | | - <textarea |
70 | | - class="w-full px-5 py-2 border-0 text-primary-dark dark:text-secondary-light bg-ternary-light dark:bg-ternary-dark rounded-md shadow-sm text-md dark:font-medium" |
71 | | - id="message" |
72 | | - name="message" |
73 | | - cols="14" |
74 | | - rows="6" |
75 | | - aria-label="Message" |
76 | | - ></textarea> |
77 | | - </div> |
78 | | - |
79 | | - <div class="mt-6"> |
80 | | - <button |
81 | | - class="px-4 py-2.5 text-white font-medium tracking-wider bg-indigo-500 hover:bg-indigo-600 focus:ring-1 focus:ring-indigo-900 rounded-lg" |
82 | | - type="submit" |
83 | | - aria-label="Send Message" |
84 | | - > |
85 | | - Send Message |
86 | | - </button> |
87 | | - </div> |
88 | | - </form> |
89 | | - </div> |
90 | | - </div> |
| 4 | + <ContactForm /> |
91 | 5 | <!-- Contact form end --> |
92 | 6 |
|
93 | 7 | <!-- Contact details start --> |
94 | | - <div class="w-full sm:w-1/2"> |
95 | | - <div class="text-left max-w-xl px-6"> |
96 | | - <h2 |
97 | | - class="text-2xl text-primary-dark dark:text-primary-light font-semibold mt-12 mb-8" |
98 | | - > |
99 | | - Contact details |
100 | | - </h2> |
101 | | - <ul class=""> |
102 | | - <li |
103 | | - class="flex" |
104 | | - v-for="contact in contacts" |
105 | | - :key="contact.id" |
106 | | - > |
107 | | - <i |
108 | | - :data-feather="contact.icon" |
109 | | - class="w-5 text-gray-500 dark:text-gray-400 mr-4" |
110 | | - ></i> |
111 | | - <a |
112 | | - href="#" |
113 | | - class="text-lg mb-4 text-ternary-dark dark:text-ternary-light" |
114 | | - :class=" |
115 | | - contact.icon === 'mail' || |
116 | | - contact.icon === 'phone' |
117 | | - ? 'hover:underline cursor-pointer' |
118 | | - : '' |
119 | | - " |
120 | | - aria-label="Website and Phone" |
121 | | - > |
122 | | - {{ contact.name }} |
123 | | - </a> |
124 | | - </li> |
125 | | - </ul> |
126 | | - </div> |
127 | | - </div> |
| 8 | + <ContactDetails :contacts="contacts" /> |
128 | 9 | <!-- Contact details end --> |
129 | 10 | </div> |
130 | 11 | </template> |
131 | 12 |
|
132 | 13 | <script> |
133 | 14 | import feather from 'feather-icons'; |
| 15 | +import ContactForm from '@/components/ContactForm.vue'; |
| 16 | +import ContactDetails from '@/components/ContactDetails.vue'; |
134 | 17 |
|
135 | 18 | export default { |
| 19 | + components: { |
| 20 | + ContactForm, |
| 21 | + ContactDetails, |
| 22 | + }, |
136 | 23 | data: () => { |
137 | 24 | return { |
138 | 25 | contacts: [ |
|
0 commit comments