'use client'; import { useCallback, useEffect, useRef, useState } from 'react'; import { ArrowUpRight, DollarSign, Clock } from 'lucide-react'; import Image from 'next/image'; import Link from 'next/link'; import * as Badge from '@/components/ui/badge'; import * as LinkButton from '@/components/ui/link-button'; type TabKey = 'product' | 'engineering' | 'design'; const tabsData: { id: TabKey; label: string }[] = [ { id: 'product', label: 'Product' }, { id: 'engineering', label: 'Engineering' }, { id: 'design', label: 'Design' }, ]; const jobsData: Record< TabKey, { id: string; title: string; description: string; location: { name: string; flag: string }; type: string; salary: string; }[] > = { product: [ { id: 'prod1', title: 'Product Manager', description: 'Build innovative products that solve customer challenges.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'prod2', title: 'Marketing Specialist', description: 'Drive growth campaigns and strengthen brand presence.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'prod3', title: 'UI/UX Designer', description: 'Design user-friendly experiences for digital platforms.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'prod4', title: 'Data Analyst', description: 'Deliver insights from data to guide business strategy.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'prod5', title: 'Software Engineer', description: 'Develop scalable software systems for global teams.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'prod6', title: 'Customer Success Manager', description: 'Build long-term relationships and improve client outcomes.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, ], engineering: [ { id: 'eng1', title: 'Product Manager 2', description: 'Build innovative products that solve customer challenges.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'eng2', title: 'Marketing Specialist', description: 'Drive growth campaigns and strengthen brand presence.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'eng3', title: 'UI/UX Designer', description: 'Design user-friendly experiences for digital platforms.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'eng4', title: 'Data Analyst', description: 'Deliver insights from data to guide business strategy.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'eng5', title: 'Software Engineer', description: 'Develop scalable software systems for global teams.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'eng6', title: 'Customer Success Manager', description: 'Build long-term relationships and improve client outcomes.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, ], design: [ { id: 'des1', title: 'Product Manager 3', description: 'Build innovative products that solve customer challenges.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'des2', title: 'Marketing Specialist', description: 'Drive growth campaigns and strengthen brand presence.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'des3', title: 'UI/UX Designer', description: 'Design user-friendly experiences for digital platforms.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'des4', title: 'Data Analyst', description: 'Deliver insights from data to guide business strategy.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'des5', title: 'Software Engineer', description: 'Develop scalable software systems for global teams.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, { id: 'des6', title: 'Customer Success Manager', description: 'Build long-term relationships and improve client outcomes.', location: { name: 'United States', flag: 'https://alignui.com/images/blocks/flags/us.svg', }, type: 'Full-time', salary: '$100 - $120', }, ], }; export default function GlobalTeamCareersGrid() { const [activeTab, setActiveTab] = useState('product'); const containerRef = useRef(null); const buttonRefs = useRef>({ product: null, engineering: null, design: null, }); const [thumbLeft, setThumbLeft] = useState(4); const [thumbWidth, setThumbWidth] = useState(0); const repositionThumb = useCallback(() => { const container = containerRef.current; const activeEl = buttonRefs.current[activeTab]; if (!container || !activeEl) return; const containerRect = container.getBoundingClientRect(); const activeRect = activeEl.getBoundingClientRect(); const left = activeRect.left - containerRect.left + 0; setThumbLeft(left); setThumbWidth(activeRect.width); }, [activeTab]); useEffect(() => { repositionThumb(); const handle = () => repositionThumb(); window.addEventListener('resize', handle); const id = window.setInterval(repositionThumb, 250); return () => { window.removeEventListener('resize', handle); window.clearInterval(id); }; }, [repositionThumb]); return (
Join our global team

Exciting roles in modern work

Shape the future of digital tools and collaboration.

{tabsData.map((tab) => ( ))}
{tabsData.map((tab) => (
{jobsData[tab.id]?.map((job) => (
{job.title}
{job.description}
{job.location.name} {job.location.name}
・
{job.type}
・
{job.salary}
))}
))}

Looking for more opportunities to grow?

Explore all positions
); }