mirror of
https://github.com/movie-web/native-app.git
synced 2025-09-13 16:43:25 +00:00
fix: player controls touch events on iOS
This commit is contained in:
@@ -9,15 +9,9 @@ interface ControlsProps extends React.ComponentProps<typeof TouchableOpacity> {
|
||||
|
||||
export const Controls = ({ children, className }: ControlsProps) => {
|
||||
const idle = usePlayerStore((state) => state.interface.isIdle);
|
||||
const setIsIdle = usePlayerStore((state) => state.setIsIdle);
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
setIsIdle(false);
|
||||
}}
|
||||
className={className}
|
||||
>
|
||||
<TouchableOpacity className={className}>
|
||||
{!idle && children}
|
||||
</TouchableOpacity>
|
||||
);
|
||||
|
@@ -1,21 +1,31 @@
|
||||
import { View } from "react-native";
|
||||
import { TouchableWithoutFeedback, View } from "react-native";
|
||||
|
||||
import { usePlayerStore } from "~/stores/player/store";
|
||||
import { Controls } from "./Controls";
|
||||
import { PlayButton } from "./PlayButton";
|
||||
import { SeekButton } from "./SeekButton";
|
||||
|
||||
export const MiddleControls = () => {
|
||||
const idle = usePlayerStore((state) => state.interface.isIdle);
|
||||
const setIsIdle = usePlayerStore((state) => state.setIsIdle);
|
||||
|
||||
const handleTouch = () => {
|
||||
setIsIdle(!idle);
|
||||
};
|
||||
|
||||
return (
|
||||
<View className="absolute flex h-full w-full flex-1 flex-row items-center justify-center gap-24">
|
||||
<Controls>
|
||||
<SeekButton type="backward" />
|
||||
</Controls>
|
||||
<Controls>
|
||||
<PlayButton />
|
||||
</Controls>
|
||||
<Controls>
|
||||
<SeekButton type="forward" />
|
||||
</Controls>
|
||||
</View>
|
||||
<TouchableWithoutFeedback onPress={handleTouch}>
|
||||
<View className="absolute flex h-full w-full flex-1 flex-row items-center justify-center gap-24">
|
||||
<Controls>
|
||||
<SeekButton type="backward" />
|
||||
</Controls>
|
||||
<Controls>
|
||||
<PlayButton />
|
||||
</Controls>
|
||||
<Controls>
|
||||
<SeekButton type="forward" />
|
||||
</Controls>
|
||||
</View>
|
||||
</TouchableWithoutFeedback>
|
||||
);
|
||||
};
|
||||
|
Reference in New Issue
Block a user