22 lines
523 B
TypeScript
22 lines
523 B
TypeScript
import { createContext } from 'react'
|
|
|
|
export type Props = {
|
|
/**
|
|
* Exit (unmount) the whole Ink app.
|
|
*/
|
|
readonly exit: (error?: Error) => void
|
|
}
|
|
|
|
/**
|
|
* `AppContext` is a React context, which exposes a method to manually exit the app (unmount).
|
|
*/
|
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
const AppContext = createContext<Props>({
|
|
exit() {},
|
|
})
|
|
|
|
// eslint-disable-next-line custom-rules/no-top-level-side-effects
|
|
AppContext.displayName = 'InternalAppContext'
|
|
|
|
export default AppContext
|