"use strict"; 'use client'; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePlacement = exports.BottomAccessoryPlacementContext = void 0; const react_1 = require("react"); exports.BottomAccessoryPlacementContext = (0, react_1.createContext)(undefined); /** * A hook which returns the bottom accessory environment for given component. * * Note, that there can be two copies of the same component rendered for different environments. * The hook will ensure that component with correct environment is displayed. * * Because two instances of the component will exist simultaneously, **any state kept * inside the component will not be shared between the regular and inline versions**. * If your accessory needs synchronized or persistent state you must store that state * outside of bottom accessory component (e.g. passing via props or using context). * * Don't pass the environment obtained using this hook up the tree. * * @example * * ```tsx * import { NativeTabs } from 'expo-router/unstable-native-tabs'; * * // This component will have two copies rendered, one for `inline` and one for `regular` environment * function AccessoryContent(props) { * const placement = NativeTabs.BottomAccessory.usePlacement(); * if (placement === 'inline') { * return ; * } * return ; * } * * export default function Layout(){ * const [isPlaying, setIsPlaying] = useState(false); * return ( * * * * * * * ); * } * ``` * * @platform iOS 26+ */ const usePlacement = () => { const value = (0, react_1.use)(exports.BottomAccessoryPlacementContext); if (!value) { throw new Error('usePlacement can only be used within a component.'); } return value; }; exports.usePlacement = usePlacement; //# sourceMappingURL=hooks.js.map