@spark-web/password-input
TypeScript icon, indicating that this package has built-in type declarations

5.0.0 • Public • Published

title: Password Input storybookPath: forms-passwordinput--default isExperimentalPackage: true

The password input component allows accepting of password text values. The component builds off its underlying TextInput component and toggles the input mode between password and text depending on whether the show password icon button is toggled to show or hide the password value.

Usage

The component must be nested within a Field. See Field for more details.

Examples

Field utilities

You can use the parent Field to set appropriate field level labels, description adornments and messages.

<Stack gap="large">
  <Field
    label="Password"
    adornment={
      <Text>
        <TextLink href="#">Forgot password?</TextLink>
      </Text>
    }
    description={
      'Make sure your chosen password is at least 10 characters long.'
    }
  >
    <PasswordInput />
  </Field>
</Stack>

Uncontrolled

Similar to TextInput, the component can be uncontrolled and managing its own internal state.

const passwordRef = React.useRef(null);
const [value, setValue] = React.useState('');
const showValueHandler = React.useCallback(() => {
  setValue(passwordRef.current?.value);
}, [setValue]);

return (
  <Stack gap="large">
    <Field label="Example uncontrolled">
      <PasswordInput ref={passwordRef} />
    </Field>
    <Button onClick={showValueHandler}>Display password value</Button>
    <Text>The password value is: {value}</Text>
  </Stack>
);

Controlled

Similar to TextInput, the component can be controlled by passing in a value and onChange handler and have its state managed in a parent component.

const [value, setValue] = React.useState(``);

return (
  <Stack gap="large">
    <Field label="Example controlled">
      <PasswordInput value={value} onChange={e => setValue(e.target.value)} />
    </Field>
    <Text>The current password value is: {value}</Text>
  </Stack>
);

Props

The component passes props into its underlying TextInput component and are not listed here.

/@spark-web/password-input/

    Package Sidebar

    Install

    npm i @spark-web/password-input

    Weekly Downloads

    8

    Version

    5.0.0

    License

    none

    Unpacked Size

    35.4 kB

    Total Files

    10

    Last publish

    Collaborators

    • brighte
    • brighte-release-bot