Skip to content

Commit 87ab980

Browse files
authored
Merge pull request #469 from CodebilityDev/feat/project-page-add-new-fields
Feat/project-page-add-new-fields
2 parents ac04ff7 + aa6c57f commit 87ab980

30 files changed

Lines changed: 1769 additions & 543 deletions

‎apps/codebility/app/(marketing)/layout.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"use server";
2+
23
import { ModalProviderMarketing } from "@/components/providers/modal-provider-marketing";
34

45
export default async function MarketingLayout({
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
1+
import ForceScrollTop from "./_components/landing/ForceScrollTop";
12
import Admins from "./_components/landing/LandingAdmins";
23
import Features from "./_components/landing/LandingFeatures";
34
import Hero from "./_components/landing/LandingHero";
5+
import InternSectionContainer from "./_components/landing/LandingInternSection";
46
import Partners from "./_components/landing/LandingPartners";
57
import WhyChooseUs from "./_components/landing/LandingWhyChoose-us";
68
import WorkWithUs from "./_components/landing/LandingWorkWithUs";
79
import Calendly from "./_components/MarketingCalendly";
810
import Footer from "./_components/MarketingFooter";
911
import Navigation from "./_components/MarketingNavigation";
1012
import Testimonials from "./_components/testimonial/Testimonials";
11-
import InternSectionContainer from "./_components/landing/LandingInternSection";
12-
import ForceScrollTop from "./_components/landing/ForceScrollTop";
1313

1414
export const dynamic = "force-dynamic";
1515
export const revalidate = 0;
1616

1717
export default async function Index() {
1818
return (
1919
<div className="bg-black-400 relative w-full overflow-x-hidden">
20-
2120
<Navigation />
2221
<Hero />
2322
<Features />
@@ -29,8 +28,6 @@ export default async function Index() {
2928
<Testimonials />
3029
<Calendly />
3130
<Footer />
32-
33-
3431
</div>
3532
);
36-
}
33+
}

‎apps/codebility/app/(marketing)/profiles/_components/CodevCard.tsx‎

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,11 @@ const CodevCard = ({ codev, color }: Props) => {
125125
onMouseEnter={() => setHovered(true)}
126126
onMouseLeave={() => setHovered(false)}
127127
>
128-
<div
129-
onClick={() => window.location.href = `https://www.codebility.tech/profiles/${codev.id}`}
130-
className="group relative flex h-full w-full flex-col items-center justify-between rounded-lg border border-white/20 bg-white/10 p-4 shadow-2xl backdrop-blur-md transition-all duration-300 cursor-pointer hover:bg-white/20 hover:scale-[1.02] dark:border-white/10 dark:bg-white/5 dark:hover:bg-white/10"
128+
<div
129+
onClick={() =>
130+
(window.location.href = `https://www.codebility.tech/profiles/${codev.id}`)
131+
}
132+
className="group relative flex h-full w-full cursor-pointer flex-col items-center justify-between rounded-lg border border-white/20 bg-white/10 p-4 shadow-2xl backdrop-blur-md transition-all duration-300 hover:scale-[1.02] hover:bg-white/20 dark:border-white/10 dark:bg-white/5 dark:hover:bg-white/10"
131133
>
132134
{/* Background decoration */}
133135
<div className="from-customBlue-50/30 dark:from-customBlue-950/10 absolute inset-0 bg-gradient-to-br to-purple-50/30 opacity-0 transition-opacity duration-300 group-hover:opacity-100 dark:to-purple-950/10" />
@@ -202,7 +204,11 @@ const CodevCard = ({ codev, color }: Props) => {
202204
<Tooltip delayDuration={100}>
203205
<TooltipTrigger asChild>
204206
{/* Line 217: Added stopPropagation to prevent card click when button is clicked */}
205-
<Link href={`/profiles/${codev.id}`} target="_blank" onClick={(e) => e.stopPropagation()}>
207+
<Link
208+
href={`/profiles/${codev.id}`}
209+
target="_blank"
210+
onClick={(e) => e.stopPropagation()}
211+
>
206212
<Button
207213
variant="outline"
208214
size="icon"
@@ -241,10 +247,17 @@ const CodevCard = ({ codev, color }: Props) => {
241247
/>
242248
) : null}
243249
</div>
244-
<CodevHireCodevButton codevId={codev.id} hovered={hovered} />
250+
<div
251+
className="relative z-20"
252+
onMouseEnter={(e) => e.stopPropagation()}
253+
onMouseLeave={(e) => e.stopPropagation()}
254+
onClick={(e) => e.stopPropagation()}
255+
>
256+
<CodevHireCodevButton codevId={codev.id} />
257+
</div>
245258
</div>
246259
</div>
247260
);
248261
};
249262

250-
export default CodevCard;
263+
export default CodevCard;

‎apps/codebility/app/(marketing)/profiles/_components/CodevContainer.tsx‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,28 @@ import { motion } from "framer-motion";
99

1010
export default function CodevContainer() {
1111
return (
12-
<div className="flex flex-col gap-6 relative">
12+
<div className="relative flex flex-col gap-6">
1313
<motion.div
1414
variants={fadeInOutDownToUp}
1515
initial="hidden"
1616
whileInView="visible"
17-
className="mx-auto relative z-10"
17+
className="relative z-10 mx-auto"
1818
>
1919
<H2 className="text-white drop-shadow-lg">Codevs</H2>
2020
</motion.div>
2121
<motion.div
2222
variants={fadeInOutDownToUp}
2323
initial="hidden"
2424
whileInView="visible"
25-
className="mx-auto max-w-[700px] text-center relative z-10 bg-white/5 backdrop-blur-sm rounded-2xl p-6 border border-white/10 shadow-xl"
25+
className="relative z-10 mx-auto max-w-[700px] rounded-2xl border border-white/10 bg-white/5 p-6 text-center shadow-xl backdrop-blur-sm"
2626
>
27-
<Heading3 className="text-white mb-4">Meet Our Skilled Developer Network</Heading3>
27+
<Heading3 className="mb-4 text-white">
28+
Meet Our Skilled Developer Network
29+
</Heading3>
2830
<IntroText className="text-gray-200">
29-
Discover our carefully vetted CoDevs ready to join your team. Each developer
30-
brings proven expertise, strong communication skills, and a passion for delivering
31-
exceptional results on your projects.
31+
Discover our carefully vetted CoDevs ready to join your team. Each
32+
developer brings proven expertise, strong communication skills, and a
33+
passion for delivering exceptional results on your projects.
3234
</IntroText>
3335
</motion.div>
3436
</div>
Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
11
"use client";
22

33
import { useModal } from "@/hooks/use-modal";
4+
45
import { cn } from "@codevs/ui";
56
import { Button } from "@codevs/ui/button";
67

78
interface CodevHireCodevButtonProps {
8-
codevId: string;
9-
hovered: boolean;
9+
codevId: string;
1010
}
1111

12-
export function CodevHireCodevButton({
13-
codevId,
14-
hovered,
15-
}: CodevHireCodevButtonProps) {
16-
const { onOpen } = useModal();
12+
export function CodevHireCodevButton({ codevId }: CodevHireCodevButtonProps) {
13+
const { onOpen } = useModal();
1714

18-
return (
19-
<>
20-
<Button
21-
variant="purple"
22-
size="sm"
23-
className={cn(
24-
"h-[1.75rem] py-0.5 px-3 text-xs rounded-md hover:bg-purple-600 transition-opacity duration-200",
25-
hovered ? "opacity-100" : "opacity-0",
26-
)}
27-
onClick={() => onOpen("marketingCodevHireCodevModal", codevId)}
28-
>
29-
Hire Me
30-
</Button>
31-
</>
32-
);
15+
return (
16+
<>
17+
<Button
18+
variant="purple"
19+
size="sm"
20+
className="h-[1.75rem] rounded-md bg-purple-600 px-3 py-0.5 text-xs opacity-100"
21+
onClick={(e) => {
22+
e.stopPropagation();
23+
onOpen("marketingCodevHireCodevModal", codevId);
24+
}}
25+
onMouseEnter={(e) => e.stopPropagation()}
26+
onMouseLeave={(e) => e.stopPropagation()}
27+
>
28+
Hire Me
29+
</Button>
30+
</>
31+
);
3332
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export * from "./layout";
2+
export * from "./ui";
3+
export * from "./visuals";
4+
export * from "./tabs";
5+
export * from "../_context";

0 commit comments

Comments
 (0)