PolicyName.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText } from 'ui'
  2. interface PolicyNameProps {
  3. name: string
  4. limit?: number
  5. onUpdatePolicyName: (name: string) => void
  6. }
  7. export const PolicyName = ({ name = '', limit = 100, onUpdatePolicyName }: PolicyNameProps) => {
  8. return (
  9. <div className="flex flex-col md:flex-row gap-4 md:gap-12">
  10. <div className="flex md:w-1/3 flex-col space-y-2">
  11. <label className="text-base text-foreground-light" htmlFor="policy-name">
  12. Policy name
  13. </label>
  14. <p className="text-sm text-foreground-lighter">A descriptive name for your policy</p>
  15. </div>
  16. <div className="relative md:w-2/3">
  17. <InputGroup>
  18. <InputGroupInput
  19. id="policy-name"
  20. value={name}
  21. onChange={(e) => onUpdatePolicyName(e.target.value)}
  22. />
  23. <InputGroupAddon align="inline-end">
  24. <InputGroupText>
  25. {name.length}/{limit}
  26. </InputGroupText>
  27. </InputGroupAddon>
  28. </InputGroup>
  29. </div>
  30. </div>
  31. )
  32. }