feat: handle completion when logged out
This commit is contained in:
committed by
mrugesh
parent
feb96c3e3b
commit
bc1b6ca7a2
@ -35,11 +35,11 @@ function Login(props) {
|
|||||||
const { children, navigate, isSignedIn, ...restProps } = props;
|
const { children, navigate, isSignedIn, ...restProps } = props;
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
|
bsStyle='default'
|
||||||
|
className={(restProps.block ? 'btn-cta-big' : '') + ' signup-btn btn-cta'}
|
||||||
href='/signin'
|
href='/signin'
|
||||||
onClick={createOnClick(navigate, isSignedIn)}
|
onClick={createOnClick(navigate, isSignedIn)}
|
||||||
{...restProps}
|
{...restProps}
|
||||||
bsStyle='default'
|
|
||||||
className={(restProps.block ? 'btn-cta-big' : '') + ' signup-btn btn-cta'}
|
|
||||||
>
|
>
|
||||||
{children || 'Sign In'}
|
{children || 'Sign In'}
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -6,6 +6,7 @@ import { createSelector } from 'reselect';
|
|||||||
import { Button, Modal } from '@freecodecamp/react-bootstrap';
|
import { Button, Modal } from '@freecodecamp/react-bootstrap';
|
||||||
|
|
||||||
import ga from '../../../analytics';
|
import ga from '../../../analytics';
|
||||||
|
import Login from '../../../components/Header/components/Login';
|
||||||
import GreenPass from '../../../assets/icons/GreenPass';
|
import GreenPass from '../../../assets/icons/GreenPass';
|
||||||
|
|
||||||
import { dasherize } from '../../../../../utils/slugs';
|
import { dasherize } from '../../../../../utils/slugs';
|
||||||
@ -21,15 +22,19 @@ import {
|
|||||||
challengeMetaSelector
|
challengeMetaSelector
|
||||||
} from '../redux';
|
} from '../redux';
|
||||||
|
|
||||||
|
import { isSignedInSelector } from '../../../redux';
|
||||||
|
|
||||||
const mapStateToProps = createSelector(
|
const mapStateToProps = createSelector(
|
||||||
challengeFilesSelector,
|
challengeFilesSelector,
|
||||||
challengeMetaSelector,
|
challengeMetaSelector,
|
||||||
isCompletionModalOpenSelector,
|
isCompletionModalOpenSelector,
|
||||||
|
isSignedInSelector,
|
||||||
successMessageSelector,
|
successMessageSelector,
|
||||||
(files, { title }, isOpen, message) => ({
|
(files, { title }, isOpen, isSignedIn, message) => ({
|
||||||
files,
|
files,
|
||||||
title,
|
title,
|
||||||
isOpen,
|
isOpen,
|
||||||
|
isSignedIn,
|
||||||
message
|
message
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -58,6 +63,7 @@ const propTypes = {
|
|||||||
files: PropTypes.object.isRequired,
|
files: PropTypes.object.isRequired,
|
||||||
handleKeypress: PropTypes.func.isRequired,
|
handleKeypress: PropTypes.func.isRequired,
|
||||||
isOpen: PropTypes.bool,
|
isOpen: PropTypes.bool,
|
||||||
|
isSignedIn: PropTypes.bool.isRequired,
|
||||||
message: PropTypes.string,
|
message: PropTypes.string,
|
||||||
submitChallenge: PropTypes.func.isRequired,
|
submitChallenge: PropTypes.func.isRequired,
|
||||||
title: PropTypes.string
|
title: PropTypes.string
|
||||||
@ -107,6 +113,7 @@ export class CompletionModal extends Component {
|
|||||||
const {
|
const {
|
||||||
close,
|
close,
|
||||||
isOpen,
|
isOpen,
|
||||||
|
isSignedIn,
|
||||||
submitChallenge,
|
submitChallenge,
|
||||||
handleKeypress,
|
handleKeypress,
|
||||||
message,
|
message,
|
||||||
@ -144,9 +151,19 @@ export class CompletionModal extends Component {
|
|||||||
bsStyle='primary'
|
bsStyle='primary'
|
||||||
onClick={submitChallenge}
|
onClick={submitChallenge}
|
||||||
>
|
>
|
||||||
Submit and go to next challenge{' '}
|
{isSignedIn ? 'Submit and g' : 'G'}o to next challenge{' '}
|
||||||
<span className='hidden-xs'>(Ctrl + Enter)</span>
|
<span className='hidden-xs'>(Ctrl + Enter)</span>
|
||||||
</Button>
|
</Button>
|
||||||
|
{isSignedIn ? null : (
|
||||||
|
<Login
|
||||||
|
block={true}
|
||||||
|
bsSize='lg'
|
||||||
|
bsStyle='primary'
|
||||||
|
className='btn-invert'
|
||||||
|
>
|
||||||
|
Sign in to save your progress
|
||||||
|
</Login>
|
||||||
|
)}
|
||||||
{this.state.downloadURL ? (
|
{this.state.downloadURL ? (
|
||||||
<Button
|
<Button
|
||||||
block={true}
|
block={true}
|
||||||
|
Reference in New Issue
Block a user