0.1.29 • Published 2 years ago
@bipboys/remix-pwr-indicator v0.1.29
remix-pwr-indicator
Remix password strength indicator based on wasm
Info
Remix iplementation password indicator component based on wasm.
Install
$ npm install @bipboys/remix-pwr-indicator @bipboys/pwr-scoring
Usage
Add data route for work with wasm, like .../routes/pwr.tsx
WASM are used to get the scoring value, but you can do use your own solution. Scoring get with zxcvbn rust package. Function scoring(password: string) return a value from 0 to 4. If you want to get all of the entropy data from zxcvbn package please use entropy(password: string) function.
import { LoaderArgs, json } from "@remix-run/node";
import { scoring } from "@bipboys/pwr-scoring";
export async function loader({ request }: LoaderArgs) {
const url = new URL(request.url);
const query = url.searchParams.get("query");
let scoringValue: number | null = null;
if (typeof query === "string") {
if (query.length > 0) {
scoringValue = scoring(query);
}
}
return json({
scoring: scoringValue,
});
}
Add fetcher in your component, where you want to use it and return score from wasm package
// Fetch data from .../route/pwr.tsx
let fetcherPWR = useFetcher();
// Get value from onChange callback in password input
function handleChange(value: any) {
fetcherPWR.load(`/pwr?query=${value}`);
}
const pwrScore = fetcherPWR.data?.scoring;
Add password strength indicator with props
<PasswordStrengthIndicator
score={pwrScore}
strengthTitle={{
weak: "To short",
bad: "Bad",
good: "Good",
strong: "Strong",
}}
strengthColor={[
"#000",
"#D44333",
"#FFC043",
"#21A453",
"#21A453",
]}
/>
Component Props
type StrengthTitleT = {
weak?: string;
bad?: string;
good?: string;
strong?: string;
};
interface PasswordStrengthIndicatorI {
score: number;
strengthColor?: string[];
strengthTitle?: StrengthTitleT;
showLabel?: boolean;
styleLabel?: React.CSSProperties;
styleIndicator?: React.CSSProperties;
}
Remix support
Tested with 1.7.2 version.
License
the MIT license.
0.1.29
2 years ago
0.1.28
2 years ago
0.1.27
3 years ago
0.1.26
3 years ago
0.1.25
3 years ago
0.1.24
3 years ago
0.1.23
3 years ago
0.1.22
3 years ago
0.1.21
3 years ago
0.1.20
3 years ago
0.1.18
3 years ago
0.1.17
3 years ago
0.1.16
3 years ago
0.1.15
3 years ago
0.1.14
3 years ago
0.1.13
3 years ago
0.1.12
3 years ago
0.1.11
3 years ago
0.1.10
3 years ago
0.1.9
3 years ago
0.1.8
3 years ago
0.1.7
3 years ago
0.1.6
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago