UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 3.25 kB
{"version":3,"file":"DomView.js","names":[],"sources":["esm/platform/web/DomView.js"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { flattenStyle } from \"../effects/normalize\";\nimport { jsx } from \"react/jsx-runtime\";\nconst VIEW_BASE = {\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: 0,\n position: \"relative\",\n boxSizing: \"border-box\",\n minWidth: 0,\n minHeight: 0\n};\nfunction domStyle(style) {\n const {\n paddingHorizontal,\n paddingVertical,\n marginHorizontal,\n marginVertical,\n ...rest\n } = flattenStyle(style);\n return {\n ...paddingHorizontal != null && { paddingLeft: paddingHorizontal, paddingRight: paddingHorizontal },\n ...paddingVertical != null && { paddingTop: paddingVertical, paddingBottom: paddingVertical },\n ...marginHorizontal != null && { marginLeft: marginHorizontal, marginRight: marginHorizontal },\n ...marginVertical != null && { marginTop: marginVertical, marginBottom: marginVertical },\n ...rest\n };\n}\nfunction DomView({\n testID,\n nativeID,\n onLayout,\n accessibilityLabel,\n style,\n baseStyle,\n children\n}) {\n const ref = useRef(null);\n const onLayoutRef = useRef(onLayout);\n onLayoutRef.current = onLayout;\n const observesLayout = onLayout != null;\n useEffect(() => {\n const node = ref.current;\n if (!observesLayout || !node) return;\n const observer = new ResizeObserver(() => {\n const layout = {\n x: node.offsetLeft,\n y: node.offsetTop,\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n const event = { nativeEvent: { layout }, timeStamp: Date.now() };\n onLayoutRef.current?.(event);\n });\n observer.observe(node);\n return () => observer.disconnect();\n }, [observesLayout]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref,\n \"data-testid\": testID,\n id: nativeID,\n \"aria-label\": accessibilityLabel,\n style: {\n ...VIEW_BASE,\n ...baseStyle,\n ...domStyle(style)\n },\n children\n }\n );\n}\nexport {\n DomView,\n VIEW_BASE,\n domStyle\n};\n//# sourceMappingURL=DomView.js.map\n"],"mappings":";;;;;AAGA,MAAM,YAAY;CAChB,SAAS;CACT,eAAe;CACf,YAAY;CACZ,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;AACb;AACA,SAAS,SAAS,OAAO;CACvB,MAAM,EACJ,mBACA,iBACA,kBACA,gBACA,GAAG,SACD,aAAa,KAAK;CACtB,OAAO;EACL,GAAG,qBAAqB,QAAQ;GAAE,aAAa;GAAmB,cAAc;EAAkB;EAClG,GAAG,mBAAmB,QAAQ;GAAE,YAAY;GAAiB,eAAe;EAAgB;EAC5F,GAAG,oBAAoB,QAAQ;GAAE,YAAY;GAAkB,aAAa;EAAiB;EAC7F,GAAG,kBAAkB,QAAQ;GAAE,WAAW;GAAgB,cAAc;EAAe;EACvF,GAAG;CACL;AACF;AACA,SAAS,QAAQ,EACf,QACA,UACA,UACA,oBACA,OACA,WACA,YACC;CACD,MAAM,MAAM,OAAO,IAAI;CACvB,MAAM,cAAc,OAAO,QAAQ;CACnC,YAAY,UAAU;CACtB,MAAM,iBAAiB,YAAY;CACnC,gBAAgB;EACd,MAAM,OAAO,IAAI;EACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM;EAC9B,MAAM,WAAW,IAAI,qBAAqB;GACxC,MAAM,SAAS;IACb,GAAG,KAAK;IACR,GAAG,KAAK;IACR,OAAO,KAAK;IACZ,QAAQ,KAAK;GACf;GACA,MAAM,QAAQ;IAAE,aAAa,EAAE,OAAO;IAAG,WAAW,KAAK,IAAI;GAAE;GAC/D,YAAY,UAAU,KAAK;EAC7B,CAAC;EACD,SAAS,QAAQ,IAAI;EACrB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,cAAc,CAAC;CACnB,OAAuB,oBACrB,OACA;EACE;EACA,eAAe;EACf,IAAI;EACJ,cAAc;EACd,OAAO;GACL,GAAG;GACH,GAAG;GACH,GAAG,SAAS,KAAK;EACnB;EACA;CACF,CACF;AACF"}