diff --git a/package-lock.json b/package-lock.json index 525f267..d2b7920 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "formik": "^2.2.9", "gh-pages": "^4.0.0", "javascript-time-ago": "^2.5.6", + "nvm": "^0.0.4", "react": "^18.2.0", "react-gravatar": "^2.6.3", "react-markdown": "^8.0.3", @@ -12819,6 +12820,15 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nvm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/nvm/-/nvm-0.0.4.tgz", + "integrity": "sha512-jvmyELykYcdyd0VCGY0E8Aqe5MngEasVvlPvrcJHbwBMUbVqa72mPdQuPzyTcykEtEx7jDrMY0QA5MoV+8EhgA==", + "deprecated": "This is NOT the correct nvm. Visit https://nvm.sh and use the curl command to install it.", + "bin": { + "nvm": "bin/nvm" + } + }, "node_modules/nwsapi": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", @@ -27419,6 +27429,11 @@ "boolbase": "^1.0.0" } }, + "nvm": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/nvm/-/nvm-0.0.4.tgz", + "integrity": "sha512-jvmyELykYcdyd0VCGY0E8Aqe5MngEasVvlPvrcJHbwBMUbVqa72mPdQuPzyTcykEtEx7jDrMY0QA5MoV+8EhgA==" + }, "nwsapi": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", diff --git a/package.json b/package.json index 1bcdab1..5d491bb 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "formik": "^2.2.9", "gh-pages": "^4.0.0", "javascript-time-ago": "^2.5.6", + "nvm": "^0.0.4", "react": "^18.2.0", "react-gravatar": "^2.6.3", "react-markdown": "^8.0.3", diff --git a/src/App.jsx b/src/App.jsx index 3a8ce4a..79582d0 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,5 +1,5 @@ import { BrowserRouter, Route, Routes } from 'react-router-dom'; -import { UserProvider, QuestionProvider } from 'contexts'; +import { UserProvider, QuestionProvider, FormProvider } from './contexts'; import { Ask, Buffet, @@ -14,42 +14,48 @@ import { Register, Reset, Search, -} from 'containers'; +} from './containers'; export default function App() { return ( - - }> - } /> + + + }> + } /> - - } /> - } /> - - } /> - } /> + + } /> + } /> + + } /> + } /> + + + } /> + + + } /> + } /> + + + } /> + + + {/* */} + } /> + {/* */} + + + } /> + + + } /> - - } /> - - - } /> - } /> - } /> - {/* */} - } /> - {/* */} - - - } /> - - - } /> - - + + ); diff --git a/src/components/MdPreview.jsx b/src/components/MdPreview.jsx new file mode 100644 index 0000000..ede7da5 --- /dev/null +++ b/src/components/MdPreview.jsx @@ -0,0 +1,27 @@ +import { useForm } from "contexts" +import { useState } from "react" +import ReactMarkdown from "react-markdown" +import {Paper, Typography, Button} from '@mui/material' +export default function MdPreview(){ + const [preview, setPreview] = useState(false) + const {content} = useForm() + + function handleClick(){ + setPreview(!preview) + } + return( +
+ + + {preview ? Text Preview: : null} +
+ ) + +} \ No newline at end of file diff --git a/src/components/index.js b/src/components/index.js index eca1a78..72153d0 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -6,6 +6,7 @@ import Navbar from './Navbar'; import PaginationEngine from './PaginationEngine'; import PaginatedList from './PaginatedList'; import SearchBar from './SearchBar'; +import MdPreview from './MdPreview'; export { CreationInfoTag, @@ -16,4 +17,5 @@ export { PaginationEngine, PaginatedList, SearchBar, + MdPreview }; diff --git a/src/containers/Ask.jsx b/src/containers/Ask.jsx index 52f50d5..d39d679 100644 --- a/src/containers/Ask.jsx +++ b/src/containers/Ask.jsx @@ -1,17 +1,14 @@ -<<<<<<< HEAD import { Card, CardContent, Paper, Typography } from '@mui/material'; -import { AskForm } from '../controllers'; +import { AskForm } from '../controllers/FormControllers'; import ReactMarkdown from 'react-markdown'; -import { useForm } from '../contexts/FormContext'; +import { useForm } from '../contexts'; +import {MdPreview} from 'components' -======= -import { Card, CardContent } from '@mui/material'; -import { AskForm } from 'controllers/FormControllers'; ->>>>>>> fb8023fcd79e9e1390e47f3ea4f22a605274b5a4 export default function Ask() { + const {content} = useForm() @@ -28,13 +25,12 @@ export default function Ask() { + + - - - Text Preview: - - + + diff --git a/src/containers/Login.jsx b/src/containers/Login.jsx index 2f2f85f..de7c640 100644 --- a/src/containers/Login.jsx +++ b/src/containers/Login.jsx @@ -1,6 +1,6 @@ import { Link, useLocation } from 'react-router-dom'; import { Card, CardContent, Grid, Typography, Alert } from '@mui/material'; -import { LoginForm } from '../controllers'; +import { LoginForm } from '../controllers/FormControllers'; export default function Login() { let location = useLocation(); diff --git a/src/containers/Mail.jsx b/src/containers/Mail.jsx index e150225..38c7fb6 100644 --- a/src/containers/Mail.jsx +++ b/src/containers/Mail.jsx @@ -1,12 +1,16 @@ import { Card, CardContent } from '@mui/material'; import React from 'react'; import { Inbox, SendMail } from 'controllers'; +import ReactMarkdown from 'react-markdown'; +import { useForm } from 'contexts'; +import { MdPreview } from 'components'; export default function Mail() { return ( + diff --git a/src/contexts/ContextProvider.jsx b/src/contexts/ContextProvider.jsx index 9f677c2..efe8ccb 100644 --- a/src/contexts/ContextProvider.jsx +++ b/src/contexts/ContextProvider.jsx @@ -1,22 +1,11 @@ -<<<<<<< HEAD -import { QuestionProvider, UserProvider, FormProvider} from '.'; - -======= -import { UserProvider } from 'contexts'; ->>>>>>> fb8023fcd79e9e1390e47f3ea4f22a605274b5a4 +import { UserProvider, FormProvider } from '.'; export default function ContextProvider({ children }) { return ( -<<<<<<< HEAD - - - {children} - - -======= - {children} ->>>>>>> fb8023fcd79e9e1390e47f3ea4f22a605274b5a4 + + {children} + ); } diff --git a/src/controllers/SendMailController.jsx b/src/controllers/SendMailController.jsx index 25a7bfd..e8db5f0 100644 --- a/src/controllers/SendMailController.jsx +++ b/src/controllers/SendMailController.jsx @@ -3,10 +3,26 @@ import { Form } from 'controllers/FormControllers'; import { composeMailFields } from 'services/fields'; import { postMail } from 'services/mailServices'; import { mailSchema } from 'services/schemas'; - +import { useEffect } from 'react'; +import { useNavigate } from 'react-router-dom'; export default function SendMailController() { + const { userData } = useUser(); + const navigate = useNavigate(); + useEffect(() => { + if(checkAuth()){ + navigate('/users/login', {state: {name : 'ask', msg : 'you need to be authenticated to access this feature' , prevPath: '/ask'}}) + } + }, []); + + function checkAuth(){ + + if(!userData.username){ + return true; + } + } + const sendMail = ({ reciever, subject, text }) => postMail(userData.username, reciever, subject, text);