* 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
55 lines
1.3 KiB
TypeScript
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
|
|
/>
|
|
);
|
|
}
|