mobile: fix form validation in set your name dialog

This commit is contained in:
Ammar Ahmed
2026-05-08 10:37:58 +05:00
parent d912c93f81
commit 3f11b76811

View File

@@ -29,6 +29,10 @@ import ImagePicker from "react-native-image-crop-picker";
import Icon from "react-native-vector-icons/MaterialCommunityIcons"; import Icon from "react-native-vector-icons/MaterialCommunityIcons";
import { db } from "../../common/database"; import { db } from "../../common/database";
import { presentDialog } from "../../components/dialog/functions"; import { presentDialog } from "../../components/dialog/functions";
import {
createFormRef,
validators
} from "../../components/ui/input/form-input";
import { PlanLimits } from "../../components/sheets/plan-limits"; import { PlanLimits } from "../../components/sheets/plan-limits";
import AppIcon from "../../components/ui/AppIcon"; import AppIcon from "../../components/ui/AppIcon";
import { Button } from "../../components/ui/button"; import { Button } from "../../components/ui/button";
@@ -197,27 +201,34 @@ const SettingsUserSection = ({ item }) => {
title: strings.setFullName(), title: strings.setFullName(),
paragraph: strings.setFullNameDesc(), paragraph: strings.setFullNameDesc(),
positiveText: strings.save(), positiveText: strings.save(),
input: true, form: {
inputPlaceholder: strings.enterFullName(), formRef: createFormRef({
fullName: userProfile?.fullName || ""
}),
items: [
{
name: "fullName",
placeholder: strings.enterFullName(),
defaultValue: userProfile?.fullName, defaultValue: userProfile?.fullName,
positivePress: async (value) => { validators: [
if (!value || !value.trim()) { validators.required(strings.nameIsRequired())
ToastManager.error( ]
new Error(strings.nameIsRequired()),
undefined,
"local"
);
return;
} }
db.settings ],
.setProfile({ onFormSubmit: async (form) => {
fullName: value try {
}) await db.settings.setProfile({
.then(async () => { fullName: form.getValue("fullName")
});
useUserStore.setState({ useUserStore.setState({
profile: db.settings.getProfile() profile: db.settings.getProfile()
}); });
}); return true;
} catch (e) {
form.setError("fullName", e.message);
return false;
}
}
} }
}); });
}} }}