Tengo un componente de tarjeta que el usuario puede mover hacia un lado para revelar botones.
Si el usuario no tocó ningún botón después de 2 segundos, quiero deslizar la tarjeta nuevamente a su lugar. Traté de lograr esto con setTimeout, pero aparece un error que dice que necesito usar runOnJS, lo intenté, pero obtuve el mismo error. Esto es lo que tengo:
const panGesture = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({ onEnd: event => { const shouldStick = translateX.value >= TRANSLATE_X_THRESHOULD; if (shouldStick) { translateX.value = withTiming(120); setTimeout(() => { translateX.value = withTiming(0); }, 2000) } else { translateX.value = withTiming(0); } }, }); También intenté envolver setTimeout con runOnJS, así:
runOnJS(() => { setTimeout(() => { translateX.value = withTiming(0); }, 2000); });pero tampoco funcionó. ¿Es la forma correcta de lograr lo que estoy tratando de lograr?