on 4e46b53 help sign in
bridge/src/components/InputSigil.js
46 lines 798 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 patp,
24 size,
25 valid,
26 error,
27 active,
28 ...rest
29}) {
30 const [lastValidPatp, setLastValidPatp] = useState(patp);
32 useEffect(() => {
33 if (valid) {
34 setLastValidPatp(patp);
35 }
36 }, [patp, valid]);
38 return (
39 <MaybeSigil
40 patp={Just(lastValidPatp)}
41 size={size}
42 colors={selectColorway(valid, error, active)}
43 {...rest}
44 />
45 );