fix(mini): preserve child name input during pinyin composition
This commit is contained in:
@@ -20,7 +20,6 @@ import {
|
|||||||
CHILD_NAME_RULE_MESSAGE,
|
CHILD_NAME_RULE_MESSAGE,
|
||||||
createChild,
|
createChild,
|
||||||
getChildren,
|
getChildren,
|
||||||
sanitizeChildNameInput,
|
|
||||||
resolveChildSelection,
|
resolveChildSelection,
|
||||||
setSelectedChildId as setStoredSelectedChildId,
|
setSelectedChildId as setStoredSelectedChildId,
|
||||||
validateChildNameInput,
|
validateChildNameInput,
|
||||||
@@ -804,9 +803,10 @@ export default function Bind() {
|
|||||||
? children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : CHILD_NAME_RULE_MESSAGE
|
? children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : CHILD_NAME_RULE_MESSAGE
|
||||||
: children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : '可不填,稍后再关联宝贝'
|
: children.length > 0 ? '不选已有宝贝时,可填写2-5位简体中文姓名(暂不支持数字和英文)' : '可不填,稍后再关联宝贝'
|
||||||
}
|
}
|
||||||
maxlength={5}
|
maxlength={-1}
|
||||||
onInput={(event) => {
|
onInput={(event) => {
|
||||||
const nextChildName = sanitizeChildNameInput(event.detail.value)
|
// Preserve pinyin composition; validate the final name on submit.
|
||||||
|
const nextChildName = event.detail.value
|
||||||
setNewChildName(nextChildName)
|
setNewChildName(nextChildName)
|
||||||
if (nextChildName) {
|
if (nextChildName) {
|
||||||
setSelectedChildId(null)
|
setSelectedChildId(null)
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import {
|
|||||||
CHILD_NAME_RULE_MESSAGE,
|
CHILD_NAME_RULE_MESSAGE,
|
||||||
clearSelectedChildId,
|
clearSelectedChildId,
|
||||||
deleteChild,
|
deleteChild,
|
||||||
sanitizeChildNameInput,
|
|
||||||
setSelectedChildId,
|
setSelectedChildId,
|
||||||
updateChild,
|
updateChild,
|
||||||
validateChildNameInput,
|
validateChildNameInput,
|
||||||
@@ -1496,8 +1495,8 @@ export default function Sleep() {
|
|||||||
value={childName}
|
value={childName}
|
||||||
placeholder={CHILD_NAME_RULE_MESSAGE}
|
placeholder={CHILD_NAME_RULE_MESSAGE}
|
||||||
focus
|
focus
|
||||||
maxlength={5}
|
maxlength={-1}
|
||||||
onInput={(event) => setChildName(sanitizeChildNameInput(event.detail.value))}
|
onInput={(event) => setChildName(event.detail.value)}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
<View className='modal-actions'>
|
<View className='modal-actions'>
|
||||||
|
|||||||
@@ -17,10 +17,6 @@ export function normalizeChildNameInput(value?: string | null): string {
|
|||||||
return String(value || '').trim()
|
return String(value || '').trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sanitizeChildNameInput(value?: string | null): string {
|
|
||||||
return normalizeChildNameInput(value).replace(/[^\u4e00-\u9fa5]/g, '').slice(0, 5)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function validateChildNameInput(value?: string | null): string {
|
export function validateChildNameInput(value?: string | null): string {
|
||||||
const childName = normalizeChildNameInput(value)
|
const childName = normalizeChildNameInput(value)
|
||||||
if (!childName) return '请输入宝贝姓名'
|
if (!childName) return '请输入宝贝姓名'
|
||||||
|
|||||||
Reference in New Issue
Block a user