fix(hk): protect unsaved editors and await prefix save results
This commit is contained in:
1 parent
89af4eb1f6
commit
d5091d1a73
11 files changed
+602
-231
No files matched your search
@@ -107,44 +107,34 @@ export function PrefixesClient({ canEdit }: { canEdit: boolean }) {
|
||||
});
|
||||
};
|
||||
|
||||
const handleSavePrefix = async (data: PrefixFormData, editId?: number) => {
|
||||
if (editId) {
|
||||
const handleSavePrefix = (
|
||||
data: PrefixFormData,
|
||||
editId?: number,
|
||||
): Promise<boolean> => {
|
||||
if (isPending) return Promise.resolve(false);
|
||||
return new Promise((resolve) => {
|
||||
const fields = {
|
||||
text: data.text,
|
||||
color: data.color,
|
||||
icon: data.icon,
|
||||
effect: data.effect,
|
||||
active: data.active ? 1 : 0,
|
||||
};
|
||||
run(
|
||||
() =>
|
||||
updatePrefix({
|
||||
id: editId,
|
||||
text: data.text,
|
||||
color: data.color,
|
||||
icon: data.icon,
|
||||
effect: data.effect,
|
||||
active: data.active ? 1 : 0,
|
||||
}),
|
||||
editId
|
||||
? updatePrefix({ id: editId, ...fields })
|
||||
: createPrefix({ username: data.username, ...fields }),
|
||||
{
|
||||
successMessage: "Prefix updated!",
|
||||
successMessage: editId ? "Prefix updated!" : "Prefix created!",
|
||||
onSuccess: () => {
|
||||
fetchPrefixes();
|
||||
void fetchPrefixes();
|
||||
resolve(true);
|
||||
},
|
||||
onError: () => resolve(false),
|
||||
},
|
||||
);
|
||||
} else {
|
||||
run(
|
||||
() =>
|
||||
createPrefix({
|
||||
username: data.username,
|
||||
text: data.text,
|
||||
color: data.color,
|
||||
icon: data.icon,
|
||||
effect: data.effect,
|
||||
active: data.active ? 1 : 0,
|
||||
}),
|
||||
{
|
||||
successMessage: "Prefix created!",
|
||||
onSuccess: () => {
|
||||
fetchPrefixes();
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const openAddDialog = () => {
|
||||
|
||||
Reference in new issue
Block a user