añadido estado de carga en el modificar post

This commit is contained in:
2025-12-03 16:25:39 -03:00
parent ec852fd4d9
commit e25dfa910f

View File

@@ -14,6 +14,7 @@
import { Tooltip, TooltipProvider } from '@/components/ui/tooltip'; import { Tooltip, TooltipProvider } from '@/components/ui/tooltip';
import TooltipTrigger from '@/components/ui/tooltip/tooltip-trigger.svelte'; import TooltipTrigger from '@/components/ui/tooltip/tooltip-trigger.svelte';
import TooltipContent from '@/components/ui/tooltip/tooltip-content.svelte'; import TooltipContent from '@/components/ui/tooltip/tooltip-content.svelte';
import Spinner from '@/components/ui/spinner/spinner.svelte';
interface Props { interface Props {
post: Post | null; post: Post | null;
@@ -21,11 +22,21 @@
} }
let { post = $bindable(), callbackfn }: Props = $props(); let { post = $bindable(), callbackfn }: Props = $props();
function handleKeydown(e: KeyboardEvent) { let cargando = $state(false);
async function handleKeydown(e: KeyboardEvent) {
if (e.ctrlKey && e.key === 'Enter') { if (e.ctrlKey && e.key === 'Enter') {
callbackfn(e); cargando = true;
await callbackfn(e);
cargando = false;
} }
} }
async function onsubmit(e: SubmitEvent) {
e.preventDefault();
cargando = true;
await callbackfn(e);
cargando = false;
}
</script> </script>
<Dialog open={true} onOpenChange={() => (post = null)}> <Dialog open={true} onOpenChange={() => (post = null)}>
@@ -34,11 +45,7 @@
<DialogTitle>Editar Publicacion</DialogTitle> <DialogTitle>Editar Publicacion</DialogTitle>
</DialogHeader> </DialogHeader>
<DialogDescription> <DialogDescription>
<form <form {onsubmit}>
onsubmit={(e: SubmitEvent) => {
callbackfn(e);
}}
>
<InputGroup> <InputGroup>
<InputGroupTextarea <InputGroupTextarea
bind:value={post!.content} bind:value={post!.content}
@@ -61,13 +68,19 @@
<TooltipTrigger> <TooltipTrigger>
<InputGroupButton <InputGroupButton
variant="default" variant="default"
disabled={cargando}
type="submit" type="submit"
class="transform rounded-full transition-transform ease-in hover:scale-120" class="transform rounded-full transition-transform ease-in hover:scale-120"
size="xs" size="xs"
> >
<p class="flex items-center gap-1"> <p class="flex items-center gap-1">
Modificar {#if cargando}
<ArrowUpIcon class="mt-0.5 h-3.5! w-3.5!" /> <Spinner />
Cargando...
{:else}
Modificar
<ArrowUpIcon class="mt-0.5 h-3.5! w-3.5!" />
{/if}
</p> </p>
</InputGroupButton> </InputGroupButton>
</TooltipTrigger> </TooltipTrigger>