UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 1.11 kB
{"version":3,"file":"usePortalContainer.mjs","names":[],"sources":["../../src/hooks/usePortalContainer.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { LOBE_THEME_APP_ID } from '@/ThemeProvider';\n\nimport { useIsClient } from './useIsClient';\n\nexport const usePortalContainer = (containerAttr?: string): HTMLElement | null => {\n const isClient = useIsClient();\n\n return useMemo(() => {\n if (!isClient) return null;\n\n const themeApp = document.querySelector<HTMLElement>(`#${LOBE_THEME_APP_ID}`);\n if (themeApp) return themeApp;\n\n if (containerAttr) {\n const container = document.querySelector<HTMLElement>(`[${containerAttr}=\"true\"]`);\n if (container) return container;\n }\n\n return document.body;\n }, [isClient, containerAttr]);\n};\n"],"mappings":";;;;;;;AAQA,MAAa,sBAAsB,kBAA+C;CAChF,MAAM,WAAW,aAAa;AAE9B,QAAO,cAAc;AACnB,MAAI,CAAC,SAAU,QAAO;EAEtB,MAAM,WAAW,SAAS,cAA2B,IAAI,oBAAoB;AAC7E,MAAI,SAAU,QAAO;AAErB,MAAI,eAAe;GACjB,MAAM,YAAY,SAAS,cAA2B,IAAI,cAAc,UAAU;AAClF,OAAI,UAAW,QAAO;;AAGxB,SAAO,SAAS;IACf,CAAC,UAAU,cAAc,CAAC"}