mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-07-15 17:43:36 +00:00
* chore: cleaning gitignore * formating and env documentation * feat: context switching of hotel/airline depndent on env var via middleware * fixed alignment and building * wrong file * prods * fixed applying style * better session cookie management * tentative session storage with maybe using airtable * migrated api of ingestion * events and products apge * fixing build * 13 create outline for research paper draft (#18) * updated outline for paper from issue * extra paper sections and some formalization of series data * algorithms and acknowledgements * updated outline for paper from issue * upadted text formating * event unification * refactor tracking to ues callbacks instead of refs * implement a pricing display api with session passing * moved middleware to proxy according to new changes in Nextjs * refactoed kafka ingestion to go via backend not web-db * Refactor docker-compose services to use individual Dockerfiles (#20) * Initial plan * Refactor services into individual Dockerfiles Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> * Add EXPOSE directives to all Dockerfiles with port documentation Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> * fixing small bugs and adding exepriments to tracking * added some doc
49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
'use client';
|
|
|
|
import Link from 'next/link';
|
|
import { usePathname } from 'next/navigation';
|
|
import type { EventName } from '@/lib/events';
|
|
|
|
const dispatchInteraction = (eventName: EventName, metadata?: Record<string, unknown>) => {
|
|
const e = new CustomEvent('definedInteraction', {
|
|
detail: { eventName, metadata },
|
|
});
|
|
document.dispatchEvent(e);
|
|
};
|
|
|
|
const NavLink = ({ href, children }: { href: string; children: React.ReactNode }) => {
|
|
const path = usePathname();
|
|
const isActive = path === href;
|
|
|
|
return (
|
|
<Link
|
|
href={href}
|
|
className={`px-4 py-2 rounded-md transition-colors ${
|
|
isActive
|
|
? 'bg-[var(--accent-primary)] text-white font-semibold'
|
|
: 'hover:bg-[var(--accent-primary-light)] text-[var(--text-primary)]'
|
|
}`}
|
|
>
|
|
{children}
|
|
</Link>
|
|
);
|
|
};
|
|
|
|
export default function Navigation() {
|
|
return (
|
|
<nav className="bg-[var(--bg-primary)] border-b border-gray-200 shadow-sm">
|
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
<div className="flex justify-between h-16">
|
|
<div className="flex items-center space-x-1">
|
|
<NavLink href="/">Home</NavLink>
|
|
<NavLink href="/products">Products</NavLink>
|
|
<NavLink href="/search">Search</NavLink>
|
|
<NavLink href="/cart">Cart</NavLink>
|
|
<NavLink href="/checkout">Checkout</NavLink>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
);
|
|
}
|