[251023] fix: SearchPanel.new.v2 TInputSimple focused Text
🕐 커밋 시간: 2025. 10. 23. 20:56:55 📊 변경 통계: • 총 파일: 2개 • 추가: +8줄 • 삭제: -2줄 📝 수정된 파일: ~ com.twin.app.shoptime/src/views/SearchPanel/SearchPanel.new.v2.jsx ~ com.twin.app.shoptime/src/views/SearchPanel/TInput/TInputSimple.jsx 🔧 함수 변경 내용: 📄 com.twin.app.shoptime/src/views/SearchPanel/TInput/TInputSimple.jsx (javascript): 🔄 Modified: Spottable(), TInputSimple()
This commit is contained in:
@@ -1096,6 +1096,7 @@ export default function SearchPanel({ panelInfo, isOnTop, spotlightId }) {
|
||||
kind={KINDS.withIcon}
|
||||
icon={ICONS.search}
|
||||
text={searchQuery} // ✨ [Phase 8] Overlay에서 입력받은 텍스트만 표시
|
||||
alwaysShowText={currentMode === SEARCH_PANEL_MODES.VOICE_RESULT} // 🎯 VOICE_RESULT 모드에서 항상 텍스트 표시
|
||||
onKeyDown={handleKeydown}
|
||||
spotlightId={SPOTLIGHT_IDS.SEARCH_INPUT_BOX}
|
||||
forcedSpotlight="recent-keyword-0"
|
||||
|
||||
@@ -41,6 +41,7 @@ export default function TInputSimple({
|
||||
onBlur,
|
||||
placeholder,
|
||||
text, // ✨ [Phase 8] Overlay에서 입력받은 텍스트
|
||||
alwaysShowText = false, // 🎯 VOICE_RESULT 모드에서 항상 텍스트 표시
|
||||
...rest
|
||||
}) {
|
||||
const { handleScrollReset, handleStopScrolling } = useScrollReset(scrollTop);
|
||||
@@ -48,6 +49,9 @@ export default function TInputSimple({
|
||||
// ✨ [Phase 5] 포커스 상태 추적 - placeholder 표시 조건
|
||||
const [isFocused, setIsFocused] = useState(false);
|
||||
|
||||
// 🎯 텍스트 표시 조건: 포커스가 있거나 alwaysShowText가 true면 텍스트 표시
|
||||
const shouldShowText = isFocused || alwaysShowText;
|
||||
|
||||
// Focus 핸들러
|
||||
const _onFocus = useCallback(() => {
|
||||
setIsFocused(true);
|
||||
@@ -111,7 +115,7 @@ export default function TInputSimple({
|
||||
className={classNames(
|
||||
css.container,
|
||||
className ? className : null,
|
||||
isFocused && css.focusedMode
|
||||
shouldShowText && css.focusedMode
|
||||
)}
|
||||
spotlightId={spotlightId}
|
||||
onKeyDown={handleBoxKeyDown}
|
||||
@@ -121,7 +125,7 @@ export default function TInputSimple({
|
||||
>
|
||||
{/* 읽기 전용 텍스트 표시 영역 */}
|
||||
<div
|
||||
className={classNames(css.input, isFocused && css.displayModeText)}
|
||||
className={classNames(css.input, shouldShowText && css.displayModeText)}
|
||||
data-spotlight-id="input-display-box"
|
||||
data-placeholder={placeholder || ''}
|
||||
aria-label="Search text display"
|
||||
@@ -161,6 +165,7 @@ TInputSimple.propTypes = {
|
||||
onBlur: PropTypes.func,
|
||||
placeholder: PropTypes.string,
|
||||
text: PropTypes.string, // ✨ [Phase 8] Overlay에서 입력받은 텍스트만 사용
|
||||
alwaysShowText: PropTypes.bool, // 🎯 VOICE_RESULT 모드에서 항상 텍스트 표시
|
||||
};
|
||||
|
||||
export { BORDER, COLOR, ICONS, KINDS };
|
||||
|
||||
Reference in New Issue
Block a user