fix(chat): restore Facebook keyboard avoidance

This commit is contained in:
2026-07-16 16:28:10 +08:00
parent 9d04176e90
commit 54b9031622
10 changed files with 642 additions and 121 deletions
@@ -1,11 +1,14 @@
/* ChatInputBar 输入栏容器样式(与 Dart chat_input_bar.dart 对齐) */
/* Keyboard inset is a total bottom inset, not an addition to normal spacing. */
.bar {
flex: 0 0 auto;
padding: 0
calc(var(--chat-inline-padding, 16px) + var(--app-safe-right, 0px))
calc(
var(--spacing-lg, 16px) + var(--app-safe-bottom, 0px)
max(
calc(var(--spacing-lg, 16px) + var(--app-safe-bottom, 0px)),
var(--chat-keyboard-bottom-inset, 0px)
)
calc(var(--chat-inline-padding, 16px) + var(--app-safe-left, 0px));
background: transparent;
+5 -2
View File
@@ -4,8 +4,8 @@ import { useRef, useState } from "react";
import { useChatDispatch } from "@/stores/chat/chat-context";
import { Logger } from "@/utils/logger";
import { useChatKeyboardAvoidance } from "../hooks/use-chat-keyboard-avoidance";
import { useChatKeyboardDiagnostics } from "../hooks/use-chat-keyboard-diagnostics";
import { useChatVirtualKeyboardOverlayExperiment } from "../hooks/use-chat-virtual-keyboard-overlay-experiment";
import { ChatInputTextField } from "./chat-input-text-field";
import { ChatSendButton } from "./chat-send-button";
import styles from "./chat-input-bar.module.css";
@@ -27,7 +27,10 @@ export function ChatInputBar({ disabled = false }: ChatInputBarProps) {
const hasContent = input.trim().length > 0;
useChatVirtualKeyboardOverlayExperiment();
useChatKeyboardAvoidance({
active: isFocused,
containerRef: barRef,
});
useChatKeyboardDiagnostics({ containerRef: barRef });
const handleInputChange = (value: string) => {