/** * 화면이 보이는지 여부를 나타내는 문자열이에요. * @typedef {string} VisibilityState * @property {'visible'} visible - 화면이 보이는 상태예요. * @property {'hidden'} hidden - 화면이 보이지 않는 상태예요. */ export type VisibilityState = 'visible' | 'hidden'; /** * @callback VisibilityCallback * @param {VisibilityState} state - 화면의 보이는 상태를 나타내는 문자열이에요. */ export type VisibilityCallback = (state: VisibilityState) => void; /** * @public * @category 화면 제어 * @name useVisibilityChange * @kind function * @description * 화면의 보이는 상태가 변경될 때 해당 상태를 전달하는 콜백 함수를 호출해요. * 이 콜백 함수에는 [useVisibility](/react-native/reference/react-native-bedrock/화면%20제어/useVisibility.md)의 반환값이 전달돼요. 반환값이 `true`이면 `visible`, `false`이면 `hidden` 문자열이 전달돼요. * * @param {VisibilityCallback} callback - 화면이 보이는지 여부가 바뀔 때 그 변경을 전달하는 콜백 함수를 호출해요. * @example * * ### 화면의 보이는 상태가 변경될 때 로그를 남기는 예제 * * ```tsx * import { useState } from 'react'; * import { Text, View } from 'react-native'; * import { useVisibilityChange, VisibilityState } from 'react-native-bedrock'; * * export function UseVisibilityChangeExample() { * const [visibilityHistory, setVisibilityHistory] = useState([]); * * useVisibilityChange((visibility) => { * setVisibilityHistory((prev) => [...prev, visibility]); * }); * * return ( * * 홈 화면으로 나갔다 들어오면 로그가 남겨져요. * * {visibilityHistory.map((visibility, index) => ( * {JSON.stringify(visibility)} * ))} * * ); * } * ``` */ export declare function useVisibilityChange(callback: VisibilityCallback): void;