Sort all photo sets newest to oldest
This commit is contained in:
parent
c538dda7d2
commit
d9e0a80ca7
@ -41,6 +41,7 @@ export default function PhotoDetailPage({
|
||||
tag={tag}
|
||||
photos={photos}
|
||||
selectedPhoto={photo}
|
||||
dateRange={dateRange}
|
||||
/>}
|
||||
/>}
|
||||
{camera &&
|
||||
|
||||
@ -60,7 +60,7 @@ export default function PhotoSetHeader({
|
||||
)}>
|
||||
{start === end
|
||||
? start
|
||||
: <>{start}<br />– {end}</>}
|
||||
: <>{end}<br />– {start}</>}
|
||||
</span>
|
||||
</div>]}
|
||||
/>
|
||||
|
||||
@ -185,16 +185,26 @@ export const descriptionForPhotoSet = (
|
||||
photoLabelForCount(explicitCount ?? photos.length),
|
||||
].join(' ');
|
||||
|
||||
const sortPhotosByDate = (
|
||||
photos: Photo[],
|
||||
order: 'ASC' | 'DESC' = 'DESC'
|
||||
) =>
|
||||
[...photos].sort((a, b) => order === 'DESC'
|
||||
? b.takenAt.getTime() - a.takenAt.getTime()
|
||||
: a.takenAt.getTime() - b.takenAt.getTime());
|
||||
|
||||
export const dateRangeForPhotos = (
|
||||
photos: Photo[],
|
||||
explicitDateRange?: PhotoDateRange,
|
||||
) => {
|
||||
const photosSorted = sortPhotosByDate(photos);
|
||||
|
||||
const start = formatDateFromPostgresString(
|
||||
explicitDateRange?.start ?? photos[0].takenAtNaive,
|
||||
explicitDateRange?.start ?? photosSorted[photos.length - 1].takenAtNaive,
|
||||
true,
|
||||
);
|
||||
const end = formatDateFromPostgresString(
|
||||
explicitDateRange?.end ?? photos[photos.length - 1].takenAtNaive,
|
||||
explicitDateRange?.end ?? photosSorted[0].takenAtNaive,
|
||||
true
|
||||
);
|
||||
const description = start === end
|
||||
|
||||
@ -202,7 +202,7 @@ const sqlGetPhotosByTag = (
|
||||
SELECT * FROM photos
|
||||
WHERE ${tag}=ANY(tags)
|
||||
AND hidden IS NOT TRUE
|
||||
ORDER BY taken_at ASC
|
||||
ORDER BY taken_at DESC
|
||||
LIMIT ${limit}
|
||||
`;
|
||||
|
||||
@ -226,7 +226,7 @@ const sqlGetPhotosBySimulation = async (
|
||||
SELECT * FROM photos
|
||||
WHERE film_simulation=${simulation}
|
||||
AND hidden IS NOT TRUE
|
||||
ORDER BY taken_at ASC
|
||||
ORDER BY taken_at DESC
|
||||
LIMIT ${limit}
|
||||
`;
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { Photo } from '@/photo';
|
||||
import { Photo, PhotoDateRange } from '@/photo';
|
||||
import PhotoTag from './PhotoTag';
|
||||
import { descriptionForTaggedPhotos } from '.';
|
||||
import { pathForTagShare } from '@/site/paths';
|
||||
@ -9,11 +9,13 @@ export default function TagHeader({
|
||||
photos,
|
||||
selectedPhoto,
|
||||
count,
|
||||
dateRange,
|
||||
}: {
|
||||
tag: string
|
||||
photos: Photo[]
|
||||
selectedPhoto?: Photo
|
||||
count?: number
|
||||
dateRange?: PhotoDateRange
|
||||
}) {
|
||||
return (
|
||||
<PhotoSetHeader
|
||||
@ -24,6 +26,7 @@ export default function TagHeader({
|
||||
selectedPhoto={selectedPhoto}
|
||||
sharePath={pathForTagShare(tag)}
|
||||
count={count}
|
||||
dateRange={dateRange}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user