rdesign/frontend/node_modules/@copilotkitnext/react/dist/hooks/use-keyboard-height.cjs.map

1 line
2.8 KiB
Plaintext

{"version":3,"file":"use-keyboard-height.cjs","names":[],"sources":["../../src/hooks/use-keyboard-height.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\nexport interface KeyboardState {\n isKeyboardOpen: boolean;\n keyboardHeight: number;\n availableHeight: number;\n viewportHeight: number;\n}\n\n/**\n * Hook to detect mobile keyboard appearance and calculate available viewport height.\n * Uses the Visual Viewport API to track keyboard state on mobile devices.\n *\n * @returns KeyboardState object with keyboard information\n */\nexport function useKeyboardHeight(): KeyboardState {\n const [keyboardState, setKeyboardState] = useState<KeyboardState>({\n isKeyboardOpen: false,\n keyboardHeight: 0,\n availableHeight: typeof window !== \"undefined\" ? window.innerHeight : 0,\n viewportHeight: typeof window !== \"undefined\" ? window.innerHeight : 0,\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n // Check if Visual Viewport API is available\n const visualViewport = window.visualViewport;\n if (!visualViewport) {\n return;\n }\n\n const updateKeyboardState = () => {\n const layoutHeight = window.innerHeight;\n const visualHeight = visualViewport.height;\n\n // Calculate keyboard height (difference between layout and visual viewport)\n const keyboardHeight = Math.max(0, layoutHeight - visualHeight);\n\n // Keyboard is considered open if the height difference is significant (> 150px)\n const isKeyboardOpen = keyboardHeight > 150;\n\n setKeyboardState({\n isKeyboardOpen,\n keyboardHeight,\n availableHeight: visualHeight,\n viewportHeight: layoutHeight,\n });\n };\n\n // Initial state\n updateKeyboardState();\n\n // Listen for viewport changes\n visualViewport.addEventListener(\"resize\", updateKeyboardState);\n visualViewport.addEventListener(\"scroll\", updateKeyboardState);\n\n return () => {\n visualViewport.removeEventListener(\"resize\", updateKeyboardState);\n visualViewport.removeEventListener(\"scroll\", updateKeyboardState);\n };\n }, []);\n\n return keyboardState;\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,oBAAmC;CACjD,MAAM,CAAC,eAAe,wCAA4C;EAChE,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB,OAAO,WAAW,cAAc,OAAO,cAAc;EACtE,gBAAgB,OAAO,WAAW,cAAc,OAAO,cAAc;EACtE,CAAC;AAEF,4BAAgB;AACd,MAAI,OAAO,WAAW,YACpB;EAIF,MAAM,iBAAiB,OAAO;AAC9B,MAAI,CAAC,eACH;EAGF,MAAM,4BAA4B;GAChC,MAAM,eAAe,OAAO;GAC5B,MAAM,eAAe,eAAe;GAGpC,MAAM,iBAAiB,KAAK,IAAI,GAAG,eAAe,aAAa;AAK/D,oBAAiB;IACf,gBAHqB,iBAAiB;IAItC;IACA,iBAAiB;IACjB,gBAAgB;IACjB,CAAC;;AAIJ,uBAAqB;AAGrB,iBAAe,iBAAiB,UAAU,oBAAoB;AAC9D,iBAAe,iBAAiB,UAAU,oBAAoB;AAE9D,eAAa;AACX,kBAAe,oBAAoB,UAAU,oBAAoB;AACjE,kBAAe,oBAAoB,UAAU,oBAAoB;;IAElE,EAAE,CAAC;AAEN,QAAO"}