DaisyUI의 버튼에는 loading
이 있다. https://daisyui.com/components/button/
그걸 사용하면 저장버튼이 두 번 눌리지 않게 할 수 있다.
<script>
import { applyAction, enhance } from "$app/forms";
import { goto, invalidateAll } from "$app/navigation";
</script>
<form
use:enhance={({ form, data, action, cancel, submitter }) => {
submitter.classList.add("loading");
try{
// todo
} catch(e){
submitter.classList.remove("loading");
cancel();
}
return async ({ result, update }) => {
if (result.type === "success") {
goto("/list");
} else {
submitter.classList.remove("loading");
await invalidateAll();
}
applyAction(result);
};
}}>