@livelike/react-native
Version:
LiveLike React Native package
56 lines • 1.55 kB
JavaScript
import React, { useCallback } from 'react';
import { LLWidgetSubmitButtonComponent } from '../LLWidgetFooter';
import { useIsEndWidgetUIPhase, useIsWidgetDisabled, useUserNumberOptions, useWidgetSubmitAction } from '../../hooks';
export function LLNumberPredictionWidgetSubmitButton(_ref) {
let {
widgetId,
styles,
onPress
} = _ref;
const numberOptions = useUserNumberOptions({
widgetId
});
const widgetDisabled = useIsWidgetDisabled({
widgetId
});
const isEndWidgetUIPhase = useIsEndWidgetUIPhase({
widgetId
});
const {
onInteractionSubmit
} = useWidgetSubmitAction({
widgetId
});
const onSubmit = useCallback(() => {
onPress === null || onPress === void 0 || onPress({
numberOptions
});
const interactionItem = {
options: numberOptions
};
onInteractionSubmit({
interactionItem
});
}, [numberOptions]);
if (isEndWidgetUIPhase) {
return undefined;
}
const disabled = widgetDisabled || isInvalidNumberOptions(numberOptions);
return /*#__PURE__*/React.createElement(LLWidgetSubmitButtonComponent, {
disabled: disabled,
onPress: onSubmit,
styles: styles
});
}
function isInvalidNumberOptions(numberOptions) {
if (!(numberOptions !== null && numberOptions !== void 0 && numberOptions.length)) {
return true;
}
for (let i = 0; i < 2; i++) {
if (!numberOptions[i] || numberOptions[i].number === undefined) {
return true;
}
}
return false;
}
//# sourceMappingURL=LLNumberPredictionWidgetSubmitButton.js.map