React Native Modalfy
v2.x
v2.x
  • Getting started
  • Installation
  • Guides
    • Creating a stack
    • Opening & closing
    • Passing params
    • Type checking with TypeScript
    • Subscribing to events
    • Using outside React
    • Upgrading from v1.x
  • API Reference
    • Types
      • ModalStackConfig
      • ModalOptions
      • ModalProp
      • ModalComponentProp
      • ModalComponentWithOptions
    • ModalProvider
    • createModalStack
    • useModal
    • withModal
    • modalfy
  • Blog
    • Announcing Modalfy v2
    • Stacks on stacks in React Native
    • Introducing a Modal Citizen
  • Others
    • Help
    • Contributing
    • Changelog
    • Github
Powered by GitBook
On this page

Was this helpful?

  1. Guides

Subscribing to events

PreviousType checking with TypeScriptNextUsing outside React

Last updated 4 years ago

Was this helpful?

Once in a while, we might want to perform some animations alongside the ones applied to our modals. One example could be animating the modal and something inside it at the same time. But to do so and have those animations happening in sync, we'd need to have access to the animatedValue Modalfy uses under the hood. Use cases like this are the reason why we decided to provide a way to hook into the library's internal events, thanks to modal.addListener().

./modals/EmptyModal.tsx
import React from 'react'

const EmptyModal = ({ modal: { addListener }) => {
  const modalListener = React.useRef()

  const handleAnimation = (value) => {
    console.log('Modal animatedValue:', value)
  }

  React.useEffect(() => {
    modalListener.current = addListener('onAnimate', handleAnimation)
    
    return () => {
      modalListener.current?.remove()
    }
  }, [])

  return (
    //...
  )
}

export default EmptyModal

onAnimate is the only event we support for now. If there is another one you'd like to have, please: !

> ModalComponentProp API
let us know