fix: improve inquiry status change and notification refresh
continuous-integration/drone/push Build is passing

Block no-op inquiry status updates, refetch active my-notifications after create, and use the shared error text token on Select validation messages.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
AmirReza Jamali
2026-07-07 16:09:50 +03:30
parent 5b43741d74
commit 4051cb156c
3 changed files with 16 additions and 5 deletions
+1 -1
View File
@@ -618,7 +618,7 @@ export function Select<T extends FieldValues>(selectProps: PropsType<T>) {
{dropdown} {dropdown}
{error && ( {error && (
<p className="text-red mt-1.5 text-sm font-medium"> <p className="mt-1.5 text-sm font-medium text-error">
{error.message as string} {error.message as string}
</p> </p>
)} )}
@@ -11,14 +11,12 @@ interface ChangeStatusFormProps {
onSubmit: (data: TChangeInquiryStatusCredentials) => void; onSubmit: (data: TChangeInquiryStatusCredentials) => void;
onCancel: () => void; onCancel: () => void;
currentStatus: string; currentStatus: string;
} }
const ChangeStatusForm = ({ const ChangeStatusForm = ({
onSubmit, onSubmit,
onCancel, onCancel,
currentStatus, currentStatus,
}: ChangeStatusFormProps) => { }: ChangeStatusFormProps) => {
const { const {
register, register,
@@ -37,10 +35,19 @@ const ChangeStatusForm = ({
value: status, value: status,
})); }));
const handleStatusSubmit = (data: TChangeInquiryStatusCredentials) => {
if (data.status === currentStatus) return;
onSubmit(data);
};
return ( return (
<form onSubmit={handleSubmit(onSubmit)} className="space-y-4"> <form onSubmit={handleSubmit(handleStatusSubmit)} className="space-y-4">
<Select <Select
{...register("status", { required: "Status is required" })} {...register("status", {
required: "Status is required",
validate: (value) =>
value !== currentStatus || "Select a different status",
})}
name="status" name="status"
label="Status" label="Status"
items={statusOptions} items={statusOptions}
@@ -70,6 +70,10 @@ export const useCreateNotificationQuery = (successCallback?: () => void) => {
queryClient.invalidateQueries({ queryClient.invalidateQueries({
queryKey: [API_ENDPOINTS.NOTIFICATIONS.MY_NOTIFICATIONS], queryKey: [API_ENDPOINTS.NOTIFICATIONS.MY_NOTIFICATIONS],
}); });
queryClient.refetchQueries({
queryKey: [API_ENDPOINTS.NOTIFICATIONS.MY_NOTIFICATIONS],
type: "active",
});
if (successCallback) { if (successCallback) {
successCallback(); successCallback();
} }