Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 4 additions & 35 deletions apps/web/src/components/footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@ import { useEffect, useState } from "react";

import { Image } from "@/components/image";

function getNextRandomIndex(length: number, prevIndex: number): number {
if (length <= 1) return 0;
let next = prevIndex;
while (next === prevIndex) {
next = Math.floor(Math.random() * length);
}
return next;
}

const vsList = [
{ slug: "otter", name: "Otter.ai" },
{ slug: "granola", name: "Granola" },
Expand Down Expand Up @@ -248,37 +239,18 @@ function ResourcesLinks() {
<li>
<Link
to={currentUseCase.to}
className="group text-sm text-neutral-600 hover:text-stone-600 transition-colors no-underline hover:underline hover:decoration-dotted"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors no-underline hover:underline hover:decoration-dotted"
aria-label={`Hyprnote for ${currentUseCase.label}`}
onMouseEnter={() => {
setUseCaseIndex((prev) =>
getNextRandomIndex(useCasesList.length, prev),
);
}}
onFocus={() => {
setUseCaseIndex((prev) =>
getNextRandomIndex(useCasesList.length, prev),
);
}}
>
👍 for{" "}
<span className="blur-xs group-hover:blur-none group-focus:blur-none transition-all duration-150">
{currentUseCase.label}
</span>
👍 for {currentUseCase.label}
</Link>
</li>
<li>
<Link
to="/vs/$slug/"
params={{ slug: currentVs.slug }}
className="group text-sm text-neutral-600 hover:text-stone-600 transition-colors no-underline hover:underline hover:decoration-dotted"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors no-underline hover:underline hover:decoration-dotted"
aria-label={`Versus ${currentVs.name}`}
onMouseEnter={() => {
setVsIndex((prev) => getNextRandomIndex(vsList.length, prev));
}}
onFocus={() => {
setVsIndex((prev) => getNextRandomIndex(vsList.length, prev));
}}
>
<img
src="/api/images/hyprnote/icon.png"
Expand All @@ -287,10 +259,7 @@ function ResourcesLinks() {
height={12}
className="size-4 rounded border border-neutral-100 inline"
/>{" "}
vs{" "}
<span className="blur-xs group-hover:blur-none group-focus:blur-none transition-all duration-150">
{currentVs.name}
</span>
vs {currentVs.name}
</Link>
</li>
</ul>
Expand Down
6 changes: 3 additions & 3 deletions apps/web/src/routes/_view/product/ai-assistant.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const Route = createFileRoute("/_view/product/ai-assistant")({
component: Component,
head: () => ({
meta: [
{ title: "AI Assistant - Hyprnote" },
{ title: "AI Chat - Hyprnote" },
{
name: "description",
content:
Expand Down Expand Up @@ -46,10 +46,10 @@ function HeroSection() {
<div className="bg-linear-to-b from-stone-50/30 to-stone-100/30 px-6 py-12 lg:py-20">
<header className="text-center max-w-4xl mx-auto">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight text-stone-600 mb-6 flex items-center justify-center flex-wrap">
<span>AI assistant</span>
<span>AI Chat</span>
<img
src="/api/images/hyprnote/ai-assistant.gif"
alt="AI assistant"
alt="AI Chat"
className="w-12 h-12 sm:w-16 sm:h-16 object-cover rounded-full inline-block ml-1 mr-2 sm:mr-0"
/>
<span>for your meetings</span>
Expand Down