one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 5.48 kB
Source Map (JSON)
{"version":3,"file":"StackHeaderComponent.js","names":[],"sources":["esm/layouts/stack-utils/StackHeaderComponent.js"],"sourcesContent":["import { Children, isValidElement } from \"react\";\nimport { NAVIGATOR_CONFIG } from \"../../headless/children\";\nimport {\n appendStackHeaderBackButtonPropsToOptions,\n StackHeaderBackButton\n} from \"./StackHeaderBackButton\";\nimport { StackHeaderLeft, appendStackHeaderLeftPropsToOptions } from \"./StackHeaderLeft\";\nimport {\n StackHeaderRight,\n appendStackHeaderRightPropsToOptions\n} from \"./StackHeaderRight\";\nimport {\n appendStackHeaderSearchBarPropsToOptions,\n StackHeaderSearchBar\n} from \"./StackHeaderSearchBar\";\nimport {\n appendStackHeaderTitlePropsToOptions,\n StackHeaderTitle\n} from \"./StackHeaderTitle\";\nimport { isChildOfType } from \"../../utils/children\";\nimport { flattenStyle } from \"../../utils/style\";\nfunction StackHeaderComponent(_props) {\n return null;\n}\nObject.assign(StackHeaderComponent, { [NAVIGATOR_CONFIG]: true });\nfunction appendStackHeaderPropsToOptions(options, props) {\n const flattenedStyle = flattenStyle(props.style);\n const flattenedLargeStyle = flattenStyle(props.largeStyle);\n if (props.hidden) {\n return { ...options, headerShown: false };\n }\n if (props.asChild) {\n return { ...options, header: () => props.children };\n }\n const isTransparent = flattenedStyle?.backgroundColor === \"transparent\";\n const hasCustomShadow = flattenedStyle?.shadowColor !== void 0;\n const hasBackgroundColor = flattenedStyle?.backgroundColor !== void 0;\n const hasLargeBackgroundColor = flattenedLargeStyle?.backgroundColor !== void 0;\n let updatedOptions = {\n ...options,\n headerShown: !props.hidden,\n headerBlurEffect: props.blurEffect,\n // Set headerTransparent when backgroundColor is 'transparent'\n // This works on both iOS and Android for normal headers\n // Note: When using SearchBar on iOS, if you don't have a ScrollView with\n // contentInsetAdjustmentBehavior=\"automatic\", set headerTransparent: false in options\n ...isTransparent && { headerTransparent: true },\n // Only set header styles when explicitly configured to avoid interfering with native defaults\n ...hasBackgroundColor && {\n headerStyle: { backgroundColor: flattenedStyle.backgroundColor }\n },\n ...hasLargeBackgroundColor && {\n headerLargeStyle: {\n backgroundColor: flattenedLargeStyle.backgroundColor\n }\n },\n // Only set shadow visibility when explicitly configured\n ...hasCustomShadow && {\n headerShadowVisible: flattenedStyle?.shadowColor !== \"transparent\"\n },\n ...flattenedLargeStyle?.shadowColor !== void 0 && {\n headerLargeTitleShadowVisible: flattenedLargeStyle?.shadowColor !== \"transparent\"\n }\n };\n function appendChildOptions(child, options2) {\n let result = options2;\n if (isChildOfType(child, StackHeaderTitle)) {\n result = appendStackHeaderTitlePropsToOptions(result, child.props);\n } else if (isChildOfType(child, StackHeaderLeft)) {\n result = appendStackHeaderLeftPropsToOptions(result, child.props);\n } else if (isChildOfType(child, StackHeaderRight)) {\n result = appendStackHeaderRightPropsToOptions(result, child.props);\n } else if (isChildOfType(child, StackHeaderBackButton)) {\n result = appendStackHeaderBackButtonPropsToOptions(result, child.props);\n } else if (isChildOfType(child, StackHeaderSearchBar)) {\n result = appendStackHeaderSearchBarPropsToOptions(result, child.props);\n } else {\n console.warn(\n `Warning: Unknown child element passed to Stack.Header: ${child.type.name ?? child.type}`\n );\n }\n return result;\n }\n Children.forEach(props.children, (child) => {\n if (isValidElement(child)) {\n updatedOptions = appendChildOptions(child, updatedOptions);\n }\n });\n return updatedOptions;\n}\nexport {\n StackHeaderComponent,\n appendStackHeaderPropsToOptions\n};\n//# sourceMappingURL=StackHeaderComponent.js.map\n"],"mappings":";;;;;;;;;;;AAqBA,SAAS,qBAAqB,QAAQ;CACpC,OAAO;AACT;AACA,OAAO,OAAO,sBAAsB,GAAG,mBAAmB,KAAK,CAAC;AAChE,SAAS,gCAAgC,SAAS,OAAO;CACvD,MAAM,iBAAiB,aAAa,MAAM,KAAK;CAC/C,MAAM,sBAAsB,aAAa,MAAM,UAAU;CACzD,IAAI,MAAM,QAAQ;EAChB,OAAO;GAAE,GAAG;GAAS,aAAa;EAAM;CAC1C;CACA,IAAI,MAAM,SAAS;EACjB,OAAO;GAAE,GAAG;GAAS,cAAc,MAAM;EAAS;CACpD;CACA,MAAM,gBAAgB,gBAAgB,oBAAoB;CAC1D,MAAM,kBAAkB,gBAAgB,gBAAgB,KAAK;CAC7D,MAAM,qBAAqB,gBAAgB,oBAAoB,KAAK;CACpE,MAAM,0BAA0B,qBAAqB,oBAAoB,KAAK;CAC9E,IAAI,iBAAiB;EACnB,GAAG;EACH,aAAa,CAAC,MAAM;EACpB,kBAAkB,MAAM;EAKxB,GAAG,iBAAiB,EAAE,mBAAmB,KAAK;EAE9C,GAAG,sBAAsB,EACvB,aAAa,EAAE,iBAAiB,eAAe,gBAAgB,EACjE;EACA,GAAG,2BAA2B,EAC5B,kBAAkB,EAChB,iBAAiB,oBAAoB,gBACvC,EACF;EAEA,GAAG,mBAAmB,EACpB,qBAAqB,gBAAgB,gBAAgB,cACvD;EACA,GAAG,qBAAqB,gBAAgB,KAAK,KAAK,EAChD,+BAA+B,qBAAqB,gBAAgB,cACtE;CACF;CACA,SAAS,mBAAmB,OAAO,UAAU;EAC3C,IAAI,SAAS;EACb,IAAI,cAAc,OAAO,gBAAgB,GAAG;GAC1C,SAAS,qCAAqC,QAAQ,MAAM,KAAK;EACnE,OAAO,IAAI,cAAc,OAAO,eAAe,GAAG;GAChD,SAAS,oCAAoC,QAAQ,MAAM,KAAK;EAClE,OAAO,IAAI,cAAc,OAAO,gBAAgB,GAAG;GACjD,SAAS,qCAAqC,QAAQ,MAAM,KAAK;EACnE,OAAO,IAAI,cAAc,OAAO,qBAAqB,GAAG;GACtD,SAAS,0CAA0C,QAAQ,MAAM,KAAK;EACxE,OAAO,IAAI,cAAc,OAAO,oBAAoB,GAAG;GACrD,SAAS,yCAAyC,QAAQ,MAAM,KAAK;EACvE,OAAO;GACL,QAAQ,KACN,0DAA0D,MAAM,KAAK,QAAQ,MAAM,MACrF;EACF;EACA,OAAO;CACT;CACA,SAAS,QAAQ,MAAM,WAAW,UAAU;EAC1C,IAAI,eAAe,KAAK,GAAG;GACzB,iBAAiB,mBAAmB,OAAO,cAAc;EAC3D;CACF,CAAC;CACD,OAAO;AACT"}