用户名称添加@<>/等字符的检查
This commit is contained in:
@@ -416,8 +416,8 @@ const EditProfilePage: React.FC = () => {
|
||||
};
|
||||
|
||||
const handleAddGroup = () => {
|
||||
console.log("加入社群~")
|
||||
}
|
||||
console.log("加入社群~");
|
||||
};
|
||||
|
||||
const getDefaultOption = (options) => {
|
||||
if (!Array.isArray(options) || options.length === 0) {
|
||||
@@ -693,9 +693,9 @@ const EditProfilePage: React.FC = () => {
|
||||
>
|
||||
{form_data.phone
|
||||
? form_data.phone.replace(
|
||||
/(\d{3})(\d{4})(\d{4})/,
|
||||
"$1 $2 $3"
|
||||
)
|
||||
/(\d{3})(\d{4})(\d{4})/,
|
||||
"$1 $2 $3"
|
||||
)
|
||||
: "未绑定"}
|
||||
</Button>
|
||||
<Image
|
||||
@@ -710,7 +710,9 @@ const EditProfilePage: React.FC = () => {
|
||||
|
||||
<View className="logout_section group">
|
||||
<View className="logout_button" onClick={handleCustomerService}>
|
||||
<Image src={require("@/static/wallet/custom-service.svg")}></Image>
|
||||
<Image
|
||||
src={require("@/static/wallet/custom-service.svg")}
|
||||
></Image>
|
||||
<Text className="logout_text">客服聊天</Text>
|
||||
</View>
|
||||
<View className="logout_button" onClick={handleAddGroup}>
|
||||
@@ -747,124 +749,115 @@ const EditProfilePage: React.FC = () => {
|
||||
: "介绍一下你的喜好,或者训练习惯"
|
||||
}
|
||||
initialValue={form_data[editing_field as keyof typeof form_data] || ""}
|
||||
maxLength={editing_field === "nickname" ? 20 : 100}
|
||||
maxLength={editing_field === "nickname" ? 24 : 100}
|
||||
invalidCharacters={editing_field === "nickname" ? "@<>/" : ""}
|
||||
onSave={handle_edit_modal_save}
|
||||
onCancel={handle_edit_modal_cancel}
|
||||
validationMessage={
|
||||
editing_field === "nickname"
|
||||
? "请填写 1-20 个字符"
|
||||
? "请填写 2-24 个字符,不包括 @<>/等无效字符"
|
||||
: "请填写 2-100 个字符"
|
||||
}
|
||||
/>
|
||||
{/* 性别选择弹窗 */}
|
||||
{
|
||||
gender_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择性别"
|
||||
confirmText="保存"
|
||||
options={[
|
||||
[
|
||||
{ text: "男", value: "0" },
|
||||
{ text: "女", value: "1" },
|
||||
{ text: "保密", value: "2" },
|
||||
],
|
||||
]}
|
||||
visible={gender_picker_visible}
|
||||
setvisible={setGenderPickerVisible}
|
||||
value={form_data.gender === "" ? ["0"] : [form_data.gender]}
|
||||
onChange={handle_gender_change}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{gender_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择性别"
|
||||
confirmText="保存"
|
||||
options={[
|
||||
[
|
||||
{ text: "男", value: "0" },
|
||||
{ text: "女", value: "1" },
|
||||
{ text: "保密", value: "2" },
|
||||
],
|
||||
]}
|
||||
visible={gender_picker_visible}
|
||||
setvisible={setGenderPickerVisible}
|
||||
value={form_data.gender === "" ? ["0"] : [form_data.gender]}
|
||||
onChange={handle_gender_change}
|
||||
/>
|
||||
)}
|
||||
{/* 生日选择弹窗 */}
|
||||
{
|
||||
birthday_picker_visible && (
|
||||
<PopupPicker
|
||||
minYear={1970}
|
||||
maxYear={new Date().getFullYear()}
|
||||
showHeader={true}
|
||||
title="选择生日"
|
||||
confirmText="保存"
|
||||
visible={birthday_picker_visible}
|
||||
setvisible={setBirthdayPickerVisible}
|
||||
value={[
|
||||
new Date(form_data.birthday).getFullYear(),
|
||||
new Date(form_data.birthday).getMonth() + 1,
|
||||
new Date(form_data.birthday).getDate(),
|
||||
]}
|
||||
type="day"
|
||||
onChange={handle_birthday_change}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{birthday_picker_visible && (
|
||||
<PopupPicker
|
||||
minYear={1970}
|
||||
maxYear={new Date().getFullYear()}
|
||||
showHeader={true}
|
||||
title="选择生日"
|
||||
confirmText="保存"
|
||||
visible={birthday_picker_visible}
|
||||
setvisible={setBirthdayPickerVisible}
|
||||
value={[
|
||||
new Date(form_data.birthday).getFullYear(),
|
||||
new Date(form_data.birthday).getMonth() + 1,
|
||||
new Date(form_data.birthday).getDate(),
|
||||
]}
|
||||
type="day"
|
||||
onChange={handle_birthday_change}
|
||||
/>
|
||||
)}
|
||||
{/* 地区选择弹窗 */}
|
||||
{
|
||||
location_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择地区"
|
||||
confirmText="保存"
|
||||
options={cities}
|
||||
visible={location_picker_visible}
|
||||
setvisible={setLocationPickerVisible}
|
||||
value={
|
||||
form_data.country
|
||||
? [form_data.country, form_data.province, form_data.city]
|
||||
: getDefaultOption(cities)
|
||||
}
|
||||
onChange={handle_location_change}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{location_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择地区"
|
||||
confirmText="保存"
|
||||
options={cities}
|
||||
visible={location_picker_visible}
|
||||
setvisible={setLocationPickerVisible}
|
||||
value={
|
||||
form_data.country
|
||||
? [form_data.country, form_data.province, form_data.city]
|
||||
: getDefaultOption(cities)
|
||||
}
|
||||
onChange={handle_location_change}
|
||||
/>
|
||||
)}
|
||||
{/* NTRP水平选择弹窗 */}
|
||||
{
|
||||
ntrp_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择 NTRP 自评水平"
|
||||
confirmText="保存"
|
||||
options={[
|
||||
[
|
||||
{ text: "1.5", value: "1.5" },
|
||||
{ text: "2.0", value: "2.0" },
|
||||
{ text: "2.5", value: "2.5" },
|
||||
{ text: "3.0", value: "3.0" },
|
||||
{ text: "3.5", value: "3.5" },
|
||||
{ text: "4.0", value: "4.0" },
|
||||
{ text: "4.5", value: "4.5" },
|
||||
],
|
||||
]}
|
||||
type="ntrp"
|
||||
// img={(user_info as UserInfoType)?.avatar_url}
|
||||
visible={ntrp_picker_visible}
|
||||
setvisible={setNtrpPickerVisible}
|
||||
value={
|
||||
form_data.ntrp_level === "0" ? ["3.0"] : [form_data.ntrp_level]
|
||||
}
|
||||
onChange={handle_ntrp_level_change}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{ntrp_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择 NTRP 自评水平"
|
||||
confirmText="保存"
|
||||
options={[
|
||||
[
|
||||
{ text: "1.5", value: "1.5" },
|
||||
{ text: "2.0", value: "2.0" },
|
||||
{ text: "2.5", value: "2.5" },
|
||||
{ text: "3.0", value: "3.0" },
|
||||
{ text: "3.5", value: "3.5" },
|
||||
{ text: "4.0", value: "4.0" },
|
||||
{ text: "4.5", value: "4.5" },
|
||||
],
|
||||
]}
|
||||
type="ntrp"
|
||||
// img={(user_info as UserInfoType)?.avatar_url}
|
||||
visible={ntrp_picker_visible}
|
||||
setvisible={setNtrpPickerVisible}
|
||||
value={
|
||||
form_data.ntrp_level === "0" ? ["3.0"] : [form_data.ntrp_level]
|
||||
}
|
||||
onChange={handle_ntrp_level_change}
|
||||
/>
|
||||
)}
|
||||
{/* 职业选择弹窗 */}
|
||||
{
|
||||
occupation_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择职业"
|
||||
confirmText="保存"
|
||||
options={professions}
|
||||
visible={occupation_picker_visible}
|
||||
setvisible={setOccupationPickerVisible}
|
||||
value={
|
||||
form_data.occupation
|
||||
? [...form_data.occupation.split(" ")]
|
||||
: getDefaultOption(professions)
|
||||
}
|
||||
onChange={handle_occupation_change}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{occupation_picker_visible && (
|
||||
<PopupPicker
|
||||
showHeader={true}
|
||||
title="选择职业"
|
||||
confirmText="保存"
|
||||
options={professions}
|
||||
visible={occupation_picker_visible}
|
||||
setvisible={setOccupationPickerVisible}
|
||||
value={
|
||||
form_data.occupation
|
||||
? [...form_data.occupation.split(" ")]
|
||||
: getDefaultOption(professions)
|
||||
}
|
||||
onChange={handle_occupation_change}
|
||||
/>
|
||||
)}
|
||||
{/* 取消关注确认弹窗 */}
|
||||
<CommonDialog
|
||||
visible={showLogoutDialog}
|
||||
@@ -877,7 +870,7 @@ const EditProfilePage: React.FC = () => {
|
||||
contentTitle="确定要注销账号吗?"
|
||||
contentDesc="你的账号将会彻底删除,该操作不可恢复。"
|
||||
/>
|
||||
</View >
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user