agegate
v4.0.1
Published
A simple function that verifies a date of birth against a country's legal drinking age.
Downloads
44
Maintainers
Readme
Agegate
A simple function that verifies a date of birth against a country's legal drinking age.
npm i agegate
Usage
import agegate from "agegate";
var user = {
dateOfBirth: new Date("2015-02-14"), // strings are also accepted
country: "US",
};
var isLegal = agegate(user.dateOfBirth, user.country); // false
:warning: If an invalid date is supplied, the result will be falsy. If an invalid country code is supplied, it will validate against a default legal drinking age of 18.
Use with frameworks (e.g. React)
In order to use this library with frontend UI frameworks, the underlying dataset used to validate is also exported.
import React, { useState } from "react";
import agegate, { getData } from "agegate";
const countries = getData();
function Modal() {
const [date, setDate] = useState("");
const [country, setCountry] = useState(countries[0].code);
const [legal, setLegal] = useState(false);
const submitHandler = e => {
e.preventDefault();
if (date && country) {
const result = agegate(new Date(date), country);
setLegal(result);
}
};
return (
<div>
<form onSubmit={submitHandler}>
<h3>Enter your date of birth</h3>
<input
type="date"
value={date}
onChange={e => setDate(e.target.value)}
/>
<h3>Enter your country</h3>
<select value={country} onChange={e => setCountry(e.target.value)}>
{countries.map(({ code, name }) => (
<option key={name} value={code}>
{name}
</option>
))}
</select>
<button type="submit">Submit</button>
</form>
<p style={{ color: legal ? "green" : "red" }}>
RESULT: You are {legal ? "" : "NOT"} old enough!
</p>
</div>
);
}
Please file a new issue if you find any inconsistencies in the countries dataset.