[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:
2025-10-23 20:56:55 +09:00
parent 3cf47a4f1c
commit fa2bcb7866
2 changed files with 8 additions and 2 deletions

View File

@@ -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"

View File

@@ -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 };