diff --git a/.vscode/settings.json b/.vscode/settings.json
index 84c45555..1a06b433 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -18,6 +18,7 @@
"headlessui",
"hgetall",
"hset",
+ "jpgs",
"Lightbox",
"Makernote",
"nanoids",
diff --git a/README.md b/README.md
index c70f6e41..ae89be66 100644
--- a/README.md
+++ b/README.md
@@ -58,12 +58,18 @@ Installation
1. Open project on Vercel
2. Click "Analytics" tab
-3. Follow "Enable Web Analytics" instructions (`@vercel/analytics` is already part of your project)
+3. Follow "Enable Web Analytics" instructions (`@vercel/analytics` already included)
-### 6. Optional configuration
+### 6. Add Speed Insights (optional)
-- `NEXT_PUBLIC_PRO_MODE = 1` enables higher quality image storage (results in increased storage usage)
-- `NEXT_PUBLIC_STATICALLY_OPTIMIZE = 1` enables PPR and static optimization, i.e., building pages ahead of time (results in increased storage usage)—⚠️ _Experimental_
+1. Open project on Vercel
+2. Click "Speed Insights" tab
+3. Follow "Enable Speed Insights" instructions (`@vercel/speed-insights` already included)
+
+### 7. Optional configuration
+
+- `NEXT_PUBLIC_PRO_MODE = 1` enables higher quality image storage for jpgs (will result in increased storage usage)
+- `NEXT_PUBLIC_STATICALLY_OPTIMIZE = 1` enables PPR and static optimization, i.e., building pages ahead of time (will results in increased storage usage)—⚠️ _Experimental_
- `NEXT_PUBLIC_BLUR_DISABLED = 1` prevents image blur data being stored and displayed (potentially useful for limiting Postgres usage)
- `NEXT_PUBLIC_GEO_PRIVACY = 1` disables collection/display of location-based data
- `NEXT_PUBLIC_IGNORE_PRIORITY_ORDER = 1` prevents `priority_order` field affecting photo order
diff --git a/next.config.js b/next.config.js
index a18d28c6..f404c1a0 100644
--- a/next.config.js
+++ b/next.config.js
@@ -2,14 +2,14 @@ const VERCEL_BLOB_STORE_ID = process.env.BLOB_READ_WRITE_TOKEN?.match(
/^vercel_blob_rw_([a-z0-9]+)_[a-z0-9]+$/i,
)?.[1].toLowerCase();
-const VERCEL_BLOB_HOSTNAME = VERCEL_BLOB_STORE_ID
+const HOSTNAME_VERCEL_BLOB = VERCEL_BLOB_STORE_ID
? `${VERCEL_BLOB_STORE_ID}.public.blob.vercel-storage.com`
: undefined;
-const CLOUDFLARE_R2_HOSTNAME =
+const HOSTNAME_CLOUDFLARE_R2 =
process.env.NEXT_PUBLIC_CLOUDFLARE_R2_PUBLIC_DOMAIN;
-const AWS_S3_HOSTNAME =
+const HOSTNAME_AWS_S3 =
process.env.NEXT_PUBLIC_AWS_S3_BUCKET &&
process.env.NEXT_PUBLIC_AWS_S3_REGION
// eslint-disable-next-line max-len
@@ -30,9 +30,9 @@ const nextConfig = {
images: {
imageSizes: [200],
remotePatterns: []
- .concat(createRemotePattern(VERCEL_BLOB_HOSTNAME))
- .concat(createRemotePattern(CLOUDFLARE_R2_HOSTNAME))
- .concat(createRemotePattern(AWS_S3_HOSTNAME)),
+ .concat(createRemotePattern(HOSTNAME_VERCEL_BLOB))
+ .concat(createRemotePattern(HOSTNAME_CLOUDFLARE_R2))
+ .concat(createRemotePattern(HOSTNAME_AWS_S3)),
minimumCacheTTL: 31536000,
},
...process.env.NEXT_PUBLIC_STATICALLY_OPTIMIZE === '1' && {
diff --git a/src/admin/AdminPhotoMenuClient.tsx b/src/admin/AdminPhotoMenuClient.tsx
index 6f72e2b1..1ac25252 100644
--- a/src/admin/AdminPhotoMenuClient.tsx
+++ b/src/admin/AdminPhotoMenuClient.tsx
@@ -22,15 +22,15 @@ export default function AdminPhotoMenuClient({
,
+ label: 'Edit',
+ icon: ,
href: pathForAdminPhotoEdit(photo.id),
}, {
label: isFav ? 'Unfavorite' : 'Favorite',
icon: isFav
?
:
}
+
+
+ }