Personal Dashboard

HiddenPassword.jsx 840B

123456789101112131415161718192021
  1. import React from 'react'
  2. import { Tooltip, Classes, Intent, InputGroup, Button } from '@blueprintjs/core'
  3. import Control from '../Control'
  4. const PasswordToggler = ({ show, toggle }) =>
  5. <Tooltip content={`${show ? "Hide" : "Show"} Password`}>
  6. <Button className={Classes.MINIMAL} intent={Intent.WARNING}
  7. iconName={show ? "eye-off" : "eye-open"} onClick={toggle} />
  8. </Tooltip>
  9. const PasswordInput = ({ name, placeholder, toggle }, { show }) =>
  10. <InputGroup name={name} placeholder={placeholder} leftIconName="lock"
  11. type={show ? "text" : "password"}
  12. rightElement={<PasswordToggler show={show} toggle={toggle} />}
  13. />
  14. export const HiddenPassword = Control(
  15. { show: false },
  16. { toggle: ({ setState, state }) => { setState({ show: !state.show }) } }
  17. )(PasswordInput)