ENH - overhaul Photos media experience

This commit is contained in:
smx.pusha
2026-08-14 10:46:36 +02:00
parent 6cfdd44551
commit 3fc0ebb08f
18 changed files with 1651 additions and 267 deletions
+1
View File
@@ -6,6 +6,7 @@ import type { PhoneMedia } from '@/types/media'
const photo: PhoneMedia = {
createdAt: 1_786_035_600,
favorite: false,
id: 17,
mediaType: 'photo',
url: 'https://media.example/photo.jpg',
+62 -26
View File
@@ -362,6 +362,7 @@ const defaultLocales: LocaleTree = {
document: 'Document',
link: 'Link',
location: 'Location',
media: 'Media',
note: 'Note',
photo: 'Photo',
playlist: 'Playlist',
@@ -489,7 +490,7 @@ const defaultLocales: LocaleTree = {
category: 'Category',
status: 'Publication Status',
cover: 'Cover Image',
chooseCover: 'Choose from Gallery',
chooseCover: 'Choose from Photos',
changeCover: 'Change Cover',
removeCover: 'Remove Cover',
coverAlt: 'Selected article cover',
@@ -561,7 +562,7 @@ const defaultLocales: LocaleTree = {
login: 'Log in',
register: 'Register',
ifruitEmail: 'iFruit address',
gallery: 'Gallery',
gallery: 'Photos',
camera: 'Camera',
backToLogin: 'Back to CrewLink login',
authErrors: {
@@ -783,9 +784,9 @@ const defaultLocales: LocaleTree = {
photo: 'Profile photo',
profilePhotos: 'Profile photos',
profilePhotosBody:
'Choose up to six photos from Gallery. Your first photo is shown first.',
'Choose up to six photos from Photos. Your first photo is shown first.',
addPhotos: 'Add photos',
choosePhotos: 'Choose from Gallery',
choosePhotos: 'Choose from Photos',
primaryPhoto: 'Main',
removePhoto: 'Remove photo {number}',
yourName: 'Your name',
@@ -904,7 +905,7 @@ const defaultLocales: LocaleTree = {
errors: {
invalid_profile: 'Check your name, age and profile text.',
invalid_profile_photos:
'Choose up to six photos from your own Gallery.',
'Choose up to six photos from your own Photos library.',
request_failed: 'Flare could not save those changes. Try again.',
invalid_target: 'This profile is no longer available.',
invalid_choice: 'That swipe could not be saved.',
@@ -985,8 +986,8 @@ const defaultLocales: LocaleTree = {
story: 'Story',
choosePhotos: 'Choose photos',
choosePhoto: 'Choose photo',
choosePhotosHint: 'Select up to five photos from Gallery',
chooseStoryHint: 'Select one photo from Gallery',
choosePhotosHint: 'Select up to five photos from Photos',
chooseStoryHint: 'Select one photo from Photos',
selectedPhotos: '{count} selected',
changePhotos: 'Change selection',
caption: 'Caption',
@@ -1231,7 +1232,7 @@ const defaultLocales: LocaleTree = {
composerAudience: 'Everyone can join the conversation',
mediaTitle: 'Add to your feather',
mediaBody: 'Share up to four photos from your phone or take a new one.',
chooseGallery: 'Gallery',
chooseGallery: 'Photos',
chooseGalleryBody: 'Choose one or more saved photos',
takePhoto: 'Camera',
takePhotoBody: 'Take a new photo now',
@@ -1359,7 +1360,7 @@ const defaultLocales: LocaleTree = {
createBody:
'Choose a clip, set the cover and sound, then decide who can watch it.',
chooseVideo: 'Choose a video',
chooseVideoHint: 'Select one from Gallery',
chooseVideoHint: 'Select one from Photos',
changeVideo: 'Change',
caption: 'Caption',
captionPlaceholder: 'Write a caption...',
@@ -1435,7 +1436,7 @@ const defaultLocales: LocaleTree = {
accountType: 'Account type',
profilePhoto: 'Profile photo',
changePhoto: 'Change photo',
chooseFromGallery: 'Gallery',
chooseFromGallery: 'Photos',
takePhoto: 'Camera',
removePhoto: 'Remove photo',
noConnections: 'No profiles to show',
@@ -1797,7 +1798,7 @@ const defaultLocales: LocaleTree = {
phoneNumber: 'Phone Number',
officialContact: 'Official company contact',
choosePhoto: 'Choose Contact Photo',
chooseGallery: 'Gallery',
chooseGallery: 'Photos',
takePhoto: 'Camera',
removePhoto: 'Remove Photo',
call: 'Call',
@@ -2348,7 +2349,7 @@ const defaultLocales: LocaleTree = {
editProfile: 'Edit Profile',
editProfileBody: 'Change your public name and profile photo',
profilePhoto: 'Profile photo',
gallery: 'Gallery',
gallery: 'Photos',
camera: 'Camera',
profileDetails: 'Profile details',
profileName: 'Name',
@@ -2854,13 +2855,13 @@ const defaultLocales: LocaleTree = {
publish: 'Publish',
addPhotos: 'Add photos',
addPhotosBody:
'Choose up to six photos from your gallery or take new ones. Photos are optional and the first becomes the cover.',
chooseGallery: 'Choose from gallery',
'Choose up to six photos from Photos or take new ones. Photos are optional and the first becomes the cover.',
chooseGallery: 'Choose from Photos',
chooseGalleryBody: 'Use photos saved on this phone.',
takePhotos: 'Take photos',
takePhotosBody: 'Take several new photos for this listing.',
selectedPhotos: 'Selected photos',
gallery: 'Gallery',
gallery: 'Photos',
camera: 'Camera',
takePhoto: 'Take photo',
cameraHint:
@@ -3006,7 +3007,7 @@ const defaultLocales: LocaleTree = {
profileBio: 'Bio',
profileBioPlaceholder: 'Tell the city a little about yourself...',
profilePhoto: 'Profile photo',
profilePhotoHint: 'Choose a photo from your Gallery or take a new one.',
profilePhotoHint: 'Choose a photo from Photos or take a new one.',
removeProfilePhoto: 'Remove photo',
profileSave: 'Save profile',
profileCancel: 'Cancel',
@@ -3031,7 +3032,7 @@ const defaultLocales: LocaleTree = {
photos: 'Photos',
optional: 'optional',
camera: 'Camera',
gallery: 'Gallery',
gallery: 'Photos',
photoLimit: 'You can add up to six photos.',
cityMarktShare: 'Share to Local Pages',
cityMarktShared: 'Shared to Local Pages.',
@@ -3176,11 +3177,11 @@ const defaultLocales: LocaleTree = {
returnHelp: 'Space to return',
uploading: '{count} uploading',
saving: 'Saving video...',
openGallery: 'Open Gallery',
openGallery: 'Open Photos',
takePhoto: 'Take photo',
startRecording: 'Start recording',
stopRecording: 'Stop recording',
saved: 'Saved to Gallery.',
saved: 'Saved to Photos.',
zoom: 'Set camera zoom to {zoom}',
errors: {
cancelled: 'Capture cancelled.',
@@ -3607,15 +3608,50 @@ const defaultLocales: LocaleTree = {
},
},
photos: {
name: 'Gallery',
count: '{count} items',
loading: 'Loading Gallery...',
name: 'Photos',
library: 'Library',
counts: {
all: '{count} Objects',
allOne: '{count} Object',
favorite: '{count} Favorite',
favorites: '{count} Favorites',
photo: '{count} Photo',
photos: '{count} Photos',
video: '{count} Video',
videos: '{count} Videos',
},
sorting: {
action: 'Sort Photos',
title: 'Sort Order',
show: 'Show',
allItems: 'All Items',
favorites: 'Favorites',
newestFirst: 'Newest First',
oldestFirst: 'Oldest First',
},
selection: {
action: 'Select',
selected: '{count} Selected',
share: 'Share Selected',
shareTitle: '{count} Media Items',
shareCopy: '{count} photos and videos shared from Photos.',
delete: 'Delete Selected',
deleteTitle: 'Delete Selected Media?',
deleteBody: 'The selected photos and videos will be permanently deleted.',
deleted: '{count} media items deleted.',
limit: 'You can select up to 50 media items.',
},
loading: 'Loading Photos...',
emptyTitle: 'No Photos or Videos',
emptyBody: 'Captures from Camera will appear here.',
photo: 'Photo',
video: 'Video',
photoAlt: 'Gallery photo',
videoAlt: 'Gallery video',
photoAlt: 'Photo library image',
videoAlt: 'Photo library video',
today: 'Today',
yesterday: 'Yesterday',
addFavorite: 'Add to Favorites',
removeFavorite: 'Remove from Favorites',
delete: 'Delete media',
deleteTitle: 'Delete Media?',
deleteBody: 'This photo or video will be permanently deleted.',
@@ -3650,7 +3686,7 @@ const defaultLocales: LocaleTree = {
invalid_media_type: 'The media type is invalid.',
invalid_upload: 'The upload could not be verified.',
invalid_upload_token: 'The upload session is no longer valid.',
missing_config: 'Gallery uploads are not configured.',
missing_config: 'Photos uploads are not configured.',
import_media_not_allowed: 'This media item is not allowed.',
import_media_too_large: 'This media item is too large.',
import_media_unavailable: 'This media item is no longer available.',
@@ -3667,7 +3703,7 @@ const defaultLocales: LocaleTree = {
'Another media operation is already in progress.',
owner_changed: 'The active phone account changed.',
rate_limited: 'Too many media actions. Try again shortly.',
request_failed: 'The Gallery request failed.',
request_failed: 'The Photos request failed.',
request_timeout: 'The media service timed out.',
unsupported: 'This media format is not supported.',
upload_failed: 'The media upload failed.',