John
86d4f3dfca
Add masonry layout for photo grids ( #390 )
...
* add masonry layout for photo grids
- NEXT_PUBLIC_MASONRY_GRID env variable to turn masonry layout on and
off
- added PhotoGridMasonry.tsx to handle masonry layout
* fixed albums showing all photos when masonry grid is enabled
* only render infinite photo scroll for masonry grid when total photo count is greater than loaded photos
* fixed masonry grid lcp warnings
* add NEXT_PUBLIC_MASONRY_GRID description to README
* Use custom icon for masonry layout
* Add masonry to in-app config
* Simplify masonry architecture
---------
Co-authored-by: Sam Becker <sam@sambecker.com>
2026-05-02 16:01:08 -05:00
Sam Becker
af48b8d6d2
Bump deps
2026-04-20 17:44:14 -05:00
Sam Becker
b8bc4c7491
Bump deps
2026-04-10 19:14:57 -05:00
Sam Becker
f3b3b82c6c
Improve rate limit config compatibility
2026-04-10 19:12:36 -05:00
Sam Becker
c062795f75
Bump deps
2026-04-07 09:23:38 -05:00
Sam Becker
d505dfa092
Merge remote-tracking branch 'refs/remotes/origin/main'
2026-04-07 09:20:42 -05:00
Sam Becker
b9494272f0
Add database dump to .gitignore
2026-04-06 10:21:18 -05:00
Ni Z.H.
a8b7c05e0c
Handle null exif.tags in getOffsetFromExif ( #389 )
...
Handle null exif.tags in getOffsetFromExif
`Object.values()` throws "Cannot convert undefined or null to object"
when `exif.tags` or `exifr` is null/undefined. This occurs when
uploading images that lack EXIF data (e.g., AI-generated images,
screenshots, or graphics). The issue is reproducible on Chrome but
not on Safari, likely due to differences in how each browser's
EXIF parsing pipeline populates these values.
This fix adds nullish coalescing fallbacks (`?? {}`) so that
`Object.values()` always receives a valid object.
* Fix optional chaining in getOffsetFromExif
If `exif` itself is null/undefined,
accessing `exif.tags` would throw before the `??` fallback kicks in.
2026-03-26 17:39:18 -05:00
Sam Becker
da6c6ef09c
Bump deps
2026-03-21 11:30:13 -05:00
Sam Becker
58f8f17011
Bump deps
2026-03-15 18:47:29 -05:00
Sam Becker
2e017f0a51
Refine photo chooser
2026-03-13 22:01:13 -05:00
Sam Becker
2919f44a47
Add "manage albums" to cmd-k
2026-03-13 21:47:54 -05:00
Sam Becker
440c7b3f03
Add places to about page
2026-03-13 21:45:34 -05:00
Sam Becker
d3b1339c69
Increase time inputs to prevent iOS form zooming
2026-03-13 21:10:59 -05:00
Sam Becker
002124b161
Fix floating thumbnail on large screens
2026-03-13 21:09:05 -05:00
Sam Becker
cdb6130345
Extract date utility logic
2026-03-12 09:08:10 -05:00
Brandon
397d70c0a3
Add datetime picker to Taken At fields ( #388 )
...
* Add DateTimePicker component and integrate into PhotoForm for date selection
2026-03-12 08:39:29 -05:00
Sam Becker
ac96350849
Update package manager
2026-03-11 08:58:02 -05:00
Sam Becker
2f94d79746
Improve about grid layout when there's less content
2026-03-08 16:59:43 -05:00
Sam Becker
8fe3e81bde
Allow about photos to be cleared
2026-03-08 16:56:38 -05:00
Sam Becker
58fac5c81b
Add 'clear cache' to cmdk menu
2026-03-08 16:22:10 -05:00
Sam Becker
4ab56b603f
Stop displaying 0ev exposure compensation by default
2026-03-08 13:03:56 -05:00
Sam Becker
bc4fe9b7a2
Update ISO field to integer
2026-03-06 09:13:03 -06:00
Sam Becker
691a39c85c
Fix config flag
2026-03-05 21:38:46 -06:00
Sam Becker
f7ef89e1c0
Bump deps
2026-03-05 18:33:30 -08:00
Sam Becker
e18af1a07d
Update Vercel storage docs
2026-03-05 18:32:07 -08:00
Sam Becker
5e6e13ea09
Fix es-es locale import
2026-03-02 09:27:12 -06:00
Sam Becker
514be4de4a
Fix about edit caching issue
2026-03-02 08:57:20 -06:00
Sam Becker
2f99f8f558
Fix about default description behavior
2026-03-01 23:29:16 -06:00
Sam Becker
4f5461e327
Refine default about description
2026-03-01 23:19:26 -06:00
Sam Becker
8569347c27
Leverage adjacent meta for about description
2026-03-01 22:36:11 -06:00
Sam Becker
be859f380e
Merge branch 'photo-chooser'
2026-03-01 21:15:44 -06:00
João Pedro Sconetto
50999f2af3
chore(locales): add Spanish i18n translation ( #381 )
...
* chore(locales): add Spanish i18n translation
* chore(locales): rename spanish translation to es-es.ts
* docs: add key for new spanish translation
2026-03-01 21:04:50 -06:00
Sam Becker
5940bee86a
Photo Chooser ( #383 )
...
* Refactor photo/menu form components
* Fix pre-rendering error
* Incorporate server-side photo chooser data
* Create custom photo chooser grid
* Extract photo query logic to hook
* Make photo chooser searchable
* Create custom photo chooser menu
* Animate query menu, add favs to chooser
* Add photo chooser empty states
2026-03-01 20:55:46 -06:00
Sam Becker
af6f75fa0b
Refine photo chooser behavior
2026-03-01 20:48:32 -06:00
Sam Becker
669d471dc0
Push back chooser icon color
2026-03-01 20:00:22 -06:00
Sam Becker
8a6131d539
Add photo chooser empty states
2026-03-01 19:56:07 -06:00
Sam Becker
f244b8ce94
Refactor photo chooser logic
2026-03-01 14:00:02 -06:00
Sam Becker
017869fda9
Animate query menu, add favs to chooser
2026-03-01 13:50:01 -06:00
Sam Becker
bd2dd6a030
Make /about/edit safely pre-render
2026-03-01 13:33:44 -06:00
Sam Becker
915b19bb54
Remove <FieldsetPhotoQuery />
2026-03-01 13:27:46 -06:00
Sam Becker
38f724762e
Refactor core photo chooser behavior
2026-03-01 13:23:25 -06:00
Sam Becker
7182e6db0e
Create custom photo chooser menu
2026-02-28 21:20:54 -06:00
Sam Becker
bb7c393021
Refine photo chooser
2026-02-28 15:17:16 -06:00
Sam Becker
3694fd061d
Make photo chooser searchable
2026-02-28 14:42:25 -06:00
Sam Becker
7baedd0700
Extract photo query logic to hook
2026-02-28 14:38:54 -06:00
Sam Becker
0465b51427
Create custom photo chooser grid
2026-02-28 14:16:14 -06:00
Sam Becker
42015f7d6d
Incorporate server-side photo chooser data
2026-02-28 11:22:22 -06:00
Sam Becker
6af00c94f6
Fix pre-rendering error
2026-02-28 11:05:30 -06:00
Sam Becker
dddf1f39c5
Refactor photo/menu form components
2026-02-28 10:56:58 -06:00