diff --git a/client-web/index.html b/client-web/index.html index 3e3b4e3..3fb7a5e 100644 --- a/client-web/index.html +++ b/client-web/index.html @@ -2,6 +2,8 @@ + + Knot Messenger diff --git a/client-web/src/core/infrastructure/i18n.ts b/client-web/src/core/infrastructure/i18n.ts index d6f984e..547d5d3 100644 --- a/client-web/src/core/infrastructure/i18n.ts +++ b/client-web/src/core/infrastructure/i18n.ts @@ -248,6 +248,7 @@ const translations = { you: 'вы', // Stories Editor cropVideo: 'Обрезка видео', + cropTool: 'Обрезка', trimVideo: 'Обрезать видео', trim: 'Обрезать', reset: 'Сбросить', @@ -279,6 +280,8 @@ const translations = { unmuteVideo: 'Включить звук', interactive: 'Интерактив', apply: 'Применить', + zoom: 'Масштаб', + rotation: 'Поворот', // User profile mediaTab: 'Медиа', gifs: 'GIF', @@ -622,6 +625,7 @@ const translations = { you: 'you', // Stories Editor cropVideo: 'Video Crop', + cropTool: 'Crop', trimVideo: 'Trim Video', trim: 'Trim', reset: 'Reset', @@ -653,6 +657,8 @@ const translations = { unmuteVideo: 'Unmute Video', interactive: 'Interactive', apply: 'Apply', + zoom: 'Zoom', + rotation: 'Rotation', // User profile mediaTab: 'Media', gifs: 'GIF', diff --git a/client-web/src/core/presentation/components/ui/ImageLightbox.tsx b/client-web/src/core/presentation/components/ui/ImageLightbox.tsx index d8fcc28..455c69f 100644 --- a/client-web/src/core/presentation/components/ui/ImageLightbox.tsx +++ b/client-web/src/core/presentation/components/ui/ImageLightbox.tsx @@ -99,8 +99,16 @@ export default function ImageLightbox({ url, images, initialIndex = 0, onClose } animate={{ scale: 1, opacity: 1 }} exit={{ scale: 0.8, opacity: 0 }} transition={{ duration: 0.2 }} + drag={gallery && total > 1 ? "x" : false} + dragConstraints={{ left: 0, right: 0 }} + dragElastic={0.4} + onDragEnd={(_, info) => { + const swipeThreshold = 50; + if (info.offset.x > swipeThreshold) goPrev(); + else if (info.offset.x < -swipeThreshold) goNext(); + }} onClick={(e) => e.stopPropagation()} - className="absolute inset-x-0 inset-y-12 flex items-center justify-center p-4" + className="absolute inset-x-0 inset-y-12 flex items-center justify-center p-4 touch-none" > {(currentType === 'video' || currentType === 'gif') ? (