Rocket.Chat.ReactNative/app/containers/Passcode/PasscodeChoose.js

57 lines
1.1 KiB
JavaScript
Raw Normal View History

2020-04-23 20:59:35 +00:00
import React, { useState } from 'react';
2020-04-23 20:11:17 +00:00
import PropTypes from 'prop-types';
import Base from './Base';
import { TYPE } from './constants';
const PasscodeEnter = ({
theme, type, finishProcess
}) => {
2020-04-23 20:59:35 +00:00
const [subtitle, setSubtitle] = useState(null);
2020-04-23 20:11:17 +00:00
const [status, setStatus] = useState(type);
const [previousPasscode, setPreviouPasscode] = useState(null);
const firstStep = (p) => {
setStatus(TYPE.CONFIRM);
setPreviouPasscode(p);
};
const changePasscode = p => finishProcess && finishProcess(p);
2020-04-23 20:59:35 +00:00
const onError = () => {
setStatus(TYPE.CHOOSE);
setSubtitle('Passcodes don\'t match. Try again.');
};
2020-04-23 20:11:17 +00:00
if (status === TYPE.CONFIRM) {
2020-04-23 20:59:35 +00:00
return (
<Base
theme={theme}
type={TYPE.CONFIRM}
onEndProcess={changePasscode}
previousPasscode={previousPasscode}
title='Confirm your new passcode'
onError={onError}
/>
);
2020-04-23 20:11:17 +00:00
}
2020-04-23 20:59:35 +00:00
return (
<Base
theme={theme}
type={TYPE.CHOOSE}
onEndProcess={firstStep}
title='Choose your new passcode'
subtitle={subtitle}
/>
);
2020-04-23 20:11:17 +00:00
};
PasscodeEnter.propTypes = {
theme: PropTypes.string,
type: PropTypes.string,
finishProcess: PropTypes.func
};
export default PasscodeEnter;