Skip to content
Snippets Groups Projects

Add fnr validation component

Merged Andreas Ellewsen requested to merge GREG-48-validatefnr into master
All threads resolved!
5 files
+ 102
89
Compare changes
  • Side-by-side
  • Inline
Files
5
import React from 'react'
import React from 'react'
import validator from '@navikt/fnrvalidator'
import validator from '@navikt/fnrvalidator'
import { UseFormReturn } from "react-hook-form";
import { UseFormReturn } from 'react-hook-form'
export function isValidIdnr(data: string) {
export function isValidIdnr(data: string) {
const validationResult = validator.idnr(data)
const validationResult = validator.idnr(data)
return validationResult.status === "valid"
return validationResult.status === 'valid'
}
}
interface FnrProps
interface FnrProps extends Partial<Pick<UseFormReturn, 'register'>> {
extends Partial<Pick<UseFormReturn, "register">> {
name: string
name: string
errors?: any
label?: string
errors?: any
}
}
export default function Fnr(props: FnrProps) {
function Fnr(props: FnrProps) {
const { register, name, errors, ...rest } = props
const { register, name, errors } = props
if (register === undefined) {
if (register === undefined) {
return <></>
return <></>
}
}
return <>
return (
<input type="text"
<>
placeholder={name}
<input
{...register(name, { required: "Fnr is required", validate: isValidIdnr })}
type="text"
id="fnr"
placeholder={name}
/>
// eslint-disable-next-line react/jsx-props-no-spreading
{errors.fnr && errors.fnr.message}
{...register(name, {
{errors.fnr && errors.fnr.type === "validate" && 'Invalid fnr'}
required: 'Fnr is required',
 
validate: isValidIdnr,
 
})}
 
id="fnr"
 
/>
 
{errors.fnr && errors.fnr.message}
 
{errors.fnr && errors.fnr.type === 'validate' && 'Invalid fnr'}
</>
</>
 
)
 
}
 
Fnr.defaultProps = {
 
errors: {},
}
}
 
export default Fnr
Loading