Skip to content

Commit

Permalink
Merge pull request #11 from Gin-n-Tonicc/FE_Profile_Finish_Touches
Browse files Browse the repository at this point in the history
Fe profile finish touches
  • Loading branch information
stefan-petrov1 committed Apr 21, 2024
2 parents efff6cc + 93c9497 commit 8e22d17
Show file tree
Hide file tree
Showing 34 changed files with 90 additions and 284 deletions.
3 changes: 2 additions & 1 deletion client/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ import Home from './pages/home/Home';
import NotFound from './pages/not-found/NotFound';
import Profile from './pages/profile/Profile';
import './scss/styles.scss';
import { PageEnum, RoleEnum } from './types';
import { AdminPageEnum } from './types/enums/AdminPageEnum';
import { PageEnum } from './types/enums/PageEnum';
import { RoleEnum } from './types/enums/RoleEnum';

function App() {
return (
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/alert/Alert.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect } from 'react';
import { useErrorContext } from '../../contexts/ErrorContext';
import { AlertTypeEnum } from '../../types';
import { AlertTypeEnum } from '../../types/enums/AlertTypeEnum';
import './Alert.scss';

interface IParentAlertProps {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { useCallback } from 'react';
import { Navigate, Outlet, To, useLocation } from 'react-router-dom';
import { useAuthContext } from '../../../contexts/AuthContext';
import { PageEnum, RoleEnum } from '../../../types';
import { PageEnum } from '../../../types/enums/PageEnum';
import { RoleEnum } from '../../../types/enums/RoleEnum';

type ProtectedRouteProps = {
role: RoleEnum | null;
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/breadcrumb/Breadcrumb.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Link } from 'react-router-dom';
import { PageEnum } from '../../types';
import { PageEnum } from '../../types/enums/PageEnum';

interface BreadcrumbProps {
pageName: string;
Expand Down
5 changes: 3 additions & 2 deletions client/src/components/http-provider/HttpProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ import { CachePolicies, CustomOptions, Provider, useFetch } from 'use-http';
import { authPaths } from '../../config/api';
import { useAuthContext } from '../../contexts/AuthContext';
import { useErrorContext } from '../../contexts/ErrorContext';
import { IUser } from '../../types';
import { initialAuth, isJwtExpired } from '../../utils';
import { IUser } from '../../types/interfaces/auth/IUser';
import { initialAuth } from '../../utils/auth';
import { isJwtExpired } from '../../utils/jwt';

// The component that is responsible for the useFetch hook options
export default function HttpProvider({ children }: PropsWithChildren) {
Expand Down
3 changes: 2 additions & 1 deletion client/src/components/navbar/Navbar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Link, useLocation } from 'react-router-dom';
import { useAuthContext } from '../../contexts/AuthContext';
import { PageEnum, RoleEnum } from '../../types';
import { AdminPageEnum } from '../../types/enums/AdminPageEnum';
import { PageEnum } from '../../types/enums/PageEnum';
import { RoleEnum } from '../../types/enums/RoleEnum';
import profileUserIcon from './img/profile-user-icon.png';
import NavItem from './nav-item/NavItem';

Expand Down
2 changes: 1 addition & 1 deletion client/src/config/api/events.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EventsFilterEnum } from '../../types';
import { EventsFilterEnum } from '../../types/enums/EventsFilterEnum';
import { baseApiUrl } from './base';

const base = `${baseApiUrl}/events`;
Expand Down
8 changes: 6 additions & 2 deletions client/src/contexts/AuthContext.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
import { PropsWithChildren, createContext, useContext } from 'react';
import { useLocalStorage } from '../hooks/useLocalStorage';
import { IAuthResponse, IAuthStorage, IUser, RoleEnum } from '../types';
import { deleteJwtCookie, deleteRefreshCookie, isJwtExpired } from '../utils';
import { RoleEnum } from '../types/enums/RoleEnum';
import { IAuthResponse } from '../types/interfaces/auth/IAuthResponse';
import { IAuthStorage } from '../types/interfaces/auth/IAuthStorage';
import { IUser } from '../types/interfaces/auth/IUser';
import { deleteJwtCookie, deleteRefreshCookie } from '../utils/cookies';
import { isJwtExpired } from '../utils/jwt';

type AuthContextType = {
user: Partial<IAuthStorage>;
Expand Down
3 changes: 2 additions & 1 deletion client/src/contexts/ErrorContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import {
useState,
} from 'react';
import { v4 as uuidV4 } from 'uuid';
import { AlertTypeEnum, IError } from '../types';
import { AlertTypeEnum } from '../types/enums/AlertTypeEnum';
import { IError } from '../types/interfaces/common/IError';

const ErrorContext = createContext<null | ErrorContextType>(null);
const maxErrors = 3;
Expand Down
4 changes: 2 additions & 2 deletions client/src/hooks/useAuthenticate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { useEffect } from 'react';
import { useFetch } from 'use-http';
import { authPaths } from '../config/api';
import { useAuthContext } from '../contexts/AuthContext';
import { IAuthResponse } from '../types';
import { initialAuth } from '../utils';
import { IAuthResponse } from '../types/interfaces/auth/IAuthResponse';
import { initialAuth } from '../utils/auth';

// The hook that authenticates our user
export default function useAuthenticate(shouldLogoutUser: boolean = true) {
Expand Down
2 changes: 1 addition & 1 deletion client/src/hooks/usePagination.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import * as paginationUtils from '../utils';
import * as paginationUtils from '../utils/page';

type TogglePageFunction = (page: number) => void;
type SwitchPageFunction = () => void;
Expand Down
3 changes: 2 additions & 1 deletion client/src/pages/admin/Admin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import { useMemo } from 'react';
import { Navigate, Outlet } from 'react-router-dom';
import Spinner from '../../components/spinner/Spinner';
import useAuthenticate from '../../hooks/useAuthenticate';
import { PageEnum, RoleEnum } from '../../types';
import { PageEnum } from '../../types/enums/PageEnum';
import { RoleEnum } from '../../types/enums/RoleEnum';

// The component that decides if the user can access the admin panel
export default function Admin() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { camelCaseToWords, capitalizeWord } from '../../../../utils';
import { camelCaseToWords, capitalizeWord } from '../../../../utils/string';

interface AdminEditFormRowProps {
columnName: string;
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/admin/admin-table/AdminTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { SubmitHandler } from 'react-hook-form';
import { v4 as uuidV4 } from 'uuid';
import { usePagination } from '../../../hooks/usePagination';
import { IObjectWithId } from '../../../types/interfaces/common/IObjectWithId';
import { camelCaseToWords } from '../../../utils';
import { camelCaseToWords } from '../../../utils/string';
import AdminEditForm, {
OnCreateFunction,
OnUpdateFunction,
Expand Down
9 changes: 4 additions & 5 deletions client/src/pages/auth/finish-register/FinishRegister.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ import { OAuthPaths, skillsPaths } from '../../../config/api';
import { useAuthContext } from '../../../contexts/AuthContext';
import { useErrorContext } from '../../../contexts/ErrorContext';
import useValidators from '../../../hooks/useValidator';
import { IAuthResponse, ISkill, PageEnum, RoleEnum } from '../../../types';
import { PageEnum } from '../../../types/enums/PageEnum';
import { RoleEnum } from '../../../types/enums/RoleEnum';
import { IAuthResponse } from '../../../types/interfaces/auth/IAuthResponse';
import { ISkill } from '../../../types/interfaces/skills/ISkill';
import '../styles/Register.scss';

type Inputs = {
Expand Down Expand Up @@ -40,8 +43,6 @@ function FinishRegister() {
register,
reset,
watch,
setError,
clearErrors,
setValue,
formState: { errors },
} = useForm<Inputs>({
Expand All @@ -60,8 +61,6 @@ function FinishRegister() {
mode: 'onChange',
});

const formValues = watch();

const { data: skills } = useFetch<ISkill[]>(
skillsPaths.getAll,
{
Expand Down
3 changes: 2 additions & 1 deletion client/src/pages/auth/login/Login.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { authPaths, OAuthPaths } from '../../../config/api';
import { useAuthContext } from '../../../contexts/AuthContext';
import useUrlSearchParam from '../../../hooks/useURLSearchParam';
import useValidators from '../../../hooks/useValidator';
import { IAuthResponse, PageEnum } from '../../../types';
import { PageEnum } from '../../../types/enums/PageEnum';
import { IAuthResponse } from '../../../types/interfaces/auth/IAuthResponse';

type Inputs = {
Email: string;
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/auth/logout/Logout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useFetch } from 'use-http';
import Spinner from '../../../components/spinner/Spinner';
import { authPaths } from '../../../config/api';
import { useAuthContext } from '../../../contexts/AuthContext';
import { PageEnum } from '../../../types';
import { PageEnum } from '../../../types/enums/PageEnum';

// The component used to handle logout
export default function Logout() {
Expand Down
5 changes: 4 additions & 1 deletion client/src/pages/auth/register/Register.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ import SkillsSelect, {
import { authPaths, OAuthPaths, skillsPaths } from '../../../config/api';
import { useErrorContext } from '../../../contexts/ErrorContext';
import useValidators from '../../../hooks/useValidator';
import { AlertTypeEnum, IAuthResponse, ISkill, RoleEnum } from '../../../types';
import { AlertTypeEnum } from '../../../types/enums/AlertTypeEnum';
import { RoleEnum } from '../../../types/enums/RoleEnum';
import { IAuthResponse } from '../../../types/interfaces/auth/IAuthResponse';
import { ISkill } from '../../../types/interfaces/skills/ISkill';
import '../styles/Register.scss';

type Inputs = {
Expand Down
4 changes: 3 additions & 1 deletion client/src/pages/chat/Chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import { useFetch } from 'use-http';
import Spinner from '../../components/spinner/Spinner';
import { messagesPaths, usersPaths } from '../../config/api';
import { useAuthContext } from '../../contexts/AuthContext';
import { IFullUser, IMessage, PageEnum } from '../../types';
import { PageEnum } from '../../types/enums/PageEnum';
import { IFullUser } from '../../types/interfaces/auth/IFullUser';
import { IMessage } from '../../types/interfaces/chat/IMessage';
import './Chat.css';
import ChatLeftMessage from './chat-left-message/ChatLeftMessage';
import ChatRightMessage from './chat-right-message/ChatRightMessage';
Expand Down
4 changes: 3 additions & 1 deletion client/src/pages/events-create/EventsCreate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ import SkillsSelect, {
} from '../../components/skills-select/SkillsSelect';
import { eventsPaths, filesPaths, skillsPaths } from '../../config/api';
import useValidators from '../../hooks/useValidator';
import { IFile, ISkill, PageEnum } from '../../types';
import { PageEnum } from '../../types/enums/PageEnum';
import { IFile } from '../../types/interfaces/common/IFile';
import { IEvent } from '../../types/interfaces/events/IEvent';
import { ISkill } from '../../types/interfaces/skills/ISkill';

type Inputs = {
Name: string;
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/events-details/EventsDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
userEventStatusesPaths,
} from '../../config/api';
import { useAuthContext } from '../../contexts/AuthContext';
import { IUser } from '../../types';
import { IUser } from '../../types/interfaces/auth/IUser';
import { IEvent } from '../../types/interfaces/events/IEvent';

const CHARACTER_DESCRIPTION_THRESHOLD = 60;
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/events/Events.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { useState } from 'react';
import { CachePolicies, useFetch } from 'use-http';
import Spinner from '../../components/spinner/Spinner';
import { eventsPaths } from '../../config/api';
import { EventsFilterEnum } from '../../types';
import { EventsFilterEnum } from '../../types/enums/EventsFilterEnum';
import { IEvent } from '../../types/interfaces/events/IEvent';
import EventsBreadcrumb from './events-breadcrumb/EventsBreadcrumb';
import EventsItem from './events-item/EventsItem';
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/events/events-item/EventsItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Link } from 'react-router-dom';
import { useFetch } from 'use-http';
import { eventsPaths, filesPaths } from '../../../config/api';
import { useAuthContext } from '../../../contexts/AuthContext';
import { PageEnum } from '../../../types';
import { PageEnum } from '../../../types/enums/PageEnum';
import { IEvent } from '../../../types/interfaces/events/IEvent';

export interface EventsItemProps extends IEvent {}
Expand Down
4 changes: 0 additions & 4 deletions client/src/pages/home/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import HomeExploreBySkill from './home-explore-by-skill/HomeExploreBySkill';
import HomeHero from './home-hero/HomeHero';
import HomeHowToStart from './home-how-to-start/HomeHowToStart';
import HomeSearch from './home-search/HomeSearch';

function Home() {
return (
<>
<HomeHero />
<HomeSearch />
<HomeExploreBySkill />
<HomeHowToStart />
</>
);
Expand Down
17 changes: 7 additions & 10 deletions client/src/pages/home/home-hero/HomeHero.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { Link } from 'react-router-dom';
import { PageEnum } from '../../../types/enums/PageEnum';
import carousel1 from './img/carousel-1.jpg';

function HomeHero() {
Expand All @@ -13,23 +15,18 @@ function HomeHero() {
<div className="row justify-content-start">
<div className="col-10 col-lg-8">
<h1 className="display-3 text-white animated slideInDown mb-4">
Find The Perfect Job That You Deserved
Find The Perfect Event That You Deserved
</h1>
<p className="fs-5 fw-medium text-white mb-4 pb-2">
Vero elitr justo clita lorem. Ipsum dolor at sed stet sit
diam no. Kasd rebum ipsum et diam justo clita et kasd rebum
sea elitr.
</p>
<a
href=""
<Link
to={PageEnum.Events}
className="btn btn-primary py-md-3 px-md-5 me-3 animated slideInLeft">
Search A Job
</a>
<a
href=""
className="btn btn-secondary py-md-3 px-md-5 animated slideInRight">
Find A Talent
</a>
Search An Event
</Link>
</div>
</div>
</div>
Expand Down
10 changes: 7 additions & 3 deletions client/src/pages/home/home-how-to-start/HomeHowToStart.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { Link } from 'react-router-dom';
import { PageEnum } from '../../../types/enums/PageEnum';
import about1 from './img/about-1.jpg';
import about2 from './img/about-2.jpg';
import about3 from './img/about-3.jpg';
Expand Down Expand Up @@ -34,7 +36,7 @@ function HomeHowToStart() {
</div>
<div className="col-lg-6 wow fadeIn" data-wow-delay="0.5s">
<h1 className="mb-4">
We Help To Get The Best Job And Find A Talent
We Help To Get The Best Event And Find A Talent
</h1>
<p className="mb-4">
Tempor erat elitr rebum at clita. Diam dolor diam ipsum sit. Aliqu
Expand All @@ -53,9 +55,11 @@ function HomeHowToStart() {
<i className="fa fa-check text-primary me-3" />
Clita duo justo magna dolore erat amet
</p>
<a className="btn btn-primary py-3 px-5 mt-3" href="">
<Link
to={PageEnum.Events}
className="btn btn-primary py-3 px-5 mt-3">
Read More
</a>
</Link>
</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/not-found/NotFound.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Link } from 'react-router-dom';
import { PageEnum } from '../../types';
import { PageEnum } from '../../types/enums/PageEnum';

function NotFound() {
return (
Expand Down
Loading

0 comments on commit 8e22d17

Please sign in to comment.