feat(project-editor): reusable image-field (thumbnail+replace+remove), branding OG image+gallery

- shared app-image-field component: thumbnail preview, replace, remove, opens media-picker
- branding: add socialImageUrl + galleryUrls fields, wire to new image-field
- footer: logo + payment icon fields use image-field (drop manual media-picker plumbing)
- i18n: common.remove, adminCategories.replaceImage, builder.socialImage/gallery keys (en/ru/hy)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-17 15:22:45 +04:00
parent feda0f685f
commit b183410888
12 changed files with 175 additions and 71 deletions

View File

@@ -427,6 +427,9 @@ export const hy: Translations = {
logo: 'Լոգո',
smallLogo: 'Փոքր լոգո',
favicon: 'Favicon',
socialImage: 'Սոցիալական պատկեր',
gallery: 'Պատկերասրահ',
addGalleryImage: 'Ավելացնել պատկեր',
marketplaceTitle: 'Մարքեթփլեյսի վերնագիր',
primaryColor: 'Հիմնական գույն',
secondaryColor: 'Երկրորդական գույն',
@@ -572,6 +575,8 @@ export const hy: Translations = {
logoDesc: 'Ամբողջական լոգոյի պատկերի URL, ցուցադրվում է header-ում դեսքթոփի վրա։',
smallLogoDesc: 'Կոմպակտ լոգոյի URL՝ սահմանափակ տարածքի համար (օր․՝ mobile header)։',
faviconDesc: 'Բրաուզերի ներդիրի պատկերակի URL։ Պետք է լինի փոքր քառակուսի պատկեր։',
socialImageDesc: 'Կանխադրված պատկեր, երբ մարքեթփլեյսը կիսվում է սոցիալական ցանցերում (Open Graph)։',
galleryDesc: 'Լրացուցիչ բրենդային պատկերներ ապագա օգտագործման համար։',
marketplaceTitleDesc: 'Էջի վերնագիրը որոնողական համակարգերի և բրաուզերի ներդիրների համար։',
primaryColorDesc: 'Բրենդի հիմնական գույնը՝ հիմնական կոճակների և ընդգծումների համար։ Պետք է վավեր hex գույն լինի։',
secondaryColorDesc: 'Բրենդի երկրորդական գույնը՝ երկրորդական տարրերի համար։ Պետք է վավեր hex գույն լինի։',
@@ -765,6 +770,7 @@ export const hy: Translations = {
common: {
retry: 'Փորձել կրկին',
loading: 'Բեռնում...',
remove: 'Հեռացնել',
},
location: {
allRegions: 'Բոլոր տարածաշրջանները',
@@ -918,6 +924,7 @@ export const hy: Translations = {
},
adminCategories: {
chooseImage: 'Ընտրել պատկեր',
replaceImage: 'Փոխարինել պատկերը',
},
adminProducts: {
emptyTitle: 'Ապրանքներ չեն գտնվել',