@designbasekorea/ui 0.1.45 → 0.1.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -8380,9 +8380,9 @@ const SearchBar = ({ value, defaultValue = '', placeholder = '검색...', size =
8380
8380
  }
8381
8381
  }
8382
8382
  }, [enableRecentSearches, recentSearchesKey]);
8383
- // 추천 검색어 롤링 (포커스 없이도 계속)
8383
+ // 추천 검색어 롤링 (value가 없을 때만)
8384
8384
  useEffect(() => {
8385
- if (suggestedSearches.length > 0 && !currentValue) {
8385
+ if (suggestedSearches.length > 0 && !currentValue && currentValue === '') {
8386
8386
  suggestionIntervalRef.current = setInterval(() => {
8387
8387
  setCurrentSuggestion(prev => (prev + 1) % suggestedSearches.length);
8388
8388
  }, suggestionRollingInterval);
@@ -8481,6 +8481,11 @@ const SearchBar = ({ value, defaultValue = '', placeholder = '검색...', size =
8481
8481
  const handleSuggestionClick = (suggestion) => {
8482
8482
  setInternalValue(suggestion);
8483
8483
  onChange?.(suggestion);
8484
+ // 롤링 중단
8485
+ if (suggestionIntervalRef.current) {
8486
+ clearInterval(suggestionIntervalRef.current);
8487
+ suggestionIntervalRef.current = null;
8488
+ }
8484
8489
  handleSearch(suggestion);
8485
8490
  };
8486
8491
  const classes = clsx('designbase-search-bar', `designbase-search-bar--${size}`, `designbase-search-bar--${variant}`, {
@@ -8493,8 +8498,8 @@ const SearchBar = ({ value, defaultValue = '', placeholder = '검색...', size =
8493
8498
  'designbase-search-bar__input--disabled': disabled,
8494
8499
  'designbase-search-bar__input--readonly': readOnly,
8495
8500
  });
8496
- // 현재 플레이스홀더 (추천 검색어가 있으면 롤링)
8497
- const currentPlaceholder = suggestedSearches.length > 0 && !currentValue
8501
+ // 현재 플레이스홀더 (value가 없을 때만 추천 검색어 롤링)
8502
+ const currentPlaceholder = suggestedSearches.length > 0 && !currentValue && currentValue === ''
8498
8503
  ? suggestedSearches[currentSuggestion]
8499
8504
  : placeholder;
8500
8505
  return (jsxs("div", { className: classes, role: "search", children: [jsxs("div", { className: "designbase-search-bar__container", children: [jsx("div", { className: "designbase-search-bar__search-icon", children: jsx(SearchIconComponent, { size: size === 's' ? 16 : size === 'l' ? 24 : 20 }) }), jsx("input", { ref: inputRef, type: "text", className: inputClasses, value: currentValue, placeholder: currentPlaceholder, disabled: disabled, readOnly: readOnly, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown, "aria-label": "\uAC80\uC0C9\uC5B4 \uC785\uB825", ...props }), currentValue && currentValue.length > 0 && !disabled && !readOnly && (jsx("button", { type: "button", className: "designbase-search-bar__clear-button", onClick: handleClear, "aria-label": "\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30", children: jsx(ClearIconComponent, { size: size === 's' ? 16 : size === 'l' ? 24 : 20 }) }))] }), showRecentSearches && recentSearches.length > 0 && (jsxs("div", { className: "designbase-search-bar__recent-searches", children: [jsxs("div", { className: "designbase-search-bar__recent-header", children: [jsx("span", { className: "designbase-search-bar__recent-title", children: "\uCD5C\uADFC \uAC80\uC0C9\uC5B4" }), jsx("button", { type: "button", className: "designbase-search-bar__clear-all-button", onClick: handleClearAllRecentSearches, "aria-label": "\uBAA8\uB4E0 \uCD5C\uADFC \uAC80\uC0C9\uC5B4 \uC0AD\uC81C", children: "\uC804\uCCB4 \uC0AD\uC81C" })] }), jsx("div", { className: "designbase-search-bar__recent-list", children: recentSearches.map((searchTerm, index) => (jsxs("div", { className: "designbase-search-bar__recent-item", children: [jsx("button", { type: "button", className: "designbase-search-bar__recent-search-button", onClick: () => handleRecentSearchClick(searchTerm), children: searchTerm }), jsx("button", { type: "button", className: "designbase-search-bar__recent-remove-button", onClick: () => handleRemoveRecentSearch(searchTerm), "aria-label": `${searchTerm} 삭제`, children: jsx(CloseIcon, { size: 16 }) })] }, index))) })] })), suggestedSearches.length > 0 && isFocused && !currentValue && (jsxs("div", { className: "designbase-search-bar__suggestions", children: [jsx("div", { className: "designbase-search-bar__suggestions-header", children: jsx("span", { className: "designbase-search-bar__suggestions-title", children: "\uCD94\uCC9C \uAC80\uC0C9\uC5B4" }) }), jsx("div", { className: "designbase-search-bar__suggestions-list", children: suggestedSearches.map((suggestion, index) => (jsx("button", { type: "button", className: clsx('designbase-search-bar__suggestion-item', {