fixup: always schedule callback first
Build and Push Image / build-backend (push) Successful in 25s
Build and Push Image / build-frontend (push) Successful in 1m57s
Build and Push Image / push (push) Successful in 46s

This commit is contained in:
2026-09-13 18:07:28 +07:00 Unverified
parent 4c6106b99e
commit 7a5f6a951e
3 changed files with 12 additions and 9 deletions
+4 -3
View File
@@ -61,8 +61,7 @@ export function ArtifactFormWrapper({
} catch {}
router.refresh();
})
.catch((e) => toast.error(`${e.message || e}`))
.finally(callback.current);
.catch((e) => toast.error(`${e.message || e}`));
}
return (
<ActionSubmitContext.Provider value={context}>
@@ -70,7 +69,9 @@ export function ArtifactFormWrapper({
{...props}
onSubmit={(e) => {
e.preventDefault();
submit(new FormData(e.target as HTMLFormElement));
submit(new FormData(e.target as HTMLFormElement)).finally(
callback.current,
);
}}
/>
</ActionSubmitContext.Provider>
+4 -2
View File
@@ -40,6 +40,7 @@ import {
import { ArtifactFormWrapper } from "./form";
import { LiveButton } from "./live";
import { RulesDialog } from "./rules";
import { ActionButton } from "@/components/action-button";
export const metadata: Metadata = {
title: "เสือกไอดีชาวบ้าน",
@@ -257,9 +258,10 @@ export default async function ArtifactFormPage({
{count} / {config.limit < 0 ? "∞" : config.limit} คิว
</Kbd>
<SimpleTooltip text="ส่งเลยจัฟลูกพี่">
<Button
<ActionButton
type="submit"
form="mainform"
action="provider"
disabled={
(!!q ||
config.locked ||
@@ -268,7 +270,7 @@ export default async function ArtifactFormPage({
}
>
{editing ? <PencilIcon /> : <SendHorizonal />}
</Button>
</ActionButton>
</SimpleTooltip>
</div>
</CardFooter>
+4 -4
View File
@@ -32,12 +32,12 @@ export function ActionButton({
disabled={state > 0}
{...props}
onClick={async (ev) => {
onClick?.(ev);
setState(1);
if (action === "provider")
await new Promise<void>(ctx.listenForComplete);
onClick?.(ev);
try {
if (action === "provider")
await new Promise<void>(ctx.listenForComplete);
else await action();
if (action !== "provider") await action();
setState(2);
} catch (e) {
toast.error("An error occured!");