UNPKG

react-naver-maps

Version:

React Navermaps API integration for modern development.

1 lines 2.3 kB
{"version":3,"sources":["../src/container.tsx"],"sourcesContent":["import { Suspense, useEffect, useMemo, useRef, useState, createElement } from 'react';\nimport type { ReactNode, ComponentPropsWithoutRef, CSSProperties, ComponentType } from 'react';\n\nimport { ContainerContext, ContainerContextType } from './contexts/container';\n\nexport type Props = {\n innerStyle?: CSSProperties;\n fallback?: ReactNode;\n /**\n * 일반 children 혹은 render function\n */\n children?: ReactNode | ComponentType;\n} & Omit<ComponentPropsWithoutRef<'div'>, 'children'>;\n\nconst innerDefaultStyle: CSSProperties = { top: 0, left: 0, width: '100%', height: '100%', position: 'absolute', zIndex: 0 };\n\nexport function Container({ children, fallback, innerStyle = innerDefaultStyle, ...restProps }: Props) {\n const ref = useRef(null);\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n const containerContext = useMemo<ContainerContextType>(() => ({ element: ref.current }), [ref.current]);\n\n return (\n <div {...restProps} style={{ position: 'relative', ...restProps.style }}>\n <div key='mapdiv' ref={ref} style={innerStyle} />\n {isMounted && ref.current ? (\n <ContainerContext.Provider value={containerContext}>\n <Suspense fallback={null}>\n {typeof children === 'function' ? createElement(children as ComponentType) : children}\n </Suspense>\n </ContainerContext.Provider>\n ) : fallback}\n </div>\n );\n}\n"],"mappings":";;;;;AAAA,SAAS,UAAU,WAAW,SAAS,QAAQ,UAAU,qBAAqB;AA2B1E,SACE,KADF;AAbJ,IAAM,oBAAmC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,QAAQ,QAAQ,QAAQ,UAAU,YAAY,QAAQ,EAAE;AAEpH,SAAS,UAAU,EAAE,UAAU,UAAU,aAAa,sBAAsB,UAAU,GAAU;AACrG,QAAM,MAAM,OAAO,IAAI;AACvB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,YAAU,MAAM;AACd,iBAAa,IAAI;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAmB,QAA8B,OAAO,EAAE,SAAS,IAAI,QAAQ,IAAI,CAAC,IAAI,OAAO,CAAC;AAEtG,SACE,qBAAC;AAAA,IAAK,GAAG;AAAA,IAAW,OAAO,EAAE,UAAU,YAAY,GAAG,UAAU,MAAM;AAAA,IACpE;AAAA,0BAAC;AAAA,QAAiB;AAAA,QAAU,OAAO;AAAA,SAA1B,QAAsC;AAAA,MAC9C,aAAa,IAAI,UAChB,oBAAC,iBAAiB,UAAjB;AAAA,QAA0B,OAAO;AAAA,QAChC,8BAAC;AAAA,UAAS,UAAU;AAAA,UACjB,iBAAO,aAAa,aAAa,cAAc,QAAyB,IAAI;AAAA,SAC/E;AAAA,OACF,IACE;AAAA;AAAA,GACN;AAEJ;","names":[]}