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

input-output-hk / lace / 8365257172

20 Mar 2024 08:11PM UTC coverage: 53.437% (-0.4%) from 53.839%
8365257172

push

github

9cf76f
pczeglik-iohk
test(extension): tawalletnofunds received some ada by mistake (#968)

2293 of 5275 branches covered (43.47%)

Branch coverage included in aggregate %.

5239 of 8820 relevant lines covered (59.4%)

54.34 hits per line

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

17.5
/packages/core/src/ui/components/WalletSetup/WalletSetupWalletNameStep.tsx
1
import React, { ChangeEvent, useMemo, useState } from 'react';
2✔
2
import { WalletSetupStepLayout, WalletTimelineSteps } from './WalletSetupStepLayout';
2✔
3
import { Input } from '@lace/common';
2✔
4
import styles from './WalletSetupRegisterStep.module.scss';
2✔
5
import { TranslationsFor } from '@ui/utils/types';
6

7
const nameShouldHaveRightLengthRegex = /^.{1,20}$/;
2✔
8

9
const validateName = (name: string) => nameShouldHaveRightLengthRegex.test(name);
2✔
10

11
export interface WalletSetupWalletNameStepProps {
12
  onBack: () => void;
13
  onNext: (walletName: string) => void;
14
  translations: TranslationsFor<'maxCharacters' | 'nameYourWallet' | 'create' | 'walletName' | 'chooseName'>;
15
  isHardwareWallet?: boolean;
16
  onChange?: (name: string) => void;
17
}
18

19
export const WalletSetupWalletNameStep = ({
2✔
20
  onBack,
21
  onNext,
22
  translations,
23
  isHardwareWallet = false,
×
24
  onChange
25
}: WalletSetupWalletNameStepProps): React.ReactElement => {
26
  const [isCreating, setIsCreating] = useState(false);
×
27
  const [isDirty, setIsDirty] = useState(false);
×
28
  const [walletName, setWalletName] = useState('');
×
29
  const isNameValid = useMemo(() => validateName(walletName), [walletName]);
×
30
  const validationError = useMemo(
×
31
    () => !isNameValid && translations.maxCharacters,
×
32
    [isNameValid, translations.maxCharacters]
33
  );
34

35
  const onSubmit = async () => {
×
36
    setIsCreating(true);
×
37
    setIsDirty(true);
×
38
    isNameValid && onNext(walletName);
×
39
    setIsCreating(false);
×
40
  };
41

42
  const handleNameChange = (e: ChangeEvent<HTMLInputElement>) => {
×
43
    setIsDirty(true);
×
44
    setWalletName(e.target.value);
×
45
    onChange?.(e.target.value);
×
46
  };
47

48
  return (
×
49
    <WalletSetupStepLayout
50
      title={translations.nameYourWallet}
51
      onBack={onBack}
52
      isNextEnabled={!!walletName && !validationError}
×
53
      onNext={onSubmit}
54
      nextLabel={translations.create}
55
      isNextLoading={isCreating}
56
      currentTimelineStep={isHardwareWallet ? WalletTimelineSteps.NAME_WALLET : WalletTimelineSteps.WALLET_SETUP}
×
57
      isHardwareWallet={isHardwareWallet}
58
    >
59
      <p className={styles.subtitle}>{translations.chooseName}</p>
60
      <Input
61
        dataTestId="wallet-setup-register-name-input"
62
        className={styles.inputName}
63
        label={translations.walletName}
64
        value={walletName}
65
        onChange={handleNameChange}
66
        autoFocus
67
      />
68
      {isDirty && walletName && !isNameValid && (
×
69
        <p className={styles.formError} data-testid="wallet-setup-register-name-error">
70
          {validationError}
71
        </p>
72
      )}
73
    </WalletSetupStepLayout>
74
  );
75
};
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

© 2025 Coveralls, Inc