Files
dukang/apps/mini-user/src/components/PageNavBar.tsx
T
jacy 5a26841d3a
CI / verify (pull_request) Has been cancelled
fix(h5): hide in-page nav titles that duplicate WeChat chrome
Keep back buttons and header layout. mini-user only hides titles on H5; partner/shop hide .app-page-title and legal titles; shared PageHeader defaults showTitle=false.
2026-07-16 08:05:44 +08:00

57 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { ReactNode } from 'react';
import { View, Text } from '@tarojs/components';
import { subPageNavBarStyle, subPageNavContentStyle, useNavBarMetrics } from '../lib/nav-bar';
type PageNavBarProps = {
title: string;
solid?: boolean;
titleVisible?: boolean;
onBack?: () => void;
right?: ReactNode;
};
const isH5 = process.env.TARO_ENV === 'h5';
/** 内页自定义导航栏(返回 + 标题 + 右侧操作),适配刘海屏 */
export default function PageNavBar({
title,
solid = false,
titleVisible = true,
onBack,
right,
}: PageNavBarProps) {
const metrics = useNavBarMetrics();
const showTitle = !isH5 && titleVisible;
return (
<View
className={`page-nav-bar${solid ? ' page-nav-bar--solid' : ''}`}
style={subPageNavBarStyle(metrics)}
aria-label={title}
>
<Text
className={`page-nav-bar__title${showTitle ? ' page-nav-bar__title--visible' : ''}`}
>
{showTitle ? title : ''}
</Text>
<View
className="page-nav-bar__content"
style={subPageNavContentStyle(metrics)}
>
{onBack ? (
<View className="page-nav-bar__btn page-nav-bar__btn--back" onClick={onBack}>
<Text className="page-nav-bar__icon"></Text>
</View>
) : (
<View className="page-nav-bar__btn page-nav-bar__btn--back page-nav-bar__btn--placeholder" />
)}
{right ? (
<View className="page-nav-bar__right-slot">{right}</View>
) : (
<View className="page-nav-bar__btn page-nav-bar__btn--right page-nav-bar__btn--placeholder" />
)}
</View>
</View>
);
}