mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 20:07:41 +09:00 
			
		
		
		
	feat(web): improved user onboarding (#18782)
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				CodeQL / Analyze (javascript) (push) Waiting to run
				
			
		
			
				
	
				CodeQL / Analyze (python) (push) Waiting to run
				
			
		
			
				
	
				Docker / pre-job (push) Waiting to run
				
			
		
			
				
	
				Docker / Re-Tag ML () (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag ML (-armnn) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag ML (-cuda) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag ML (-openvino) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag ML (-rknn) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag ML (-rocm) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Re-Tag Server () (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (armnn, linux/arm64, -armnn) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (cpu, ) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (cuda, linux/amd64, -cuda) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (openvino, linux/amd64, -openvino) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (rknn, linux/arm64, -rknn) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push ML (rocm, linux/amd64, {"linux/amd64": "mich"}, -rocm) (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Build and Push Server (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Docker Build & Push Server Success (push) Blocked by required conditions
				
			
		
			
				
	
				Docker / Docker Build & Push ML Success (push) Blocked by required conditions
				
			
		
			
				
	
				Docs build / pre-job (push) Waiting to run
				
			
		
			
				
	
				Docs build / Docs Build (push) Blocked by required conditions
				
			
		
			
				
	
				Static Code Analysis / pre-job (push) Waiting to run
				
			
		
			
				
	
				Static Code Analysis / Run Dart Code Analysis (push) Blocked by required conditions
				
			
		
			
				
	
				Static Code Analysis / zizmor (push) Waiting to run
				
			
		
			
				
	
				Test / pre-job (push) Waiting to run
				
			
		
			
				
	
				Test / Test & Lint Server (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Unit Test CLI (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Unit Test CLI (Windows) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Lint Web (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Test Web (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Test i18n (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Lint (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Medium Tests (Server) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Tests (Server & CLI) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Tests (Server & CLI) (ubuntu-latest) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Tests (Web) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Tests (Web) (ubuntu-latest) (push) Blocked by required conditions
				
			
		
			
				
	
				Test / End-to-End Tests Success (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Unit Test Mobile (push) Blocked by required conditions
				
			
		
			
				
	
				Test / Unit Test ML (push) Blocked by required conditions
				
			
		
			
				
	
				Test / .github Files Formatting (push) Blocked by required conditions
				
			
		
			
				
	
				Test / ShellCheck (push) Waiting to run
				
			
		
			
				
	
				Test / OpenAPI Clients (push) Waiting to run
				
			
		
			
				
	
				Test / SQL Schema Checks (push) Waiting to run
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	CodeQL / Analyze (javascript) (push) Waiting to run
				
			CodeQL / Analyze (python) (push) Waiting to run
				
			Docker / pre-job (push) Waiting to run
				
			Docker / Re-Tag ML () (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-armnn) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-cuda) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-openvino) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-rknn) (push) Blocked by required conditions
				
			Docker / Re-Tag ML (-rocm) (push) Blocked by required conditions
				
			Docker / Re-Tag Server () (push) Blocked by required conditions
				
			Docker / Build and Push ML (armnn, linux/arm64, -armnn) (push) Blocked by required conditions
				
			Docker / Build and Push ML (cpu, ) (push) Blocked by required conditions
				
			Docker / Build and Push ML (cuda, linux/amd64, -cuda) (push) Blocked by required conditions
				
			Docker / Build and Push ML (openvino, linux/amd64, -openvino) (push) Blocked by required conditions
				
			Docker / Build and Push ML (rknn, linux/arm64, -rknn) (push) Blocked by required conditions
				
			Docker / Build and Push ML (rocm, linux/amd64, {"linux/amd64": "mich"}, -rocm) (push) Blocked by required conditions
				
			Docker / Build and Push Server (push) Blocked by required conditions
				
			Docker / Docker Build & Push Server Success (push) Blocked by required conditions
				
			Docker / Docker Build & Push ML Success (push) Blocked by required conditions
				
			Docs build / pre-job (push) Waiting to run
				
			Docs build / Docs Build (push) Blocked by required conditions
				
			Static Code Analysis / pre-job (push) Waiting to run
				
			Static Code Analysis / Run Dart Code Analysis (push) Blocked by required conditions
				
			Static Code Analysis / zizmor (push) Waiting to run
				
			Test / pre-job (push) Waiting to run
				
			Test / Test & Lint Server (push) Blocked by required conditions
				
			Test / Unit Test CLI (push) Blocked by required conditions
				
			Test / Unit Test CLI (Windows) (push) Blocked by required conditions
				
			Test / Lint Web (push) Blocked by required conditions
				
			Test / Test Web (push) Blocked by required conditions
				
			Test / Test i18n (push) Blocked by required conditions
				
			Test / End-to-End Lint (push) Blocked by required conditions
				
			Test / Medium Tests (Server) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Server & CLI) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Server & CLI) (ubuntu-latest) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Web) (ubuntu-24.04-arm) (push) Blocked by required conditions
				
			Test / End-to-End Tests (Web) (ubuntu-latest) (push) Blocked by required conditions
				
			Test / End-to-End Tests Success (push) Blocked by required conditions
				
			Test / Unit Test Mobile (push) Blocked by required conditions
				
			Test / Unit Test ML (push) Blocked by required conditions
				
			Test / .github Files Formatting (push) Blocked by required conditions
				
			Test / ShellCheck (push) Waiting to run
				
			Test / OpenAPI Clients (push) Waiting to run
				
			Test / SQL Schema Checks (push) Waiting to run
				
			* wip * added user metadata key * wip * restructure onboarding system and add initial locale * update language card and fix translation updating * remove prints * new card formattings * fix cursed unmount effect * add OAuth route onboarding * remove required admin auth for onboarding * delete the hotwire button * update open-api files * delete import * fix failing oauth onboarding fields * fix e2e test * fix web e2e test * add onboarding to user registration e2e test * remove todo this was a holdover during dev and didn't get deleted * fix server small tests * use onDestroy to save settings rather than a bind:this * change to false for isOnboarded * fix other auth small test * provide type annotation in user factory metadata field * remove onboardingCompelted from UserDto * move translations to onboarding steps array and mark as derived so they update * break language selector out into its own component as per @danieldietzler suggestion * remove hello header on card * fix flixkering on server privacy card * label/id fixes * openapi --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
		| @@ -512,6 +512,7 @@ export type LoginCredentialDto = { | ||||
| export type LoginResponseDto = { | ||||
|     accessToken: string; | ||||
|     isAdmin: boolean; | ||||
|     isOnboarded: boolean; | ||||
|     name: string; | ||||
|     profileImagePath: string; | ||||
|     shouldChangePassword: boolean; | ||||
| @@ -1470,6 +1471,12 @@ export type UserUpdateMeDto = { | ||||
|     name?: string; | ||||
|     password?: string; | ||||
| }; | ||||
| export type OnboardingResponseDto = { | ||||
|     isOnboarded: boolean; | ||||
| }; | ||||
| export type OnboardingDto = { | ||||
|     isOnboarded: boolean; | ||||
| }; | ||||
| export type CreateProfileImageDto = { | ||||
|     file: Blob; | ||||
| }; | ||||
| @@ -3582,6 +3589,32 @@ export function setUserLicense({ licenseKeyDto }: { | ||||
|         body: licenseKeyDto | ||||
|     }))); | ||||
| } | ||||
| export function deleteUserOnboarding(opts?: Oazapfts.RequestOpts) { | ||||
|     return oazapfts.ok(oazapfts.fetchText("/users/me/onboarding", { | ||||
|         ...opts, | ||||
|         method: "DELETE" | ||||
|     })); | ||||
| } | ||||
| export function getUserOnboarding(opts?: Oazapfts.RequestOpts) { | ||||
|     return oazapfts.ok(oazapfts.fetchJson<{ | ||||
|         status: 200; | ||||
|         data: OnboardingResponseDto; | ||||
|     }>("/users/me/onboarding", { | ||||
|         ...opts | ||||
|     })); | ||||
| } | ||||
| export function setUserOnboarding({ onboardingDto }: { | ||||
|     onboardingDto: OnboardingDto; | ||||
| }, opts?: Oazapfts.RequestOpts) { | ||||
|     return oazapfts.ok(oazapfts.fetchJson<{ | ||||
|         status: 200; | ||||
|         data: OnboardingResponseDto; | ||||
|     }>("/users/me/onboarding", oazapfts.json({ | ||||
|         ...opts, | ||||
|         method: "PUT", | ||||
|         body: onboardingDto | ||||
|     }))); | ||||
| } | ||||
| export function getMyPreferences(opts?: Oazapfts.RequestOpts) { | ||||
|     return oazapfts.ok(oazapfts.fetchJson<{ | ||||
|         status: 200; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user