• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jcubic / 10xDevs / 18840571689

27 Oct 2025 12:14PM UTC coverage: 23.648% (-1.9%) from 25.594%
18840571689

push

github

jcubic
update workflow

1783 of 8857 branches covered (20.13%)

Branch coverage included in aggregate %.

761 of 1901 relevant lines covered (40.03%)

1814.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/components/SignInForm.tsx
1
'use client';
2

3
import { useActionState } from 'react';
4
import { Button, VStack, Input, Text, Alert } from '@chakra-ui/react';
5
import { signInAction } from '@/app/actions/auth';
6

7
type FormState = {
8
  errors?: {
9
    email?: string[];
10
    password?: string[];
11
  };
12
  message?: string;
13
};
14

15
const initialState: FormState = {};
×
16

17
export default function SignInForm() {
18
  const [state, formAction, isPending] = useActionState(signInAction, initialState);
×
19

20
  return (
×
21
    <>
22
      {state.message && (
×
23
        <Alert.Root status="error" p={3} data-testid="login-error">
24
          <Alert.Indicator />
25
          <Alert.Content>
26
            <Alert.Description>{state.message}</Alert.Description>
27
          </Alert.Content>
28
        </Alert.Root>
29
      )}
30

31
      <form action={formAction} style={{ width: '100%' }}>
32
        <VStack gap={4} align="stretch">
33
          <VStack align="stretch" gap={1}>
34
            <Input p={3} type="email" name="email" placeholder="Email" required />
35
            {state.errors?.email && (
×
36
              <Text color="red.500" fontSize="sm">
37
                {state.errors.email[0]}
38
              </Text>
39
            )}
40
          </VStack>
41

42
          <VStack align="stretch" gap={1}>
43
            <Input
44
              p={3}
45
              type="password"
46
              name="password"
47
              placeholder="Password"
48
              required
49
            />
50
            {state.errors?.password && (
×
51
              <Text color="red.500" fontSize="sm">
52
                {state.errors.password[0]}
53
              </Text>
54
            )}
55
          </VStack>
56

57
          <Button type="submit" size="lg" loading={isPending}>
58
            Sign In
59
          </Button>
60
        </VStack>
61
      </form>
62
    </>
63
  );
64
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc