ekyc

Electronic KYC process with uploading ID document using OAuth 2.1 (experimental)
Log | Files | Refs | README | LICENSE

phone_number_input.tsx (808B)


      1 import { useComputed, useSignal } from "@preact/signals";
      2 
      3 export default function PhoneNumberInput(
      4   props: { error: boolean; conflict: boolean },
      5 ) {
      6   const error = useSignal(props.error);
      7   const value = useSignal("");
      8 
      9   const invalid = useComputed(() => {
     10     if (error.value) return true;
     11     if (value.value === "") return undefined;
     12     return false;
     13   });
     14 
     15   return (
     16     <label>
     17       Phone number:
     18       <input
     19         type="tel"
     20         name="phoneNumber"
     21         value={value}
     22         aria-invalid={invalid}
     23         onInput={(e) => {
     24           error.value = false;
     25           value.value = e.currentTarget.value;
     26         }}
     27       />
     28       {useComputed(() =>
     29         props.conflict && invalid.value && (
     30           <small>Phone number already used!</small>
     31         )
     32       )}
     33     </label>
     34   );
     35 }