diff --git a/app/javascript/mastodon/containers/media_container.jsx b/app/javascript/mastodon/containers/media_container.jsx index d18602e3b5..f5f38d8902 100644 --- a/app/javascript/mastodon/containers/media_container.jsx +++ b/app/javascript/mastodon/containers/media_container.jsx @@ -11,7 +11,7 @@ import Poll from 'mastodon/components/poll'; import Audio from 'mastodon/features/audio'; import Card from 'mastodon/features/status/components/card'; import MediaModal from 'mastodon/features/ui/components/media_modal'; -import Video from 'mastodon/features/video'; +import { Video } from 'mastodon/features/video'; import { IntlProvider } from 'mastodon/locales'; import { getScrollbarWidth } from 'mastodon/utils/scrollbar'; diff --git a/app/javascript/mastodon/features/alt_text_modal/index.tsx b/app/javascript/mastodon/features/alt_text_modal/index.tsx index 80c4f36105..8c5e552eb8 100644 --- a/app/javascript/mastodon/features/alt_text_modal/index.tsx +++ b/app/javascript/mastodon/features/alt_text_modal/index.tsx @@ -30,7 +30,7 @@ import { Skeleton } from 'mastodon/components/skeleton'; import Audio from 'mastodon/features/audio'; import { CharacterCounter } from 'mastodon/features/compose/components/character_counter'; import { Tesseract as fetchTesseract } from 'mastodon/features/ui/util/async-components'; -import Video, { getPointerPosition } from 'mastodon/features/video'; +import { Video, getPointerPosition } from 'mastodon/features/video'; import { me } from 'mastodon/initial_state'; import type { MediaAttachment } from 'mastodon/models/media_attachment'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; @@ -134,17 +134,7 @@ const Preview: React.FC<{ return; } - const { x, y } = getPointerPosition(nodeRef.current, e); - setDragging(true); - draggingRef.current = true; - onPositionChange([x, y]); - }, - [setDragging, onPositionChange], - ); - - const handleTouchStart = useCallback( - (e: React.TouchEvent) => { - const { x, y } = getPointerPosition(nodeRef.current, e); + const { x, y } = getPointerPosition(nodeRef.current, e.nativeEvent); setDragging(true); draggingRef.current = true; onPositionChange([x, y]); @@ -165,28 +155,12 @@ const Preview: React.FC<{ } }; - const handleTouchEnd = () => { - setDragging(false); - draggingRef.current = false; - }; - - const handleTouchMove = (e: TouchEvent) => { - if (draggingRef.current) { - const { x, y } = getPointerPosition(nodeRef.current, e); - onPositionChange([x, y]); - } - }; - document.addEventListener('mouseup', handleMouseUp); document.addEventListener('mousemove', handleMouseMove); - document.addEventListener('touchend', handleTouchEnd); - document.addEventListener('touchmove', handleTouchMove); return () => { document.removeEventListener('mouseup', handleMouseUp); document.removeEventListener('mousemove', handleMouseMove); - document.removeEventListener('touchend', handleTouchEnd); - document.removeEventListener('touchmove', handleTouchMove); }; }, [setDragging, onPositionChange]); @@ -204,7 +178,6 @@ const Preview: React.FC<{ alt='' role='presentation' onMouseDown={handleMouseDown} - onTouchStart={handleTouchStart} />
); diff --git a/app/javascript/mastodon/features/audio/index.jsx b/app/javascript/mastodon/features/audio/index.jsx index dc48756906..53ce3f0bdb 100644 --- a/app/javascript/mastodon/features/audio/index.jsx +++ b/app/javascript/mastodon/features/audio/index.jsx @@ -27,8 +27,8 @@ import Visualizer from './visualizer'; const messages = defineMessages({ play: { id: 'video.play', defaultMessage: 'Play' }, pause: { id: 'video.pause', defaultMessage: 'Pause' }, - mute: { id: 'video.mute', defaultMessage: 'Mute sound' }, - unmute: { id: 'video.unmute', defaultMessage: 'Unmute sound' }, + mute: { id: 'video.mute', defaultMessage: 'Mute' }, + unmute: { id: 'video.unmute', defaultMessage: 'Unmute' }, download: { id: 'video.download', defaultMessage: 'Download file' }, hide: { id: 'audio.hide', defaultMessage: 'Hide audio' }, }); diff --git a/app/javascript/mastodon/features/picture_in_picture/index.tsx b/app/javascript/mastodon/features/picture_in_picture/index.tsx index 51b72f9725..9bae1b5545 100644 --- a/app/javascript/mastodon/features/picture_in_picture/index.tsx +++ b/app/javascript/mastodon/features/picture_in_picture/index.tsx @@ -2,7 +2,7 @@ import { useCallback } from 'react'; import { removePictureInPicture } from 'mastodon/actions/picture_in_picture'; import Audio from 'mastodon/features/audio'; -import Video from 'mastodon/features/video'; +import { Video } from 'mastodon/features/video'; import { useAppDispatch, useAppSelector } from 'mastodon/store/typed_functions'; import Footer from './components/footer'; @@ -35,6 +35,10 @@ export const PictureInPicture: React.FC = () => { accentColor, } = pipState; + if (!src) { + return null; + } + let player; switch (type) { @@ -42,11 +46,10 @@ export const PictureInPicture: React.FC = () => { player = (