|
@@ -1,4 +1,4 @@
|
|
|
-import React from 'react';
|
|
|
+import React, { useEffect } from 'react';
|
|
|
import { useDispatch, useSelector } from 'react-redux';
|
|
|
import { ReactComponent as Logo } from '../../assets/img/logo.svg';
|
|
|
import { NavLink, useNavigate } from 'react-router-dom';
|
|
@@ -6,12 +6,19 @@ import { saveFiles } from '../../store/currentWork/actions/saveFiles';
|
|
|
import style from './HeaderPen.module.scss';
|
|
|
import { setFormatCode } from '../../store/currentWork/currentWorkSlice';
|
|
|
import { askToLogin } from '../../utils/askToLogin';
|
|
|
+import { BsFillCloudFill } from 'react-icons/bs';
|
|
|
+import { FaPen } from 'react-icons/fa/index';
|
|
|
+import { GoMessage } from '../GoMessage/GoMessage';
|
|
|
+import { useTimedPopup } from '../../hooks/useTimedPopup';
|
|
|
+import { usePopup } from '../../hooks/usePopup';
|
|
|
|
|
|
export const HeaderPen = () => {
|
|
|
const dispatch = useDispatch();
|
|
|
const navigate = useNavigate();
|
|
|
const { isAuth } = useSelector((state) => state.auth);
|
|
|
const { id, title, owner, files } = useSelector((state) => state.currentWork);
|
|
|
+ const saveMessage = useTimedPopup();
|
|
|
+ const askToLoginPopup = usePopup();
|
|
|
|
|
|
const logout = () => {
|
|
|
localStorage.removeItem('authToken');
|
|
@@ -22,7 +29,8 @@ export const HeaderPen = () => {
|
|
|
dispatch(setFormatCode());
|
|
|
|
|
|
if (!isAuth) {
|
|
|
- if (askToLogin()) navigate('/login');
|
|
|
+ askToLoginPopup.open();
|
|
|
+ // if (askToLogin()) navigate('/login');
|
|
|
} else {
|
|
|
dispatch(
|
|
|
saveFiles({
|
|
@@ -32,6 +40,7 @@ export const HeaderPen = () => {
|
|
|
js: files.js.text,
|
|
|
})
|
|
|
);
|
|
|
+ saveMessage.openPopup();
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -47,12 +56,37 @@ export const HeaderPen = () => {
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
+ <GoMessage type="warning" isOpen={askToLoginPopup.isPopupVisible}>
|
|
|
+ <div className={style.loginPopup}>
|
|
|
+ <span>
|
|
|
+ You’ll have to Log In or Sign Up to save your Pen. Don’t worry! All
|
|
|
+ your work will be saved to your account.
|
|
|
+ </span>
|
|
|
+ <div>
|
|
|
+ <button onClick={askToLoginPopup.close}>close</button>
|
|
|
+ <NavLink to={'/login'}>OK</NavLink>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </GoMessage>
|
|
|
+
|
|
|
+ <GoMessage
|
|
|
+ type="success"
|
|
|
+ message={'Pen saved.'}
|
|
|
+ close={saveMessage.closePopup}
|
|
|
+ isOpen={saveMessage.isOpen}
|
|
|
+ />
|
|
|
+
|
|
|
<nav>
|
|
|
- <button onClick={handleSaveFiles}>Save</button>
|
|
|
+ <button onClick={handleSaveFiles}>
|
|
|
+ <BsFillCloudFill />
|
|
|
+ Save
|
|
|
+ </button>
|
|
|
|
|
|
{isAuth ? (
|
|
|
<>
|
|
|
- <NavLink to="/your-works">Your works</NavLink>
|
|
|
+ <NavLink to="/your-works">
|
|
|
+ <FaPen /> Your works
|
|
|
+ </NavLink>
|
|
|
<NavLink
|
|
|
style={{ backgroundColor: '#dc143c' }}
|
|
|
onClick={logout}
|