Utilização

Save without submitting twice

tsx
import { Button, Text, VStack, task } from 'kuito';

export function SaveButton(props: { save: () => Promise<void> }) {
  const save = task(() => props.save(), { policy: 'drop' });
  return (
    <VStack gap={8}>
      <Button disabled={save.running.value} onPress={() => void save.run().catch(() => {})}>
        {save.running.value ? 'Saving…' : 'Save changes'}
      </Button>
      <Text>{save.error.value ? 'Save failed. Try again.' : ''}</Text>
    </VStack>
  );
}

Assinaturas

ts
<A extends unknown[], T>(work: TaskWork<A, T>, options?: TaskOptions, name?: string): Task<A, T>

Parâmetros de tipo

NomeRestriçãoPredefinição
Aunknown[]—
T——

Parâmetros

NomeTipoObrigatórioDescrição
workTaskWork<A, T>Sim—
optionsTaskOptionsNão—
Predefinição: {}
namestringNão—

Devolve

Task<A, T>

Gerado a partir das declarações TypeScript públicas: assinaturas, props e predefinições vêm da fonte verificada, as descrições da sua JSDoc. Nenhuma predefinição é inventada.