Sort all photo sets newest to oldest

This commit is contained in:
Sam Becker 2023-11-07 20:46:25 -06:00
parent c538dda7d2
commit d9e0a80ca7
5 changed files with 20 additions and 6 deletions

View File

@ -41,6 +41,7 @@ export default function PhotoDetailPage({
tag={tag}
photos={photos}
selectedPhoto={photo}
dateRange={dateRange}
/>}
/>}
{camera &&

View File

@ -60,7 +60,7 @@ export default function PhotoSetHeader({
)}>
{start === end
? start
: <>{start}<br /> {end}</>}
: <>{end}<br /> {start}</>}
</span>
</div>]}
/>

View File

@ -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

View File

@ -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}
`;

View File

@ -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}
/>
);
}