[PR #25620] [CLOSED] feat(web): Add Family Mode web UI #18316

Closed
opened 2026-02-05 16:36:21 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/25620
Author: @msllrs
Created: 1/28/2026
Status: Closed

Base: mainHead: msllrs/map-marker-styling


📝 Commits (2)

  • 9903667 feat: Add Family Mode for Immich photo sharing
  • cc44696 feat(web): Add Family Mode web UI

📊 Changes

65 files changed (+20573 additions, -171 deletions)

View changed files

📝 docker/.gitignore (+3 -1)
docker/docker-compose.family.yml (+82 -0)
📝 i18n/en.json (+56 -0)
📝 open-api/immich-openapi-specs.json (+873 -87)
📝 open-api/typescript-sdk/src/fetch-client.ts (+230 -2)
📝 server/Dockerfile.dev (+51 -63)
server/package-lock.json (+16656 -0)
📝 server/src/constants.ts (+4 -0)
📝 server/src/controllers/activity.controller.ts (+13 -0)
server/src/controllers/family-member.controller.ts (+84 -0)
📝 server/src/controllers/index.ts (+4 -0)
server/src/controllers/invitation.controller.ts (+75 -0)
📝 server/src/database.ts (+21 -0)
📝 server/src/dtos/activity.dto.ts (+12 -2)
📝 server/src/dtos/env.dto.ts (+3 -0)
server/src/dtos/family-member.dto.ts (+85 -0)
server/src/dtos/invitation.dto.ts (+51 -0)
📝 server/src/dtos/memory.dto.ts (+4 -0)
📝 server/src/dtos/server.dto.ts (+1 -0)
📝 server/src/enum.ts (+2 -0)

...and 45 more files

📄 Description

Description

Implements the complete web UI for Family Mode features in Immich. Family Mode is a simplified photo sharing experience focused on family albums, invitations, and age-based photo comparisons.

Features implemented:

  • Admin invitation management (create, list, revoke, copy invite link)
  • Admin family member management (create, edit, delete members with birthdates)
  • Public invitation acceptance page for new users
  • Age comparison tool to view photos of family members at the same age
  • Comprehensive event-driven state management
  • Conditional navigation showing Family Mode items when enabled
  • Full translation support

How Has This Been Tested?

  • Admin can create invitations and share invite links
  • Family members can be created with name, birthdate, and custom colors
  • New users can accept invitations via public link
  • Age comparison page loads and filters photos correctly
  • Navigation shows Family Mode items only when feature is enabled
  • All API endpoints properly typed via regenerated SDK
  • TypeScript type checking passes

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 followed naming conventions/patterns in the surrounding code
  • Web UI fully implements backend Family Mode API

LLM Usage

This pull request was created with the assistance of Claude Opus 4.5, an AI language model. The implementation includes:

  • Svelte 5 component architecture for web UI
  • TypeScript SDK integration for API calls
  • Event-driven state management
  • SvelteKit file-based routing
  • Comprehensive form handling and validation

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/25620 **Author:** [@msllrs](https://github.com/msllrs) **Created:** 1/28/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `msllrs/map-marker-styling` --- ### 📝 Commits (2) - [`9903667`](https://github.com/immich-app/immich/commit/9903667b199affb4c3a26c88d8ecce44ecc8ba00) feat: Add Family Mode for Immich photo sharing - [`cc44696`](https://github.com/immich-app/immich/commit/cc44696237a0074d8e1f5bff8488ff42f24d8d53) feat(web): Add Family Mode web UI ### 📊 Changes **65 files changed** (+20573 additions, -171 deletions) <details> <summary>View changed files</summary> 📝 `docker/.gitignore` (+3 -1) ➕ `docker/docker-compose.family.yml` (+82 -0) 📝 `i18n/en.json` (+56 -0) 📝 `open-api/immich-openapi-specs.json` (+873 -87) 📝 `open-api/typescript-sdk/src/fetch-client.ts` (+230 -2) 📝 `server/Dockerfile.dev` (+51 -63) ➕ `server/package-lock.json` (+16656 -0) 📝 `server/src/constants.ts` (+4 -0) 📝 `server/src/controllers/activity.controller.ts` (+13 -0) ➕ `server/src/controllers/family-member.controller.ts` (+84 -0) 📝 `server/src/controllers/index.ts` (+4 -0) ➕ `server/src/controllers/invitation.controller.ts` (+75 -0) 📝 `server/src/database.ts` (+21 -0) 📝 `server/src/dtos/activity.dto.ts` (+12 -2) 📝 `server/src/dtos/env.dto.ts` (+3 -0) ➕ `server/src/dtos/family-member.dto.ts` (+85 -0) ➕ `server/src/dtos/invitation.dto.ts` (+51 -0) 📝 `server/src/dtos/memory.dto.ts` (+4 -0) 📝 `server/src/dtos/server.dto.ts` (+1 -0) 📝 `server/src/enum.ts` (+2 -0) _...and 45 more files_ </details> ### 📄 Description ## Description Implements the complete web UI for Family Mode features in Immich. Family Mode is a simplified photo sharing experience focused on family albums, invitations, and age-based photo comparisons. **Features implemented:** - Admin invitation management (create, list, revoke, copy invite link) - Admin family member management (create, edit, delete members with birthdates) - Public invitation acceptance page for new users - Age comparison tool to view photos of family members at the same age - Comprehensive event-driven state management - Conditional navigation showing Family Mode items when enabled - Full translation support ## How Has This Been Tested? - [x] Admin can create invitations and share invite links - [x] Family members can be created with name, birthdate, and custom colors - [x] New users can accept invitations via public link - [x] Age comparison page loads and filters photos correctly - [x] Navigation shows Family Mode items only when feature is enabled - [x] All API endpoints properly typed via regenerated SDK - [x] TypeScript type checking passes ## Checklist: - [x] I have performed a self-review of my own code - [x] I have made corresponding changes to the documentation if applicable - [x] I have no unrelated changes in the PR - [x] I have confirmed that any new dependencies are strictly necessary - [x] I have followed naming conventions/patterns in the surrounding code - [x] Web UI fully implements backend Family Mode API ## LLM Usage This pull request was created with the assistance of Claude Opus 4.5, an AI language model. The implementation includes: - Svelte 5 component architecture for web UI - TypeScript SDK integration for API calls - Event-driven state management - SvelteKit file-based routing - Comprehensive form handling and validation --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:36:21 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#18316