@uniai-fe/uds-primitives 0.3.56 → 0.3.57

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniai-fe/uds-primitives",
3
- "version": "0.3.56",
3
+ "version": "0.3.57",
4
4
  "description": "UNIAI Design System; Primitives Components Package",
5
5
  "type": "module",
6
6
  "private": false,
@@ -233,6 +233,22 @@ export function SelectDefault<OptionData = unknown>({
233
233
  onSelectOption?.(option, previousOption, event);
234
234
 
235
235
  if (hasChanged) {
236
+ const nextRegisterValue =
237
+ String(option.value) === SELECT_CUSTOM_OPTION_VALUE && !customRegister
238
+ ? ""
239
+ : option.value;
240
+
241
+ if (register?.name) {
242
+ // 변경 설명: hidden input value 변경만으로는 RHF context가 갱신되지 않으므로 source field change를 명시적으로 전파한다.
243
+ register.onChange?.({
244
+ target: {
245
+ name: register.name,
246
+ value: nextRegisterValue,
247
+ },
248
+ type: "change",
249
+ });
250
+ }
251
+
236
252
  setUncontrolledSelectedValue(option.value);
237
253
  onSelectChange?.(option, previousOption, event);
238
254
  }
@@ -162,6 +162,16 @@ const SelectTriggerSelected = ({
162
162
  onChange={event => {
163
163
  // 6) RHF(customRegister) → 외부 inputProps → 내부 state 콜백 순으로 변경을 전파한다.
164
164
  customRegister?.onChange?.(event);
165
+ if (!customRegister && register?.name) {
166
+ // 변경 설명: customRegister가 없는 직접입력은 source field(register)에 현재 텍스트를 그대로 기록한다.
167
+ register.onChange?.({
168
+ target: {
169
+ name: register.name,
170
+ value: event.currentTarget.value,
171
+ },
172
+ type: "change",
173
+ });
174
+ }
165
175
  inputProps?.onChange?.(event);
166
176
  onLabelChange?.(event.currentTarget.value);
167
177
  }}