Commit Graph

2313 Commits

Author SHA1 Message Date
Rich Manalang
ec55005df2
feat: add Nikon Z Picture Control support (#361)
* feat: add Nikon Z Picture Control support

* refactor: Consolidate Fujifilm and Nikon MakerNote parsing logic and remove unused code and comments.

* fix: decode film parameter before fetching photo data.

* fix: decode URL-encoded film parameters for improved routing

* feat: Add default set of Nikon Picture Controls for consistent labels and allow for Picture Controls not already in the database to be picked from the drop down.

* feat: Add camera make context to film components for conditional Fujifilm simulation display
2025-12-28 14:23:33 -05:00
Sam Becker
86dd2c6f19 Upgrade AI model 2025-11-19 09:34:02 -06:00
Sam Becker
1dd4475ae5 Bust cache on photo add 2025-11-19 09:23:36 -06:00
Sam Becker
ab0ddeee94 Create top-level cache module 2025-11-19 09:16:23 -06:00
Sam Becker
61fca59d87 Fix cached getPhotos request 2025-11-15 17:11:15 -06:00
Sam Becker
c5c78e527e Increase cache coverage 2025-11-15 17:03:32 -06:00
Sam Becker
7662465248 Cache album queries 2025-11-15 16:31:46 -06:00
Sam Becker
64441a12c1 Add iPhone 17 generation lens specs 2025-11-14 12:57:09 -08:00
Sam Becker
32d39f7e67 Add Next.js version to config export 2025-11-14 12:06:39 -08:00
Sam Becker
667328b166 Conditionally add build identifier to <head /> 2025-11-08 15:22:33 -06:00
Sam Becker
02f2d08e04 Use next/form component when editing photos 2025-11-06 21:47:48 -06:00
Sam Becker
450bc10c7d Fix tag picker z-index when editing photo 2025-11-02 11:37:21 -06:00
Sam Becker
c8ea51cdd1
Next.js 16 (#351)
* Upgrade to next.js 16

* Allow static generation on preview

* Add note for disabled ref rule

* Report Next.js version in App Insights

* Link Next.js version
2025-11-02 11:23:52 -06:00
Sam Becker
3f1a36354d Revert to Next.js 15 2025-10-27 10:06:14 -05:00
Sam Becker
dbf55badf6
Optimize Next.js 16 behavior (#349)
* Remove unused desktop redirect component

* Tweak useEffect/setState interactions

* Address more next.js 16 linting

* Tweak secret loading

* Finish linting setstate/useeffect interactions

* Disable ref lint warnings
2025-10-27 09:49:16 -05:00
Sam Becker
537e261570 Fix Next.js 15 compatibility 2025-10-26 11:15:33 -05:00
Sam Becker
70abf8178d Remove synchronous setstate call in hover check 2025-10-26 11:00:09 -05:00
Sam Becker
ff9fc94ce1 Memoize clear share modal props callback 2025-10-26 10:37:02 -05:00
Sam Becker
e114343d1f Remove unused pathname hook 2025-10-26 10:32:09 -05:00
Sam Becker
b9c31153f2 Remove db optimization experiment 2025-10-26 10:24:47 -05:00
Sam Becker
984039edce Make infinite scroll pagination more precise 2025-10-26 10:21:12 -05:00
Sam Becker
9570a98168 Fix infinite scroll trigger 2025-10-26 09:47:11 -05:00
Sam Becker
5591635a1e
Next.js 16 (#347)
* Upgrade to Next.js 16, resolve/suppress linting errors

* Update usage of revalidateTag()

* Rename proxy.ts export

* Refactor infinite scroll data handling
2025-10-25 21:35:30 -05:00
Sam Becker
b4b89fcd37 Truncate long map hover captions 2025-10-22 09:04:41 -05:00
Sam Becker
c2a0e1585f
Album location hovers (#345) 2025-10-21 22:46:28 -05:00
Sam Becker
a03b758e3b Suppress hover on private tag 2025-10-15 20:09:55 -05:00
Sam Becker
71c732e3ff Tweak code note 2025-10-15 20:03:24 -05:00
Sam Becker
0218c07870 Only show <PlaceInput /> when location services are enabled 2025-10-15 19:52:46 -05:00
Sam Becker
362c739b75 Fix location services config reporting 2025-10-15 19:23:18 -05:00
Sam Becker
89af70134d Minimize db connection errors on initial installation 2025-10-15 09:38:15 -05:00
Sam Becker
a00e38b395
Add Locations to Albums (#334) 2025-10-15 09:37:16 -05:00
Sam Becker
5c2dd092e4 Fix album form submission bug 2025-10-05 19:13:59 -05:00
Sam Becker
e8517c6cdd Refine lightbox styles 2025-10-05 10:56:11 -05:00
Sam Becker
a2a8538948 Prevent photo selection in lightboxes 2025-10-05 10:41:54 -05:00
Sam Becker
75c4cd58fa Hide ids when editing albums 2025-10-05 10:30:06 -05:00
Sam Becker
1a7a1c1e28 Fix photo lightbox component 2025-10-05 10:13:35 -05:00
Sam Becker
4a01ee4f9e Prevent incorrect magnifying glass animations 2025-10-04 14:55:11 -05:00
Sam Becker
3b6001602a
Mobile Sidebar (#330)
* Show top entities on mobile

* Add config

* Localize 'more'/'less' text
2025-10-02 21:46:58 -05:00
Sam Becker
64c4b21f75 Add 3-photo split layout to og images 2025-09-27 22:02:19 -05:00
Sam Becker
1d0973bfd1 Create custom layout for hovers with 3 images 2025-09-27 21:33:39 -05:00
Sam Becker
e5a0c6a326 Round UI, tweak sidebar 2025-09-27 20:41:22 -05:00
Sam Becker
9819a2b81e
AI Text Refinements (#329)
* Bump deps

* Add openai object generation with zod

* Streamline AI query instructions

* Use single AI request when editing uploads

* Clean up AI text from object requests

* Fix AI text formatting logic

* Reorganize upload network requests
2025-09-27 19:33:14 -05:00
Sam Becker
ffe7fe7b3d Refine config list display 2025-09-23 17:37:21 -05:00
Sam Becker
76639a4195 Add AI query constructor 2025-09-23 17:11:58 -05:00
Sam Becker
e9d3c19c40 Pre-populate upload form with AI data 2025-09-22 09:18:57 -05:00
Sam Becker
47fe1cf383 Add next/script customization 2025-09-21 14:30:29 -05:00
Sam Becker
8482a76dd6 Fix social network key display 2025-09-21 11:04:56 -05:00
Sam Becker
bcecebe936 Reposition tag/album edit menus 2025-09-21 10:13:40 -05:00
Sam Becker
7cad939694 Add link to footer admin email 2025-09-21 10:02:16 -05:00
Sam Becker
1a592aca26 Stop categorizing database as Vercel 2025-09-21 09:48:04 -05:00
Sam Becker
272d57bec5 Clarify env var insight recommendations 2025-09-20 19:35:07 -05:00
Sam Becker
5140addc8d
PNG/EXIF handling (#328)
* Refactor PNG/EXIF handling
* Increase quality of client-side resizes
2025-09-20 16:13:25 -05:00
Sam Becker
ee9f3f4dc2
Album upgrades (#326)
* Add tag-to-album upgrade, introduce tag/album ••• menus

* Refine entity ••• menus

* Add album tagging to "Select ..." mode

* Finalize batch select/upload add album

* Refine final tag/album interactions

* Refine upgradeTagToAlbum capitalization

* Fix batch album upload, z-index issues

* Refine readonly styles
2025-09-18 22:41:12 -05:00
Sam Becker
1e66815a3d
Albums (#315)
* Make /db top-level module

* Create Album type

* Pin pnpm version

* Generalize query modules

* Finalize album postgres data type

* Remove temp albums prop

* Create basic album primitives

* Fix temporary album bugs

* Add albums to sidebar

* Disambiguate string date utilities

* Localize album language

* Add album join option to core photo queries

* Tweak album icon placement

* Add album photo detail page

* Refine Album data model

* Display album subhead when available

* Generate album og images

* Finalize album share modal

* Add albums to sitemap

* Statically pre-render albums

* Display tags on albums

* Add albums to cmd-k menu

* Handle album tag overflow

* Stop truncating album subheads

* Create core admin album views

* Make albums editable

* Create/edit albums on photo save, add delete album
2025-09-16 21:47:22 -05:00
Sam Becker
62e8392900 Update config footer text 2025-09-13 17:07:48 -05:00
Sam Becker
38c085da59 Tweak prefixed redis creds 2025-09-12 22:13:18 -05:00
Sam Becker
8965dac4ff Tweak redis client logic 2025-09-12 22:11:21 -05:00
Sam Becker
f07f8e44b9 Make Redis connection resilient to more configurations 2025-09-12 21:45:11 -05:00
Sam Becker
d13c8b0fae
Support EXIF data in PNG files (#314)
* Use exifr data to fill in gaps from PNG files

* Handle exif/exifr location data inconsistencies
2025-09-12 21:11:36 -05:00
Sam Becker
a5af7c617c Optimize environment variable warning 2025-09-12 17:12:59 -05:00
Sam Becker
ca9cc320ed Optimized outdated env var scroll 2025-09-12 08:54:04 -05:00
Sam Becker
9ed389f31f Update deprecated env var styles 2025-09-11 21:20:52 -05:00
Sam Becker
0de8087fb4 Flag deprecated environment variables 2025-09-11 21:14:06 -05:00
Sam Becker
c9f74bd18c Pad progress button 2025-09-11 20:41:15 -05:00
Sam Becker
9c1c924f20 Update breadcrumb when updating photos 2025-09-11 20:38:04 -05:00
Sam Becker
379228cc03 Avoid unnecessary color collection when syncing outdated photos 2025-09-11 20:31:22 -05:00
Sam Becker
9e8242828c Add recommended keys for legacy env vars 2025-09-11 09:37:03 -05:00
Sam Becker
bd9b33422f Refine bulk updating experience 2025-09-11 09:31:02 -05:00
Sam Becker
7c9ce0d26c
Expand social networks (#308)
* Create utility for managing env var-based key lists

* Add expanded social content

* Finalize content for social networks additions

* Add social network config to README
2025-09-10 23:22:26 -05:00
Sam Becker
25a8a473ab Fix select photo ... navigation quirks 2025-09-08 17:55:36 -05:00
Sam Becker
61c1b1b0ec Update hi-in locale 2025-09-08 08:40:34 -05:00
Jahidul Islam
cb79fcf4db
Add Hindi (#307) 2025-09-08 08:34:32 -05:00
Sam Becker
def0082fc3 Make sure the look for query params on navigation 2025-09-07 19:51:05 -05:00
Sam Becker
f539fb08a8 Tweak primary button styles 2025-09-07 19:11:06 -05:00
Sam Becker
861aa101d0 Update outdated sync text 2025-09-07 18:59:14 -05:00
Sam Becker
b720397837 Flag old photos as needing optimized file generation 2025-09-07 18:57:05 -05:00
Sam Becker
3ce901522c Check smallest optimized file 2025-09-07 18:38:31 -05:00
Sam Becker
7ec8d69b5f Fix admin photo menu hit target 2025-09-07 18:17:13 -05:00
Sam Becker
de0fa04ef8 Restore hovers in recipe overlay 2025-09-07 18:00:52 -05:00
Sam Becker
b56c852e58 Remove console logging 2025-09-07 16:34:40 -05:00
Sam Becker
ea7ede7608 Convert colons and underscores to dashes in url slugs 2025-09-07 16:33:27 -05:00
Sam Becker
71434c780b
Merge pull request #306 from sambecker/batch-edit-update
Finalize anywhere batch editing
2025-09-07 16:25:46 -05:00
Sam Becker
57879706a2 Scroll photo grid into view when selecting photos 2025-09-07 16:15:55 -05:00
Sam Becker
2d72f12ddd Rename batch edit language 2025-09-07 12:52:30 -05:00
Sam Becker
db5f9ceb3a Finalize batch select core behavior 2025-09-07 12:18:51 -05:00
Sam Becker
1f499e697e Move batch editing to pure url-based state 2025-09-06 23:49:10 -05:00
Sam Becker
b8c01492b8
Store optimized assets for all photos (#304)
* Begin storing optimized photo files

* Increase optimized image size to 1080

* Refactor photo/storage modules

* Refine storage file naming api

* Simplify photo storage api

* Finalize photo storage api

* Start storing/serving optimized photos

* Finalize optimized photo asset generation

* Temporarily allow static optimization on PREVIEW branches

* Restore static optimization as production-only

* Remove og image inline-flex class

* Tweak convert upload signature

* Refactor optimized file storage

* Display optimized files when they exist in photo form

* Create small disclosure component

* Report photo storage files more accurately

* Sort optimized files

* Generate optimized storage files when updating/syncing photos

* Include source bucket when copying files with MinIO

* Make deleting files more resilient
2025-09-06 23:20:20 -05:00
Aonan Li
91f99508f7
Start batch editing from the current page (#303)
* Batch edit from the current page

* Redirect to grid when batch editing a page without grid

* Always clear selected ids on path change

* Only clear ids when selecting

* Use data-photo-grid to find grid

* Update batch edit from command K

* Not mount batch edit panel when not needed

* Not clear selecting state when go to /grid

* Use search param to force batch editing
2025-09-06 18:11:35 -05:00
Sam Becker
1a72a84497 Bump deps 2025-09-01 21:03:25 -05:00
Sam Becker
4dc3a976b7 Refining photo form floating thumbnail 2025-08-28 17:47:52 -05:00
Sam Becker
16e6711f0d Tighten grid margins 2025-08-28 17:25:39 -05:00
Sam Becker
b9b3ddc79f Remove console statements 2025-08-28 09:23:49 -05:00
Sam Becker
200f73a5ca Warm redis store once per client session 2025-08-28 09:20:10 -05:00
Sam Becker
f7de56a7b9 Refine storage config 2025-08-27 20:46:57 -05:00
Christopher Jeffrey
363354d797
feat: add minio support (#297) 2025-08-27 19:20:56 -05:00
Sam Becker
1b63f08d26 Adjust experimental badge in dark mode 2025-08-26 20:48:36 -05:00
Sam Becker
7c5630e8c1 Prevent thumbnail blocking form actions 2025-08-26 20:45:44 -05:00
Sam Becker
25b8d65030
Break up photo form into sections (#298) 2025-08-26 20:36:51 -05:00
Sam Becker
a85d5091a8 Tweak tag of image layout 2025-08-18 12:57:36 -05:00
Sam Becker
320f562cbc
EXIF title/caption capture (#294) 2025-08-17 17:18:16 -05:00
Sam Becker
56a989afe6 Alphabetize locales 2025-08-14 16:55:31 +02:00
Simon
19acbddef5
Add en-GB localisation (#289) 2025-08-14 16:53:52 +02:00
Simon
ba7af69592
Fix html lang (#291) 2025-08-14 16:50:40 +02:00
Sam Becker
0d02306ba0 Migrate to dedicated indent style line plugin 2025-08-08 23:29:00 -05:00
Sam Becker
b0072429d4 Improve color sort order symmetry 2025-08-06 09:10:06 -05:00
Sam Becker
8727fc18ac Refactor image response url checks 2025-08-05 10:03:53 -05:00
Sam Becker
3a45838997 Enlarge ••• menu hit target 2025-08-04 21:51:29 -05:00
Sam Becker
e3cf228c44 Add color sort to cmdk menu 2025-08-04 21:46:42 -05:00
Sam Becker
0d5038bb56 Make caching resilient to missing update status 2025-08-04 09:59:45 -05:00
Sam Becker
bde87c2542 Fix non-deterministic color sort order 2025-08-04 09:48:18 -05:00
Sam Becker
4890b17868 Update color-based sort language 2025-08-04 09:35:04 -05:00
Sam Becker
6b888d7f81 Disable color hover for thumbnails 2025-08-03 19:46:21 -05:00
Sam Becker
59f5c74269
Chromatic sorting (#284)
* Test color palette extraction

* Fix import

* Add hex <> oklch conversions

* Add 'hue' storage to photos

* Consolidate color modules

* Add chromatic config, track missing color data

* Bump deps

* Fix lens text test

* Finalize color storage

* Refactor color imports

* Hide form color data when disabled

* Store all average oklch color components

* Finalize color-config language

* Optimize photo syncing for color data

* Only update color data when syncing if possible

* Build out all color sorts

* Debug image colors

* Improve color debugging

* Improve color logging

* Simplify color sorting

* Bump deps

* Fix color sync logic

* Switch to sort params: ascending, descending

* Fix commandk sort menu

* Update tr-tr sorting language

* Add color capture to all photo extractions

* Add color visualization to photo form

* Standardize photo update language

* Create global debug color update function

* Improve color data capture logging

* Update maximum function duration for admin photos

* Add note to remove maxDuration

* Use AI to generate sorting color

* Conditionally use AI to analyze colors

* Manage AI color analysis batched requests

* Fix color reporting in admin photo table

* Only update color where AI fields are missing

* Temporarily upgrade admin/photos timeout

* Fix pro-based max duration

* Standardize color sorting foundations

* Update color sorting language

* Refactor color calculations

* Restore max duration time

* Update color-based sort menu labels

* Finalize color documentation

* Clean up color test actions

* Round color sort values before submitting to db

* Consolidate color server actions
2025-08-03 19:31:02 -05:00
Sam Becker
8ba32c5549 Add tr-tr type + lint 2025-07-31 09:06:21 -05:00
Mehmet Abak
2cf0a1b840
Added Turkish language support (#285)
* Create tr-tr.ts

* Update index.ts

* Update README.md
2025-07-31 09:04:36 -05:00
Sam Becker
2a2ffeba3c Edit batch icon 2025-07-20 12:04:34 -05:00
Sam Becker
bf3de54797 Restore link primitive cleanup 2025-07-20 11:43:38 -05:00
Sam Becker
a5efb8a964 Refactor link actions 2025-07-20 11:37:06 -05:00
Sam Becker
f6e167bd04 Debug linkwithstatus cleanup 2025-07-20 10:43:19 -05:00
Sam Becker
2425287544 Add temporary logging to LinkWithStatus 2025-07-20 00:25:11 -05:00
Sam Becker
e1ba3d84b4 Update selectedPhotoIds dependency array 2025-07-20 00:16:09 -05:00
Sam Becker
a24d4460d9 Refine batch id clearing 2025-07-20 00:08:53 -05:00
Sam Becker
730708b0db Refactor batch id clearing 2025-07-19 23:50:56 -05:00
Sam Becker
4d2cb31819 Always delay batch edit action 2025-07-19 23:32:37 -05:00
Sam Becker
3263603c25 Choreograph batch edit navigation/action 2025-07-19 23:28:10 -05:00
Sam Becker
6ab49d13e5 Hide admin menu tooltip on dismiss 2025-07-19 16:05:11 -05:00
Sam Becker
8c6e406904 Skip nav animation in empty state 2025-07-19 16:02:43 -05:00
Sam Becker
6c73b14b85 Make queries resilient to unconfigured installations 2025-07-19 15:36:42 -05:00
Sam Becker
fc8cca3f7f Switch more menus to proper links 2025-07-19 13:56:46 -05:00
Sam Becker
c78c6fd7e0 Add sort options to cmd-k menu 2025-07-17 20:32:09 -05:00
Sam Becker
c2b1be5fb4 Always fade in images on first load 2025-07-17 17:14:38 -05:00
Sam Becker
6f677ec906 Fix admin visibility icon spacing 2025-07-17 09:30:10 -05:00
Sam Becker
76621b965b Rationalize admin photo icon layout 2025-07-17 09:25:41 -05:00
Sam Becker
38768de87c Add string comments 2025-07-17 09:01:33 -05:00
Sam Becker
27b0b4965a Accept ampersands urls in cameras/lenses 2025-07-16 23:36:14 -05:00
Sam Becker
ea1e232232 Refine sidebar height calculation 2025-07-16 23:08:16 -05:00
Sam Becker
2dde902027 Check fallback fade/image load status on mount 2025-07-16 17:35:09 -05:00
Sam Becker
f2db4cf4d0 Add additional image fallback loading checks 2025-07-16 09:37:48 -05:00
Sam Becker
25533f088c Restore image fallback check to 100ms 2025-07-16 08:51:49 -05:00
Sam Becker
1906d2dd20 Only log non-0 static generation 2025-07-16 08:40:24 -05:00
Sam Becker
646f32e642
Rich sort controls (#283)
* Generalize app switcher menus

* Organize sort module

* Build configuration for nav sort control

* Refine sort menu styles

* Upgrade next.js

* Reset custom sort when clicking grid/full a second time

* Light up sort button when overridden
2025-07-15 22:43:36 -05:00
Sam Becker
65f7f539a7 Fix photo details on mobile 2025-07-15 10:38:20 -05:00
Sam Becker
622fbda79f Clean up indentation 2025-07-13 23:18:45 -05:00
Sam Becker
2b2bbeb5a5 Adjust config menu styles 2025-07-13 23:06:16 -05:00
Sam Becker
ac7506a1bc Adjust admin photos table spacing 2025-07-13 22:59:34 -05:00
Sam Becker
aefda2db19 Add section menu to admin app config 2025-07-13 18:38:33 -05:00
Sam Becker
188c704589 Make app og image match home feed 2025-07-13 11:43:33 -05:00
Sam Becker
84587b4b83 Make sidebar photo count accurate 2025-07-13 11:31:33 -05:00
Sam Becker
54abdce4df Enable visibility tooltips on mobile 2025-07-13 11:05:42 -05:00
Sam Becker
3b5d8214a2 Smooth out fallbacks on initial load 2025-07-12 10:38:01 -05:00