Introduce NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS to configure grid density

This commit is contained in:
Sam Becker 2024-08-16 15:56:44 -05:00
parent ab3d9cc6b0
commit bbc1626e7b
3 changed files with 24 additions and 2 deletions

View File

@ -236,6 +236,9 @@ FAQ
#### Why do vertical images take up so much space?
> By default, all photos are shown full-width, regardless of orientation. Enable matting to showcase horizontal and vertical photos at similar scales by setting `NEXT_PUBLIC_MATTE_PHOTOS = 1`.
#### Why are my grid thumbnails so small?
Thumbnail grid density (seen on `/grid`, tag overviews, and other photo sets) is dependent on the aspect ratio configuration (ratios of 1 and under have larger amounts of photos per row). This can be overridden by setting `NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS = 1`.
#### How secure are photos marked “hidden?”
> While all hidden paths (`/tag/hidden/*`) require authentication, raw links to individual photo assets remain publicly accessible. Randomly generated urls from storage providers are only secure via obscurity. Use with caution.

View File

@ -68,6 +68,8 @@ export default function SiteChecklistClient({
isOgTextBottomAligned,
gridAspectRatio,
hasGridAspectRatio,
gridDensity,
hasGridDensityPreference,
// Connection status
databaseError,
storageError,
@ -577,6 +579,16 @@ export default function SiteChecklistClient({
(default is {'"1"'}, i.e., square)set to {'"0"'} to disable:
{renderEnvVars(['NEXT_PUBLIC_GRID_ASPECT_RATIO'])}
</ChecklistRow>
<ChecklistRow
title={`Grid density: ${gridDensity ? 'low' : 'high'}`}
status={hasGridDensityPreference}
optional
>
Set environment variable to {'"1"'} to ensure large thumbnails
on photo grid views (if not configured, density is based on
aspect ratio configuration):
{renderEnvVars(['NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS'])}
</ChecklistRow>
<ChecklistRow
title="Legacy OG text alignment"
status={isOgTextBottomAligned}

View File

@ -165,7 +165,11 @@ export const OG_TEXT_BOTTOM_ALIGNMENT =
(process.env.NEXT_PUBLIC_OG_TEXT_ALIGNMENT ?? '').toUpperCase() === 'BOTTOM';
export const ADMIN_DEBUG_TOOLS_ENABLED = process.env.ADMIN_DEBUG_TOOLS === '1';
export const HIGH_DENSITY_GRID = GRID_ASPECT_RATIO <= 1;
export const PREFERS_LOW_DENSITY_GRID =
process.env.NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS === '1';
export const HIGH_DENSITY_GRID =
GRID_ASPECT_RATIO <= 1 &&
!PREFERS_LOW_DENSITY_GRID;
export const CONFIG_CHECKLIST_STATUS = {
hasDatabase: HAS_DATABASE,
@ -225,9 +229,12 @@ export const CONFIG_CHECKLIST_STATUS = {
isOgTextBottomAligned: OG_TEXT_BOTTOM_ALIGNMENT,
gridAspectRatio: GRID_ASPECT_RATIO,
hasGridAspectRatio: Boolean(process.env.NEXT_PUBLIC_GRID_ASPECT_RATIO),
gridDensity: HIGH_DENSITY_GRID,
hasGridDensityPreference:
Boolean(process.env.NEXT_PUBLIC_SHOW_LARGE_THUMBNAILS),
baseUrl: BASE_URL,
commitMessage: VERCEL_COMMIT_MESSAGE,
commitSha: VERCEL_COMMIT_SHA ? VERCEL_COMMIT_SHA.slice(0, 7) : undefined,
commitMessage: VERCEL_COMMIT_MESSAGE,
};
export type ConfigChecklistStatus = typeof CONFIG_CHECKLIST_STATUS;