{
if (onLoad) {
onLoad();
diff --git a/src/photo/image-response/HomeImageResponse.tsx b/src/photo/image-response/HomeImageResponse.tsx
index 07e96e67..8ade1cd8 100644
--- a/src/photo/image-response/HomeImageResponse.tsx
+++ b/src/photo/image-response/HomeImageResponse.tsx
@@ -1,5 +1,6 @@
import { Photo } from '..';
-import PhotoGridImageResponse from './PhotoGridImageResponse';
+import ImageContainer from './components/ImageContainer';
+import ImagePhotoGrid from './components/ImagePhotoGrid';
export default function HomeImageResponse({
photos,
@@ -12,31 +13,16 @@ export default function HomeImageResponse({
width: number
height: number
}) {
- const grid = photos.length >= 12
- ? { colCount: 4, rowCount: 3 }
- : { colCount: 3, rowCount: 2 };
-
- const photosPerGrid = grid.colCount * grid.rowCount;
-
return (
-
+
+
+
);
}
diff --git a/src/photo/image-response/PhotoGridImageResponse.tsx b/src/photo/image-response/PhotoGridImageResponse.tsx
deleted file mode 100644
index 9c30ddc6..00000000
--- a/src/photo/image-response/PhotoGridImageResponse.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-import { getNextImageUrlForRequest } from '@/utility/image';
-import { Photo, titleForPhoto } from '..';
-
-export default function PhotoGridImageResponse({
- photos,
- request,
- nextImageWidth = 400,
- height,
- width,
- colCount,
- rowCount,
- gap = 12,
- verticalOffset,
-}: {
- photos: Photo[]
- request: Request
- nextImageWidth?: 200 | 400,
- height?: number
- width: number
- colCount: number
- rowCount: number
- gap?: number
- verticalOffset?: number
-}) {
- const imageWidth = (width - ((colCount - 1) * gap)) / colCount;
- const imageHeight = height
- ? (height - ((rowCount - 1) * gap)) / rowCount
- : undefined;
-
- return (
-
- {photos
- .slice(0, colCount * rowCount)
- .map((photo, index) => {
- const photoWidth = imageHeight
- ? imageHeight * photo.aspectRatio
- : imageWidth;
- const photoHeight = imageHeight ?? imageWidth / photo.aspectRatio;
- const horizontalOffset = imageHeight
- ? Math.abs((imageHeight * photo.aspectRatio - imageWidth) / 2)
- : undefined;
-
- return (
-
-

-
- );
- })}
-
- );
-}
diff --git a/src/photo/image-response/PhotoImageResponse.tsx b/src/photo/image-response/PhotoImageResponse.tsx
new file mode 100644
index 00000000..23110080
--- /dev/null
+++ b/src/photo/image-response/PhotoImageResponse.tsx
@@ -0,0 +1,55 @@
+import { Photo } from '..';
+import { NextImageWidth } from '@/utility/image';
+import { formatModelShort } from '@/utility/exif';
+import { AiFillApple } from 'react-icons/ai';
+import ImageCaption from './components/ImageCaption';
+import ImagePhotoGrid from './components/ImagePhotoGrid';
+
+export default function PhotoImageResponse({
+ photo,
+ request,
+ width,
+ height,
+ fontFamily,
+}: {
+ photo: Photo
+ request: Request
+ width: NextImageWidth
+ height: number
+ fontFamily: string
+}) {
+ return (
+
+
+
+ {photo.make === 'Apple' &&
+ }
+
+ {formatModelShort(photo.model)}
+
+
+ {photo.focalLengthFormatted}
+
+
+ {photo.fNumberFormatted}
+
+
+ {photo.isoFormatted}
+
+
+
+ );
+};
diff --git a/src/photo/image-response/PhotoOGImageResponse.tsx b/src/photo/image-response/PhotoOGImageResponse.tsx
deleted file mode 100644
index c615fc89..00000000
--- a/src/photo/image-response/PhotoOGImageResponse.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { Photo, titleForPhoto } from '..';
-import { getNextImageUrlForRequest } from '@/utility/image';
-import { formatModelShort } from '@/utility/exif';
-import { AiFillApple } from 'react-icons/ai';
-
-export default function PhotoOGImageResponse({
- photo,
- requestOrPhotoPath,
- width,
- height,
- fontFamily,
-}: {
- photo: Photo
- requestOrPhotoPath: Request | string
- width: number
- height: number
- fontFamily: string
-}) {
- return (
-
-

-
- {photo.make === 'Apple' &&
-
}
-
- {formatModelShort(photo.model)}
-
-
- {photo.focalLengthFormatted}
-
-
- {photo.fNumberFormatted}
-
-
- {photo.isoFormatted}
-
-
-
- );
-};
diff --git a/src/photo/image-response/TagImageResponse.tsx b/src/photo/image-response/TagImageResponse.tsx
new file mode 100644
index 00000000..2e620378
--- /dev/null
+++ b/src/photo/image-response/TagImageResponse.tsx
@@ -0,0 +1,43 @@
+import { Photo } from '..';
+import { FaTag } from 'react-icons/fa';
+import ImageCaption from './components/ImageCaption';
+import ImagePhotoGrid from './components/ImagePhotoGrid';
+import ImageContainer from './components/ImageContainer';
+
+export default function TagImageResponse({
+ photos,
+ request,
+ width,
+ height,
+ fontFamily,
+}: {
+ photos: Photo[]
+ request: Request
+ width: number
+ height: number
+ fontFamily: string
+}) {
+ return (
+
+
+
+
+ {'Door County'.toUpperCase()}
+
+
+ );
+}
diff --git a/src/photo/image-response/DeployImageResponse.tsx b/src/photo/image-response/TemplateImageResponse.tsx
similarity index 68%
rename from src/photo/image-response/DeployImageResponse.tsx
rename to src/photo/image-response/TemplateImageResponse.tsx
index d0526fde..396f2465 100644
--- a/src/photo/image-response/DeployImageResponse.tsx
+++ b/src/photo/image-response/TemplateImageResponse.tsx
@@ -1,9 +1,9 @@
import { Photo } from '..';
-import PhotoGridImageResponse from './PhotoGridImageResponse';
import IconFullFrame from '@/icons/IconFullFrame';
import IconGrid from '@/icons/IconGrid';
+import ImagePhotoGrid from './components/ImagePhotoGrid';
-export default function DeployImageResponse({
+export default function TemplateImageResponse({
photos,
request,
width,
@@ -40,16 +40,16 @@ export default function DeployImageResponse({
height,
fontFamily,
}}>
-
- {includeHeader &&
+ {includeHeader &&
+
-