Skip to main content

Imperative Methods

Component Methods

TrueSheet has a couple of core methods that you'll be using most of the time. These methods are asynchronous so you can use async and await on them.

Define the sheet and provide a ref. We will be using the sheet to access these methods.

const sheet = useRef<TrueSheet>(null)

return (
<TrueSheet ref={sheet} detents={['auto', 0.8]}>
<View />
</TrueSheet>
)

present

Present the sheet. Optionally accepts a detent index and animated flag. See detents prop.

ParametersRequiredDefault
index: numberNo0
animated: booleanNotrue
await sheet.current?.present()

// Present without animation
await sheet.current?.present(0, false)

dismiss

Dismisses the sheet. Optionally accepts an animated flag.

ParametersRequiredDefault
animated: booleanNotrue
await sheet.current?.dismiss()

// Dismiss without animation
await sheet.current?.dismiss(false)

resize

Resizes the sheet programmatically by index. The sheet must be presented before calling this method.

ParametersRequired
index: numberYes
// Resize to 80%
await sheet.current?.resize(1)

Global Methods

You can also call the above methods statically without having access to a sheet's ref. This is particularly useful when you want to present a sheet from anywhere.

The API is similar to the component methods except for the required name prop. See this guide for example.

In the example below, we provide "my-sheet" as the name of our sheet.

const sheet = useRef<TrueSheet>(null)

return (
<TrueSheet name="my-sheet" detents={['auto', 0.8]}>
<View />
</TrueSheet>
)

You can then use these methods globally.

await TrueSheet.present('my-sheet')

// Present without animation
await TrueSheet.present('my-sheet', 0, false)
await TrueSheet.dismiss('my-sheet')

// Dismiss without animation
await TrueSheet.dismiss('my-sheet', false)
// Resize to 80%
await TrueSheet.resize('my-sheet', 0.8)