Skip to content

Commit

Permalink
Feat: Redesign client schedule meeting flow and client thank-you page
Browse files Browse the repository at this point in the history
  • Loading branch information
cp-dharti-r committed Jul 5, 2024
1 parent 76ad4e5 commit bdcee7f
Show file tree
Hide file tree
Showing 15 changed files with 259 additions and 92 deletions.
7 changes: 2 additions & 5 deletions .github/workflows/deploy-frontend-dev.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
name: DeployFrontendServerlessDev

on:
workflow_run:
workflows: ["DeployBackendDev"]
types:
- completed
push:
branches:
- "master"
- "change-schedule-meeting-flow"

jobs:
deploy-frontend-dev:
Expand Down
71 changes: 63 additions & 8 deletions nuxt-frontend/components/contact/CalendlyIframe.vue
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
<template>
<div class="w-full h-[550px] border-0 pt-5 md:h-screen">
<div class="w-full h-[550px] border-0 md:h-screen">
<div v-if="isLoading" class="iframe-loader">
<img
:src="loader"
class="fixed left-[50%] top-[50%] -translate-y-1/2 -translate-x-1/2 z-[100]"
alt="loader-image"
/>
</div>
<iframe
class="h-screen w-full"
:src="calendlyUrl"
title="calendly"
v-on:load="isLoading = false"
v-show="!isLoading"
></iframe>
<div v-if="!isLoading" class="h-28" id="calendly-embed-before"></div>
<div
id="calendly-embed"
class="h-[calc(100vh-7rem)] w-full"
:data-url="calendlyUrl"
style="min-width: 320px"
></div>
</div>
</template>

Expand All @@ -29,5 +29,60 @@ export default {
isLoading: true,
};
},
mounted() {
this.loadCalendlyWidget();
this.initializeCalendlyEventListeners();
},
beforeDestroy() {
window.removeEventListener("message", this.handleCalendlyEvent);
},
methods: {
loadCalendlyWidget() {
if (window.Calendly) {
this.initCalendlyWidget();
} else {
const script = document.createElement("script");
script.src = "https://assets.calendly.com/assets/external/widget.js";
script.async = true;
script.onload = this.initCalendlyWidget;
document.head.appendChild(script);
}
},
initCalendlyWidget() {
Calendly.initInlineWidget({
url: this.calendlyUrl,
parentElement: document.getElementById("calendly-embed"),
});
},
initializeCalendlyEventListeners() {
setTimeout(() => {
this.isLoading = false;
}, 1000);
window.addEventListener("message", this.handleCalendlyEvent);
},
handleCalendlyEvent(e) {
if (
e.data.event &&
e.data.event.indexOf("calendly") === 0 &&
e.data.event === "calendly.event_scheduled"
) {
setTimeout(() => {
this.$emit("close");
}, 2000);
}
},
},
};
</script>

<style scroped>
@media (min-width: 650px) and (max-width: 1000px) {
#calendly-embed-before {
height: 4.5rem;
}
#calendly-embed {
height: calc(100vh - 4.5rem);
}
}
</style>
12 changes: 4 additions & 8 deletions nuxt-frontend/components/contact/NewContactForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,8 @@
<script>
import axios from "axios";
import config from "@/config.js";
import CalendlyIframe from "./CalendlyIframe.vue";
import loaderImage from "@/assets/images/theme/small-loader.svg";
export default {
data() {
return {
Expand All @@ -244,16 +244,12 @@ export default {
showProjectInfoValidationError: false,
showReferenceValidationError: false,
showInvestValidationError: false,
openCalendlyIframeModal: false,
errorMessage: "Something went wrong on our side",
showLoader: false,
showErrorMessage: false,
contactType: 1,
};
},
components: {
CalendlyIframe,
},
inject: ["mixpanel"],
mounted() {
document.addEventListener("click", this.closePopUps);
Expand Down Expand Up @@ -307,13 +303,13 @@ export default {
axios
.post(config.API_BASE + "/api/send-contact-mail", formData)
.then(() => {
this.$router.push({
path: "/thank-you",
});
localStorage.setItem(
"client-name",
JSON.stringify(formData.name),
);
this.$router.push({
path: "/thank-you",
});
this.resetForm();
})
.catch((err) => {
Expand Down
7 changes: 5 additions & 2 deletions nuxt-frontend/components/contact/thank-you/BenefitSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
<p
class="container text-center mobile-header-2 lg:desk-header-2 text-black-87 2xl:max-w-[67%] xll:max-w-[45%] 3xl:max-w-[28%] 2xl:mx-auto"
>
Here are some of the things you will get by working with us that make us
special according to our past customers.
Why Canopas?
</p>
<p class="container text-center mt-2 lg:mt-6 text-black-4 lg:text-2xl">
Discover what makes us unique through the experiences of our satisfied
customers.
</p>
<div class="absolute w-full h-full lg:hidden">
<img
Expand Down
49 changes: 49 additions & 0 deletions nuxt-frontend/components/contact/thank-you/InformationPoints.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<template>
<div class="container my-32 lg:my-44 flex flex-col gap-14">
<p
class="text-center mobile-header-3-semibold lg:desk-header-3 text-black-80"
>
We just want you to make an informed decision and we hope this information
might help you get a clear understanding of the exceptional customer
experiences we offer at
<span class="text-primary-1">Canopas.</span>
</p>
<div class="flex flex-col gap-7 lg:px-5">
<div class="flex gap-2 sm:gap-4 lg:gap-6">
<img
src="/images/clients/thank-you/finger-hand.svg"
alt="finger-hand-bullet"
class="h-fit"
/>
<p
class="text-black-4 border-b-2 border-dashed border-black-4 sm:text-lg lg:text-2xl pb-3"
>
If you have any questions or concerns, don't hesitate to reach out to
me directly. I'm here to help and support you throughout the process.
</p>
</div>
<div class="flex gap-2 sm:gap-4 lg:gap-6">
<img
src="/images/clients/thank-you/finger-hand.svg"
alt="finger-hand-bullet"
class="h-fit"
/>
<p
class="text-black-4 border-b-2 border-dashed border-black-4 sm:text-lg lg:text-2xl pb-3"
>
Thank you again for considering our company for your needs. We look
forward to the opportunity to work with you and build a long and
successful partnership.
</p>
</div>
</div>
<div class="flex items-end flex-col">
<p class="text-left sub-h1-semibold lg:desk-header-3">Thanks,</p>
<p
class="mt-0 sub-h1-regular lg:mobile-header-2-regular text-black-60 font-semibold"
>
Jimmy
</p>
</div>
</div>
</template>
30 changes: 16 additions & 14 deletions nuxt-frontend/components/contact/thank-you/LandingSection.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<section>
<section class="flex flex-col gap-40">
<div class="container flex flex-col mt-4 lg:mt-12">
<p
class="text-center sub-h4-regular lg:mobile-header-3-regular text-black-60"
Expand Down Expand Up @@ -28,20 +28,22 @@
appreciate the fact that you chose my company.
</p>
</div>
<div
class="mt-16 lg:mt-48 flex flex-col bg-gradient-to-r from-orange-80 to-pink-80 py-12 xl:py-16 lg:container"
>
<div class="container py-12 xl:py-16">
<p class="text-center mobile-header-2 lg:desk-header-2 text-primary-1">
At Canopas, Our Vision is
<!-- <div class="bg-primary-1 py-5">
<p class="container text-center text-white text-xl font-semibold tracking-wider">
Thank you for booking a meeting with Canopas. Here's the details of your
meeting with Canopas.
<br />
Time - 9:00am - 9:30am, Wednesday, June 26, 2024 (India Standard Time)
</p>
<p
class="mt-3 text-center sub-h3-medium lg:desk-header-3 text-black-87 xl:w-[84%] 2xl:w-[74%] xl:mx-auto"
>
"To put humanity and the world into a better position compared to what
it was prior to our existence in the world."
</p>
</div>
</div> -->
<div class="container">
<p class="text-center mobile-header-2 lg:desk-header-2">Our Vision</p>
<p
class="mt-3 text-center sub-h3-medium lg:desk-header-3 text-black-87 w-[68%] mx-auto"
>
"To put humanity and the world into a better position compared to what
it was prior to our existence in the world."
</p>
</div>
</section>
</template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,14 @@
<div v-if="openCalendlyIframeModal">
<transition name="modal">
<div
class="modal-mask fixed top-0 left-0 w-full h-full table mask z-[1] bg-[#00000080] z-[5]"
class="modal-mask fixed top-0 left-0 w-full h-full table mask bg-[#00000080] z-[5]"
>
<div
class="flex mx-auto left-auto sm:mx-auto h-full login-modal modal-xl"
role="document"
>
<div
class="relative flex flex-col w-full border-1 border-gray border-solid rounded-md rounded-3xl bg-white bg-clip-padding outline-0"
class="relative flex flex-col w-full border-1 border-gray border-solid rounded-md bg-white bg-clip-padding outline-0"
>
<div class="relative flex-auto">
<CalendlyIframe class="w-full h-screen overflow-hidden" />
Expand Down
50 changes: 23 additions & 27 deletions nuxt-frontend/components/error404/index.vue
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
<template>
<div>
<Header />
<div
class="container flex items-center justify-center flex-col my-0 mx-auto py-[150px] px-[5%] min-h-[50vh] xll:min-h-[79vh]"
>
<div class="flex flex-row my-0 mx-auto text-center">
<img :src="firstErrorLetter" alt="404" />
<img :src="middleErrorLetter" class="m-4 w-[6.5rem]" alt="404" />
<img :src="lastErrorLetter" alt="404" />
</div>
<h1 class="mt-8 text-center text-[1.4rem] leading-8">
The page you’re looking for was moved, renamed or might never existed.
</h1>
<router-link
class="my-16 gradient-border-btn flex flex-row items-center"
to="/"
>
<Icon
class="arrow w-6 h-6 fa text-[#f2709c] text-[2.1rem] mr-[5px]"
name="fa6-solid:arrow-left"
id="leftArrow"
/>
<span class="text-center font-bold text-[1.1rem]"
>Back to Home page</span
>
</router-link>
<Header />
<div
class="container flex items-center justify-center flex-col my-0 mx-auto py-[150px] px-[5%] min-h-[50vh] xll:min-h-[79vh]"
>
<div class="flex flex-row my-0 mx-auto text-center">
<img :src="firstErrorLetter" alt="404" />
<img :src="middleErrorLetter" class="m-4 w-[6.5rem]" alt="404" />
<img :src="lastErrorLetter" alt="404" />
</div>
<NewFooter />
<h1 class="mt-8 text-center text-[1.4rem] leading-8">
The page you’re looking for was moved, renamed or might never existed.
</h1>
<router-link
class="my-16 gradient-border-btn flex flex-row items-center"
to="/"
>
<Icon
class="arrow w-6 h-6 fa text-[#f2709c] text-[2.1rem] mr-[5px]"
name="fa6-solid:arrow-left"
id="leftArrow"
/>
<span class="text-center font-bold text-[1.1rem]">Back to Home page</span>
</router-link>
</div>
<NewFooter />
</template>

<script>
Expand Down
10 changes: 5 additions & 5 deletions nuxt-frontend/components/home-new/ServiceSectionMobile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -67,36 +67,36 @@ export default {
{
title: "Mobile Development",
content:
"Whether your goal is to acquire new users, improve your retention rate, or increase in-app sales, our team will guide you based on our decade-long experience. <span class='font-bold'>From native to hybrid, we've got you covered.</span>",
"Whether your goal is to acquire new users, improve your retention rate, or increase in-app sales, our team will guide you based on our decade-long experience. <span class='sub-h3-semibold'>From native to hybrid, we've got you covered.</span>",
image: "/images/why/why-canopas-mobile-1.webp",
bullet: "/images/why/why-canopas-dot-1.svg",
url: "/mobile-app-development",
},
{
title: "Web Development",
content:
"Whether you need help with websites, web apps, an admin panel, an analytical dashboard, or desktop apps, our engineers will develop <span class='font-bold'>scalable backend and front-end solutions.</span>",
"Whether you need help with websites, web apps, an admin panel, an analytical dashboard, or desktop apps, our engineers will develop <span class='sub-h3-semibold'>scalable backend and front-end solutions.</span>",
image: "/images/why/why-canopas-mobile-2.webp",
bullet: "/images/why/why-canopas-dot-2.svg",
},
{
title: "Custom Software Development",
content:
"<span class='font-bold'>Unlock your business growth with tailored solutions</span> for unique business needs, enabling scalability, seamless integration, competitive edge, long-term cost efficiency, and enhanced security.",
"<span class='sub-h3-semibold'>Unlock your business growth with tailored solutions</span> for unique business needs, enabling scalability, seamless integration, competitive edge, long-term cost efficiency, and enhanced security.",
image: "/images/why/why-canopas-mobile-3.webp",
bullet: "/images/why/why-canopas-dot-3.svg",
},
{
title: "UI/UX Design",
content:
"We design user-centered UI/UX followed by user testing. <span class='font-bold'>We make design decisions based on only one thing: Data.</span> Because it ensures our clients get value from our work.",
"We design user-centered UI/UX followed by user testing. <span class='sub-h3-semibold'>We make design decisions based on only one thing: Data.</span> Because it ensures our clients get value from our work.",
image: "/images/why/why-canopas-mobile-4.webp",
bullet: "/images/why/why-canopas-dot-1.svg",
},
{
title: "Bug Fixing and Maintenance",
content:
"Looking to fix bugs in your app? We've helped multiple clients fix bugs and later added new features to match their vision. Plus, <span class='font-bold'>We offer 6 months of FREE maintenance on our work.</span>",
"Looking to fix bugs in your app? We've helped multiple clients fix bugs and later added new features to match their vision. Plus, <span class='sub-h3-semibold'>We offer 6 months of FREE maintenance on our work.</span>",
image: "/images/why/why-canopas-mobile-5.webp",
bullet: "/images/why/why-canopas-dot-1.svg",
},
Expand Down
2 changes: 1 addition & 1 deletion nuxt-frontend/pages/author/[slug].vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<section class="container min-h-[50vh]">
<div
v-if="status == config.NOT_FOUND"
class="h-1/2 flex text-[1.4rem] text-black-900 items-center justify-center"
class="h-[50vh] flex text-[1.4rem] text-black-900 items-center justify-center"
>
{{ config.POST_NOT_FOUND_MESSAGE }}
</div>
Expand Down
Loading

0 comments on commit bdcee7f

Please sign in to comment.