UNPKG

@open-tender/store

Version:

A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API

33 lines (32 loc) 2.22 kB
import React, { useCallback, useEffect, useState } from 'react'; import { useAppSelector } from '../app/hooks'; import { selectKioskConfig, selectKioskHasScanner, selectKioskTerminal } from '../slices'; import { default as SignInPhoneContainer } from './SignInPhone'; import { default as SignInQrContainer } from './SignInQr'; var SignInOptionsModal = function (_a) { var listener = _a.listener, cameraScanner = _a.cameraScanner, close = _a.close, children = _a.children, SignInQrView = _a.SignInQrView, SignInPhoneView = _a.SignInPhoneView, SignUpView = _a.SignUpView, KeypadView = _a.KeypadView, ErrorMessageView = _a.ErrorMessageView, imageUrl = _a.imageUrl; var _b = useAppSelector(selectKioskConfig), config = _b.signInOptions, modalContentConfig = _b.modalContent; var _c = useState(null), signInType = _c[0], setSignInType = _c[1]; var terminal = useAppSelector(selectKioskTerminal); var scannerType = (terminal === null || terminal === void 0 ? void 0 : terminal.pos_scanner_type) || 'NONE'; var handlers = { close: close, setSignInType: setSignInType }; var hasScanner = useAppSelector(selectKioskHasScanner); useEffect(function () { if (!hasScanner) setSignInType('PHONE'); }, [hasScanner]); var renderSignInQr = useCallback(function (close) { return (React.createElement(SignInQrContainer, { listener: listener, cameraScanner: cameraScanner, close: close, children: SignInQrView, type: scannerType, imageUrl: imageUrl })); }, [SignInQrView, cameraScanner, listener, scannerType, imageUrl]); var renderSignInPhone = useCallback(function (close) { return (React.createElement(SignInPhoneContainer, { ErrorMessageView: ErrorMessageView, KeypadView: KeypadView, SignUpView: SignUpView, close: close, children: SignInPhoneView })); }, [SignInPhoneView, KeypadView, SignUpView, ErrorMessageView]); if (!config) return null; return children({ config: config, modalContentConfig: modalContentConfig, handlers: handlers, signInType: signInType, scannerType: scannerType, renderSignInQr: renderSignInQr, renderSignInPhone: renderSignInPhone }); }; export default SignInOptionsModal;