From 8edda7ae5eeecd3ccf604bde6f95b6eb582caca6 Mon Sep 17 00:00:00 2001
From: Shubham Pawar <82868470+srp-pawar@users.noreply.github.com>
Date: Wed, 13 Mar 2024 18:16:56 +0530
Subject: [PATCH] completed End to End Flow for Leads
---
.../users/graphql/queries/addCampaign.ts | 1 +
.../src/pages/campaigns/CampaignContext.tsx | 6 +-
.../src/pages/campaigns/CampaignDate.tsx | 48 +++---
.../src/pages/campaigns/CampaignDetails.tsx | 19 ++-
.../twenty-front/src/pages/campaigns/Lead.tsx | 41 +++--
.../src/pages/campaigns/MessagingChannel.tsx | 96 +++++++++---
...mpaignDate.tsx => PreviewCampaignDate.tsx} | 16 +-
.../campaigns/PreviewCampaignDetailsTab.tsx | 13 +-
.../campaigns/PreviewMessagingChannel.tsx | 17 +-
.../src/pages/campaigns/PreviewPage.tsx | 147 +++++++++---------
.../src/pages/campaigns/PreviewSpecialty.tsx | 8 +-
11 files changed, 245 insertions(+), 167 deletions(-)
rename packages/twenty-front/src/pages/campaigns/{StyledPreviewCampaignDate.tsx => PreviewCampaignDate.tsx} (75%)
diff --git a/packages/twenty-front/src/modules/users/graphql/queries/addCampaign.ts b/packages/twenty-front/src/modules/users/graphql/queries/addCampaign.ts
index 5a0455a0bd8a..49cf2d08a6a0 100644
--- a/packages/twenty-front/src/modules/users/graphql/queries/addCampaign.ts
+++ b/packages/twenty-front/src/modules/users/graphql/queries/addCampaign.ts
@@ -10,6 +10,7 @@ export const ADD_CAMPAIGN = gql`
endDate
campaignName
specialtyType
+ leads
activityTargets {
edges {
node {
diff --git a/packages/twenty-front/src/pages/campaigns/CampaignContext.tsx b/packages/twenty-front/src/pages/campaigns/CampaignContext.tsx
index 92fca57aa377..9a6102e73f39 100644
--- a/packages/twenty-front/src/pages/campaigns/CampaignContext.tsx
+++ b/packages/twenty-front/src/pages/campaigns/CampaignContext.tsx
@@ -34,6 +34,8 @@ const CampaignContext = () => {
specialtyType: '',
subSpecialtyType: '',
leads: '',
+ startDate: '',
+ endDate: '',
});
return (
@@ -45,7 +47,7 @@ const CampaignContext = () => {
campaignData,
setCampaignData,
leadData,
- setLeadData
+ setLeadData,
}}
>
@@ -54,4 +56,4 @@ const CampaignContext = () => {
);
};
-export default CampaignContext;
\ No newline at end of file
+export default CampaignContext;
diff --git a/packages/twenty-front/src/pages/campaigns/CampaignDate.tsx b/packages/twenty-front/src/pages/campaigns/CampaignDate.tsx
index b341e46dcfad..81f5370c9ffd 100644
--- a/packages/twenty-front/src/pages/campaigns/CampaignDate.tsx
+++ b/packages/twenty-front/src/pages/campaigns/CampaignDate.tsx
@@ -1,14 +1,14 @@
/* eslint-disable no-restricted-imports */
-import { useState } from 'react';
+import React from 'react';
import styled from '@emotion/styled';
import { Section } from '@react-email/components';
import { IconArrowLeft } from '@tabler/icons-react';
import { IconArrowRight } from '@tabler/icons-react';
import { Button } from 'tsup.ui.index';
+import { H2Title } from '@/ui/display/typography/components/H2Title';
import DateTimePicker from '@/ui/input/components/internal/date/components/DateTimePicker';
import { useCampaign } from '~/pages/campaigns/CampaignUseContext';
-import { H2Title } from '@/ui/display/typography/components/H2Title';
const StyledCard = styled.div`
border: 1px solid ${({ theme }) => theme.border.color.medium};
@@ -30,18 +30,19 @@ const StyledInputCard = styled.div`
display: flex;
flex-direction: column;
justify-content: center;
- height: 70%;
- justify-content: space-around;
+ height: 65%;
+ justify-content: space-between;
width: 70%;
align-items: center;
`;
const StyledTitleCard = styled.div`
+ /* align-items: center; */
color: ${({ theme }) => theme.font.color.secondary};
display: flex;
flex-direction: column;
height: 10%;
- width: 70%;
+ width: 100%;
justify-content: flex-start;
`;
@@ -59,25 +60,29 @@ const StyledLabel = styled.span`
`;
export const CampaignDate = () => {
- const { setCurrentStep, currentStep } = useCampaign();
-
- const [startDate, setStartDate] = useState(new Date());
- const [endDate, setEndDate] = useState(new Date());
+ const { setCurrentStep, currentStep, campaignData, setCampaignData } =
+ useCampaign();
return (
<>
-
-
-
+
+
Start Date
setStartDate(startDate)}
+ value={campaignData?.startDate}
+ selected={campaignData?.startDate}
+ onChange={(date) => {
+ setCampaignData({
+ ...campaignData,
+ startDate: date,
+ });
+ }}
minDate={new Date()}
showTimeInput
/>
@@ -85,8 +90,15 @@ export const CampaignDate = () => {
End Date
setEndDate(endDate)}
- minDate={startDate}
+ value={campaignData?.endDate}
+ selected={campaignData?.endDate}
+ onChange={(date) => {
+ setCampaignData({
+ ...campaignData,
+ endDate: date,
+ });
+ }}
+ minDate={campaignData.startDate}
showTimeInput
/>
diff --git a/packages/twenty-front/src/pages/campaigns/CampaignDetails.tsx b/packages/twenty-front/src/pages/campaigns/CampaignDetails.tsx
index 86bcb3038188..06f6a0b157c8 100644
--- a/packages/twenty-front/src/pages/campaigns/CampaignDetails.tsx
+++ b/packages/twenty-front/src/pages/campaigns/CampaignDetails.tsx
@@ -71,7 +71,8 @@ const StyledTitle = styled.h3`
`;
export const CampaignDetails = () => {
- const { setCurrentStep, currentStep } = useCampaign();
+ const { setCurrentStep, campaignData, setCampaignData, currentStep } =
+ useCampaign();
const handleCampaignChange = (_event: Event | undefined): void => {
throw new Error('Function not implemented.');
};
@@ -89,10 +90,14 @@ export const CampaignDetails = () => {
description="Your Campaign name will be displayed in Campaign List"
/>
handleCampaignChange(event)}
+ value={campaignData?.campaignName}
+ onChange={(e) =>
+ setCampaignData({
+ ...campaignData,
+ campaignName: e,
+ })
+ }
name="campaignName"
required
fullWidth
@@ -107,11 +112,13 @@ export const CampaignDetails = () => {
/>