Fallback to dates in photo nav
This commit is contained in:
parent
dcc5df0a40
commit
ae8da21ae5
@ -8,13 +8,11 @@ import {
|
||||
import ShareButton from '@/components/ShareButton';
|
||||
import AnimateItems from '@/components/AnimateItems';
|
||||
import { ReactNode } from 'react';
|
||||
import {
|
||||
HIGH_DENSITY_GRID,
|
||||
SHOW_PHOTO_TITLE_FALLBACK_TEXT,
|
||||
} from '@/site/config';
|
||||
import { HIGH_DENSITY_GRID } from '@/site/config';
|
||||
import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid';
|
||||
import PhotoPrevNext from './PhotoPrevNext';
|
||||
import PhotoLink from './PhotoLink';
|
||||
import { formatDate } from '@/utility/date';
|
||||
|
||||
export default function PhotoHeader({
|
||||
tag,
|
||||
@ -80,14 +78,14 @@ export default function PhotoHeader({
|
||||
<span className={clsx(
|
||||
'inline-flex uppercase col-span-2 md:col-span-1',
|
||||
)}>
|
||||
{entity ?? (
|
||||
(selectedPhoto?.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT)
|
||||
? <PhotoLink
|
||||
photo={selectedPhoto}
|
||||
className="uppercase font-bold"
|
||||
/>
|
||||
: <>X of X</>
|
||||
)}
|
||||
{entity ?? (selectedPhoto
|
||||
? <PhotoLink
|
||||
photo={selectedPhoto}
|
||||
className="uppercase font-bold"
|
||||
>
|
||||
{selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny')}
|
||||
</PhotoLink>
|
||||
: undefined)}
|
||||
</span>
|
||||
<span className={clsx(
|
||||
'inline-flex',
|
||||
|
||||
@ -114,7 +114,7 @@ export default function PhotoPrevNext({
|
||||
prefetch
|
||||
>
|
||||
<FiChevronLeft
|
||||
className="sm:hidden text-[1.2rem] translate-y-[-1.5px]"
|
||||
className="sm:hidden text-[1.1rem] translate-y-[-1px]"
|
||||
/>
|
||||
<span className="hidden sm:inline-block">PREV</span>
|
||||
</PhotoLink>
|
||||
@ -133,7 +133,7 @@ export default function PhotoPrevNext({
|
||||
prefetch
|
||||
>
|
||||
<FiChevronRight
|
||||
className="sm:hidden text-[1.2rem] translate-y-[-1.5px]"
|
||||
className="sm:hidden text-[1.1rem] translate-y-[-1px]"
|
||||
/>
|
||||
<span className="hidden sm:inline-block">NEXT</span>
|
||||
</PhotoLink>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { format, parseISO, parse } from 'date-fns';
|
||||
|
||||
const DATE_STRING_FORMAT_TINY = 'dd MMM yy';
|
||||
const DATE_STRING_FORMAT_SHORT = 'dd MMM yyyy';
|
||||
const DATE_STRING_FORMAT_MEDIUM = 'dd MMM yy h:mma';
|
||||
const DATE_STRING_FORMAT = 'dd MMM yyyy h:mma';
|
||||
@ -7,10 +8,12 @@ const DATE_STRING_FORMAT_POSTGRES = 'yyyy-MM-dd HH:mm:ss';
|
||||
|
||||
type AmbiguousTimestamp = number | string;
|
||||
|
||||
type Length = 'short' | 'medium' | 'long';
|
||||
type Length = 'tiny' | 'short' | 'medium' | 'long';
|
||||
|
||||
export const formatDate = (date: Date, length: Length = 'long') => {
|
||||
switch (length) {
|
||||
case 'tiny':
|
||||
return format(date, DATE_STRING_FORMAT_TINY);
|
||||
case 'short':
|
||||
return format(date, DATE_STRING_FORMAT_SHORT);
|
||||
case 'medium':
|
||||
|
||||
Loading…
Reference in New Issue
Block a user