Vercel/src/tag/TagHeader.tsx
Sam Becker b7cb6715b7
Speed up category hovers (#279)
* Extract out ShareHover components
* Refactor hover/category state
* Rename photo query options types
* Restore category count slice of app state
* Streamline entity hover headers
* Standardize swr keys
* Suppress hover counts to years
* Refine entity hover design
* Make image hovers opt out
2025-07-04 12:19:45 -05:00

55 lines
1.3 KiB
TypeScript

import { Photo, PhotoDateRange } from '@/photo';
import PhotoTag from './PhotoTag';
import { descriptionForTaggedPhotos, isTagFavs } from '.';
import PhotoHeader from '@/photo/PhotoHeader';
import FavsTag from './FavsTag';
import { AI_TEXT_GENERATION_ENABLED } from '@/app/config';
import { getAppText } from '@/i18n/state/server';
export default async function TagHeader({
tag,
photos,
selectedPhoto,
indexNumber,
count,
dateRange,
}: {
tag: string
photos: Photo[]
selectedPhoto?: Photo
indexNumber?: number
count?: number
dateRange?: PhotoDateRange
}) {
const appText = await getAppText();
return (
<PhotoHeader
tag={tag}
entity={isTagFavs(tag)
? <FavsTag
contrast="high"
showHover={false}
/>
: <PhotoTag
tag={tag}
contrast="high"
showHover={false}
/>}
entityVerb={appText.category.taggedPhotos}
entityDescription={descriptionForTaggedPhotos(
photos,
appText,
undefined,
count,
)}
photos={photos}
selectedPhoto={selectedPhoto}
indexNumber={indexNumber}
count={count}
dateRange={dateRange}
hasAiTextGeneration={AI_TEXT_GENERATION_ENABLED}
includeShareButton
/>
);
}