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 ShareButton from '@/components/ShareButton';
|
||||||
import AnimateItems from '@/components/AnimateItems';
|
import AnimateItems from '@/components/AnimateItems';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import {
|
import { HIGH_DENSITY_GRID } from '@/site/config';
|
||||||
HIGH_DENSITY_GRID,
|
|
||||||
SHOW_PHOTO_TITLE_FALLBACK_TEXT,
|
|
||||||
} from '@/site/config';
|
|
||||||
import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid';
|
import DivDebugBaselineGrid from '@/components/DivDebugBaselineGrid';
|
||||||
import PhotoPrevNext from './PhotoPrevNext';
|
import PhotoPrevNext from './PhotoPrevNext';
|
||||||
import PhotoLink from './PhotoLink';
|
import PhotoLink from './PhotoLink';
|
||||||
|
import { formatDate } from '@/utility/date';
|
||||||
|
|
||||||
export default function PhotoHeader({
|
export default function PhotoHeader({
|
||||||
tag,
|
tag,
|
||||||
@ -80,14 +78,14 @@ export default function PhotoHeader({
|
|||||||
<span className={clsx(
|
<span className={clsx(
|
||||||
'inline-flex uppercase col-span-2 md:col-span-1',
|
'inline-flex uppercase col-span-2 md:col-span-1',
|
||||||
)}>
|
)}>
|
||||||
{entity ?? (
|
{entity ?? (selectedPhoto
|
||||||
(selectedPhoto?.title || SHOW_PHOTO_TITLE_FALLBACK_TEXT)
|
? <PhotoLink
|
||||||
? <PhotoLink
|
photo={selectedPhoto}
|
||||||
photo={selectedPhoto}
|
className="uppercase font-bold"
|
||||||
className="uppercase font-bold"
|
>
|
||||||
/>
|
{selectedPhoto.title || formatDate(selectedPhoto.takenAt, 'tiny')}
|
||||||
: <>X of X</>
|
</PhotoLink>
|
||||||
)}
|
: undefined)}
|
||||||
</span>
|
</span>
|
||||||
<span className={clsx(
|
<span className={clsx(
|
||||||
'inline-flex',
|
'inline-flex',
|
||||||
|
|||||||
@ -114,7 +114,7 @@ export default function PhotoPrevNext({
|
|||||||
prefetch
|
prefetch
|
||||||
>
|
>
|
||||||
<FiChevronLeft
|
<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>
|
<span className="hidden sm:inline-block">PREV</span>
|
||||||
</PhotoLink>
|
</PhotoLink>
|
||||||
@ -133,7 +133,7 @@ export default function PhotoPrevNext({
|
|||||||
prefetch
|
prefetch
|
||||||
>
|
>
|
||||||
<FiChevronRight
|
<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>
|
<span className="hidden sm:inline-block">NEXT</span>
|
||||||
</PhotoLink>
|
</PhotoLink>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import { format, parseISO, parse } from 'date-fns';
|
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_SHORT = 'dd MMM yyyy';
|
||||||
const DATE_STRING_FORMAT_MEDIUM = 'dd MMM yy h:mma';
|
const DATE_STRING_FORMAT_MEDIUM = 'dd MMM yy h:mma';
|
||||||
const DATE_STRING_FORMAT = 'dd MMM yyyy 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 AmbiguousTimestamp = number | string;
|
||||||
|
|
||||||
type Length = 'short' | 'medium' | 'long';
|
type Length = 'tiny' | 'short' | 'medium' | 'long';
|
||||||
|
|
||||||
export const formatDate = (date: Date, length: Length = 'long') => {
|
export const formatDate = (date: Date, length: Length = 'long') => {
|
||||||
switch (length) {
|
switch (length) {
|
||||||
|
case 'tiny':
|
||||||
|
return format(date, DATE_STRING_FORMAT_TINY);
|
||||||
case 'short':
|
case 'short':
|
||||||
return format(date, DATE_STRING_FORMAT_SHORT);
|
return format(date, DATE_STRING_FORMAT_SHORT);
|
||||||
case 'medium':
|
case 'medium':
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user