on ade464d help sign in
bridge/src/components/InputSigil.js
47 lines 811 B history raw
1import React, { useEffect, useState } from 'react';
2import { Just } from 'folktale/maybe';
4import MaybeSigil from './MaybeSigil';
6const selectColorway = (valid, error, active) => {
7 if (valid) {
8 return ['#2AA779', '#FFFFFF'];
9 }
11 if (active) {
12 return ['#4330FC', '#FFFFFF'];
13 }
15 if (error) {
16 return ['#F8C134', '#FFFFFF'];
17 }
19 return ['#7F7F7F', '#FFFFFF'];
20};
22export default function InputSigil({
23 className,
24 patp,
25 size,
26 valid,
27 error,
28 active,
29 ...rest
30}) {
31 const [lastValidPatp, setLastValidPatp] = useState(patp);
33 useEffect(() => {
34 if (valid) {
35 setLastValidPatp(patp);
36 }
37 }, [patp, valid]);
39 return (
40 <MaybeSigil
41 patp={Just(lastValidPatp)}
42 size={size}
43 colors={selectColorway(valid, error, active)}
44 {...rest}
45 />
46 );