fix: improve inquiry status change and notification refresh
continuous-integration/drone/push Build is passing
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:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user