one
Version:
One is a new React Framework that makes Vite serve both native and web.
100 lines (98 loc) • 5.13 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: !0
});
},
__copyProps = (to, from, except, desc) => {
if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
return to;
};
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
value: !0
}), mod);
var StackHeaderComponent_exports = {};
__export(StackHeaderComponent_exports, {
StackHeaderComponent: () => StackHeaderComponent,
appendStackHeaderPropsToOptions: () => appendStackHeaderPropsToOptions
});
module.exports = __toCommonJS(StackHeaderComponent_exports);
var import_react = require("react"),
import_react_native = require("react-native"),
import_StackHeaderBackButton = require("./StackHeaderBackButton.native.js"),
import_StackHeaderLeft = require("./StackHeaderLeft.native.js"),
import_StackHeaderRight = require("./StackHeaderRight.native.js"),
import_StackHeaderSearchBar = require("./StackHeaderSearchBar.native.js"),
import_StackHeaderTitle = require("./StackHeaderTitle.native.js"),
import_children = require("../../utils/children.native.js");
function StackHeaderComponent(_props) {
return null;
}
function appendStackHeaderPropsToOptions(options, props) {
var flattenedStyle = import_react_native.StyleSheet.flatten(props.style),
flattenedLargeStyle = import_react_native.StyleSheet.flatten(props.largeStyle);
if (props.hidden) return {
...options,
headerShown: !1
};
if (props.asChild) return {
...options,
header: function () {
return props.children;
}
};
var isTransparent = flattenedStyle?.backgroundColor === "transparent",
hasCustomShadow = flattenedStyle?.shadowColor !== void 0,
hasBackgroundColor = flattenedStyle?.backgroundColor !== void 0,
hasLargeBackgroundColor = flattenedLargeStyle?.backgroundColor !== void 0,
updatedOptions = {
...options,
headerShown: !props.hidden,
headerBlurEffect: props.blurEffect,
// Set headerTransparent when backgroundColor is 'transparent'
// This works on both iOS and Android for normal headers
// Note: When using SearchBar on iOS, if you don't have a ScrollView with
// contentInsetAdjustmentBehavior="automatic", set headerTransparent: false in options
...(isTransparent && {
headerTransparent: !0
}),
// Only set header styles when explicitly configured to avoid interfering with native defaults
...(hasBackgroundColor && {
headerStyle: {
backgroundColor: flattenedStyle.backgroundColor
}
}),
...(hasLargeBackgroundColor && {
headerLargeStyle: {
backgroundColor: flattenedLargeStyle.backgroundColor
}
}),
// Only set shadow visibility when explicitly configured
...(hasCustomShadow && {
headerShadowVisible: flattenedStyle?.shadowColor !== "transparent"
}),
...(flattenedLargeStyle?.shadowColor !== void 0 && {
headerLargeTitleShadowVisible: flattenedLargeStyle?.shadowColor !== "transparent"
})
};
function appendChildOptions(child, options2) {
var result = options2;
if ((0, import_children.isChildOfType)(child, import_StackHeaderTitle.StackHeaderTitle)) result = (0, import_StackHeaderTitle.appendStackHeaderTitlePropsToOptions)(result, child.props);else if ((0, import_children.isChildOfType)(child, import_StackHeaderLeft.StackHeaderLeft)) result = (0, import_StackHeaderLeft.appendStackHeaderLeftPropsToOptions)(result, child.props);else if ((0, import_children.isChildOfType)(child, import_StackHeaderRight.StackHeaderRight)) result = (0, import_StackHeaderRight.appendStackHeaderRightPropsToOptions)(result, child.props);else if ((0, import_children.isChildOfType)(child, import_StackHeaderBackButton.StackHeaderBackButton)) result = (0, import_StackHeaderBackButton.appendStackHeaderBackButtonPropsToOptions)(result, child.props);else if ((0, import_children.isChildOfType)(child, import_StackHeaderSearchBar.StackHeaderSearchBar)) result = (0, import_StackHeaderSearchBar.appendStackHeaderSearchBarPropsToOptions)(result, child.props);else {
var _child_type_name;
console.warn(`Warning: Unknown child element passed to Stack.Header: ${(_child_type_name = child.type.name) !== null && _child_type_name !== void 0 ? _child_type_name : child.type}`);
}
return result;
}
return import_react.Children.forEach(props.children, function (child) {
/* @__PURE__ */(0, import_react.isValidElement)(child) && (updatedOptions = appendChildOptions(child, updatedOptions));
}), updatedOptions;
}
//# sourceMappingURL=StackHeaderComponent.native.js.map