import React, { FC, memo, useRef, useState } from 'react' import { LayoutChangeEvent, useWindowDimensions } from 'react-native' import { runOnJS, useAnimatedReaction } from 'react-native-reanimated' import { StoryVideoProps } from '../../core/dto/componentsDTO' import * as Device from 'expo-device' import { ResizeMode, Video } from 'expo-av' const StoryVideo: FC = ({ uri, paused, isActive, onLoad, onLayout, ...props }) => { try { // eslint-disable-next-line global-require const ref = useRef(null) const { width: WIDTH, height: HEIGHT } = useWindowDimensions() const isTablet = Device.deviceType === Device.DeviceType.TABLET const [pausedValue, setPausedValue] = useState(!paused.value) const start = () => ref.current?.setPositionAsync(0) useAnimatedReaction( () => paused.value, (res, prev) => res !== prev && runOnJS(setPausedValue)(!res), [paused.value] ) useAnimatedReaction( () => isActive.value, res => res && runOnJS(start)(), [isActive.value] ) return (