web: ask before a saved photo goes

Removing a saved frame is not like removing a note: its history goes with it,
and nothing on screen said so. A shared modal now names the photo, warns how
many looks ride along, offers the stored file as a download first, and only
then deletes — from MY PHOTOS in the studio and from the folder page alike.
This commit is contained in:
2026-09-18 15:47:06 +07:00
parent 97836fde8a
commit 78fe2b097b
4 changed files with 98 additions and 9 deletions
+7 -4
View File
@@ -14,6 +14,7 @@ export const en: Dict = {
'nav.guest': 'Guest',
'act.undo': 'UNDO',
'act.redo': 'REDO',
'act.reset': 'RESET',
'act.export': 'EXPORT',
'act.exporting': 'Exporting…',
@@ -129,14 +130,16 @@ export const en: Dict = {
'save.photoFull': 'That is all {max} — remove one in My photos.',
'save.photoNoSource': 'Load a photo first.',
'save.photoFailed': 'Could not save the photo: {msg}',
'myp.newOn': 'NEW SAVES: FILM STRIP',
'myp.newOff': 'NEW SAVES: PRIVATE',
'myp.thisOn': 'THIS PHOTO: FILM STRIP',
'myp.thisOff': 'THIS PHOTO: PRIVATE',
'myp.empty': 'NO SAVED PHOTOS YET.',
'myp.history': 'HISTORY',
'myp.historyEmpty': 'NO EARLIER SAVES YET.',
'myp.consent': 'Allow this photo on the landing page',
'myp.remove': 'REMOVE PHOTO',
'del.title': 'REMOVE THIS PHOTO',
'del.warning': 'Removing this photo also removes the {n} looks its history kept before the last saves — they cannot be recovered. Download the photo first if you want to keep it.',
'del.download': 'DOWNLOAD FIRST',
'del.confirm': 'DELETE PHOTO',
'del.cancel': 'CANCEL',
'photo.contribute': 'CONTRIBUTE A PHOTO',
'photo.uploading': 'UPLOADING…',
+7 -4
View File
@@ -21,6 +21,7 @@ export const vi = {
'nav.guest': 'Khách',
'act.undo': 'HOÀN TÁC',
'act.redo': 'LÀM LẠI',
'act.reset': 'ĐẶT LẠI',
'act.export': 'XUẤT ẢNH',
'act.exporting': 'Đang xuất…',
@@ -137,14 +138,16 @@ export const vi = {
'save.photoFull': 'Đã đủ {max} ảnh — xoá bớt trong Ảnh của tôi.',
'save.photoNoSource': 'Chưa có ảnh nào để lưu.',
'save.photoFailed': 'Không lưu được ảnh: {msg}',
'myp.newOn': 'BẢN LƯU MỚI: LÊN DẢI PHIM',
'myp.newOff': 'BẢN LƯU MỚI: RIÊNG TƯ',
'myp.thisOn': 'ẢNH NÀY: LÊN DẢI PHIM',
'myp.thisOff': 'ẢNH NÀY: RIÊNG TƯ',
'myp.empty': 'CHƯA LƯU ẢNH NÀO.',
'myp.history': 'LỊCH SỬ',
'myp.historyEmpty': 'CHƯA CÓ MỐC LƯU NÀO TRƯỚC ĐÓ.',
'myp.consent': 'Cho phép ảnh này lên landing page',
'myp.remove': 'XOÁ ẢNH',
'del.title': 'XOÁ ẢNH NÀY',
'del.warning': 'Xoá ảnh này sẽ xoá tất cả history đã lưu trước đó ({n} look) và không khôi phục được. Cần tải ảnh về trước khi xoá.',
'del.download': 'TẢI VỀ TRƯỚC',
'del.confirm': 'XOÁ ẢNH',
'del.cancel': 'HUỶ',
'photo.contribute': 'ĐÓNG GÓP ẢNH',
'photo.uploading': 'ĐANG TẢI…',