Skip to content

Conversation

@Lauritz-Tieste
Copy link
Contributor

Description

This pull request introduces support for a new slug field in the SharedLink model and refactors the shared link UI for improved usability and maintainability. The changes ensure that slugs are handled throughout the model, service, and UI layers, and update the shared link list and item presentation for a more modern and user-friendly experience.

Model and Service Enhancements:

  • Added a nullable slug field to the SharedLink model, updated constructors, copyWith, equality, and hashcode methods to include slug.

UI/UX Improvements:

  • Refactored the shared link list page to use a centered empty state and a responsive layout: grid for wide screens and a separated list for narrow screens, removing unnecessary headers and padding.
  • Improved the SharedLinkItem widget:
    • Simplified expiry calculation and display, added icons for expiry status, and replaced chips with outlined cards for share parameter info.
    • Updated the share link copy logic to use the slug if available and changed the URL path from /share/{key} to /s/{slug or key}.
    • Changed the item layout to use Dismissible for swipe-to-delete with confirmation, made the whole item tappable for editing, and enabled long-press to copy the link.

How Has This Been Tested?

  • Manual testing on physical device

Screenshots (if appropriate)

Screen_Recording_20251226_185149.mp4

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

GPT-5-Codex for time selection mechanism and GitHub Copilot for PR Summary

@shenlong-tanwen
Copy link
Member

@Lauritz-Tieste Can you split this PR into multiple independent PRs so it'll be easier to get the simpler ones in? For instance, the slug support can go on it's own without the UI refactor

@Lauritz-Tieste Lauritz-Tieste marked this pull request as draft December 30, 2025 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants