"use client"; /** * BrowserHintOverlay 浏览器提示 * * * * 用途:在应用内浏览器(WebView、微信内置浏览器等)中显示提示, * 引导用户使用外部浏览器访问。 * * 行为: * - 开发环境始终显示(测试方便) * - 生产环境仅在应用内浏览器中显示 * - 视觉:右上角 👆 + 模糊背景气泡 */ import { useState } from "react"; import { BrowserDetector } from "@/utils"; import styles from "./browser-hint-overlay.module.css"; export interface BrowserHintOverlayProps { /** 自定义提示文本 */ text?: string; /** 强制显示(开发模式测试用) */ forceShow?: boolean; } const DEFAULT_TEXT = "Tap ⋮ , open in browser\nfor better chat"; export function BrowserHintOverlay({ text = DEFAULT_TEXT, forceShow = false, }: BrowserHintOverlayProps) { // lazy initializer:首次渲染即计算(避免 useEffect 中调 setState 的 lint 错) const [isInAppBrowser] = useState(BrowserDetector.isInAppBrowser); // 开发模式或应用内浏览器才显示 const shouldShow = forceShow || isInAppBrowser; if (!shouldShow) return null; return (