diff --git a/client/src/components/navigation/Header/header.scss b/client/src/components/navigation/Header/header.scss index 0247c931ebde126aff83fcf0d2957583904ea9d4..ac4dc5038b5b25cd1306dad2c3f755101cbfa3cd 100644 --- a/client/src/components/navigation/Header/header.scss +++ b/client/src/components/navigation/Header/header.scss @@ -75,12 +75,9 @@ .site-header { display: flex; - justify-content: space-between; align-items: center; padding-bottom: 20px; - &.right { - justify-content: flex-end; - } + justify-content: flex-end; @include mx.breakpoint(large) { display: none; diff --git a/client/src/components/navigation/Header/index.tsx b/client/src/components/navigation/Header/index.tsx index 782638fb10f3e3aa3595c35482f49d2dd228de9b..db569dc1941b785e4ce70264036b0f0eaa99b7fd 100644 --- a/client/src/components/navigation/Header/index.tsx +++ b/client/src/components/navigation/Header/index.tsx @@ -1,5 +1,4 @@ import './header.scss'; -import { useHistory } from 'react-router-dom'; import Navigation from 'components/navigation/Navigation'; import Sidebar from 'components/navigation/Sidebar'; import Page from 'components/layout/Page' @@ -8,25 +7,14 @@ import { ReactNode, useState } from 'react'; interface Props { children?: ReactNode } - export default function Header({ children }: Props) { - const history = useHistory(); - const hasBack = history.location.pathname.split('/').length > 3; - const [showSidebar, setShowSidebar] = useState<boolean>(false); return ( <div className="full-width"> <Sidebar setMobileShown={setShowSidebar} mobileShown={showSidebar} /> <div className={'page-wrapper' + (showSidebar ? ' moved' : '')} onClick={() => showSidebar && setShowSidebar(false)}> <Page> - <header className={'site-header' + (!hasBack ? ' right' : '')}> - { - hasBack && ( - <span className="material-icons" onClick={history.goBack} > - arrow_back - </span> - ) - } + <header className="site-header"> <div className="hamburger-container"> <div className="hamburger" onClick={() => !showSidebar && setShowSidebar(true)}> <div className="line"></div> diff --git a/client/src/components/navigation/Navigation/navigation.scss b/client/src/components/navigation/Navigation/navigation.scss index bc29dac3d3770aeb2277184c7ea39877d2680c6a..04c356331c1a57acf7ea43df88acf821c321f6d9 100644 --- a/client/src/components/navigation/Navigation/navigation.scss +++ b/client/src/components/navigation/Navigation/navigation.scss @@ -10,7 +10,7 @@ display: flex; align-items: center; justify-content: center; - z-index: 200; + z-index: 2000000; background: s.$white; box-shadow: 0 0 25px rgba(s.$black, 0.1); diff --git a/client/src/index.scss b/client/src/index.scss index fe2baa3f721297354b26253c405af78a91647630..346dc5fb272c1ccafef870daf0a66bc1a8618599 100644 --- a/client/src/index.scss +++ b/client/src/index.scss @@ -166,8 +166,19 @@ $color in s.$themeLightMap { .bg-gradient-horizontal-#{$key} { background: linear-gradient(to left, $color 0%, fn.getFrom(s.$themeDarkMap, $key) 100%); } + .theme-#{$key} { --primary: #{$color}; --primary-dark: #{fn.getFrom(s.$themeDarkMap, $key)}; } +} + +.back-btn { + position: absolute; + top: 0; + left: 0; + padding: 35px 30px 20px 30px; + font-size: 30px; + height: 84px; + cursor: pointer; } \ No newline at end of file diff --git a/client/src/pages/Projects/ProjectCreate/index.tsx b/client/src/pages/Projects/ProjectCreate/index.tsx index 8009c4facc979a12031ce6ed41d9fa8a08b6c510..3f7cd8f46a789b8342ed1d4295aa9a0e6c050128 100644 --- a/client/src/pages/Projects/ProjectCreate/index.tsx +++ b/client/src/pages/Projects/ProjectCreate/index.tsx @@ -19,6 +19,9 @@ export default function ProjectCreate() { return ( <div className="project-create-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Create a new Project</h1> {error && <Callout message={error} />} diff --git a/client/src/pages/Projects/ProjectDetail/index.tsx b/client/src/pages/Projects/ProjectDetail/index.tsx index 6744620fe9bcb598210ad5332a30fb19600788ca..e141f17fe24bd14d4aa6e99ca86592ae0adbaa13 100644 --- a/client/src/pages/Projects/ProjectDetail/index.tsx +++ b/client/src/pages/Projects/ProjectDetail/index.tsx @@ -43,6 +43,9 @@ export default function ProjectDetail() { if (project) { return ( <div className={"project-detail-page theme-" + project.color}> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <Tag label={project.status} color={StatusColors.get(project.status)} /> <h1>{project.name}</h1> diff --git a/client/src/pages/Projects/ProjectEdit/index.tsx b/client/src/pages/Projects/ProjectEdit/index.tsx index f2a6b7494fa960135650e6eab0ba62d8a86d0952..5c8a8b1b4133f8284dc3fd77001b352a434108e8 100644 --- a/client/src/pages/Projects/ProjectEdit/index.tsx +++ b/client/src/pages/Projects/ProjectEdit/index.tsx @@ -41,6 +41,9 @@ export default function ProjectEdit() { if (project) { return ( <div className="project-create-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Edit the project {project.name}</h1> {error && <Callout message={error} />} diff --git a/client/src/pages/Tasks/TaskCreate/index.tsx b/client/src/pages/Tasks/TaskCreate/index.tsx index 4180169be7bdeed652f251077779ff3038f73656..5c2ef9a51bc8ada823a351ee93132e57f8551820 100644 --- a/client/src/pages/Tasks/TaskCreate/index.tsx +++ b/client/src/pages/Tasks/TaskCreate/index.tsx @@ -32,6 +32,9 @@ export default function TaskCreate() { if (project) { return ( <div className="task-create-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Create a new task</h1> {error && <Callout message={error} />} diff --git a/client/src/pages/Tasks/TaskDetail/index.tsx b/client/src/pages/Tasks/TaskDetail/index.tsx index 596cf3f881c470a30486d778698df4a333e4f78e..b91dcc70d476683bad67064dda8cd5fa52f1ed92 100644 --- a/client/src/pages/Tasks/TaskDetail/index.tsx +++ b/client/src/pages/Tasks/TaskDetail/index.tsx @@ -53,6 +53,9 @@ export default function TaskDetail() { if (task) { return ( <div className={'tasks-detail-page theme-' + StatusColors.get(task.status)}> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <Tag label={task.status} color={StatusColors.get(task.status)} /> <h1>{task.name}</h1> diff --git a/client/src/pages/Tasks/TaskEdit/index.tsx b/client/src/pages/Tasks/TaskEdit/index.tsx index a7630c4c85c402093ce8c52f8975871e44b67503..d698313b1f4dfd86dd9fdf0c0274c0acd56b0113 100644 --- a/client/src/pages/Tasks/TaskEdit/index.tsx +++ b/client/src/pages/Tasks/TaskEdit/index.tsx @@ -64,6 +64,9 @@ export default function TaskEdit() { if (task && project) { return ( <div className="task-edit-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Edit your task</h1> <TaskForm project={project} task={task} onSubmit={handleSubmit} /> diff --git a/client/src/pages/Tasks/TaskStart/index.tsx b/client/src/pages/Tasks/TaskStart/index.tsx index d83515e2ea6bbfb1ebabbdd11d100f1d50e93cd7..ba8112d51493afcba9eb8507b311dd297e750fa3 100644 --- a/client/src/pages/Tasks/TaskStart/index.tsx +++ b/client/src/pages/Tasks/TaskStart/index.tsx @@ -96,26 +96,27 @@ export default function TaskDetail() { } }, [paused, task, timer]) - const finishTask = useCallback(() => { + const finishTask = useCallback(async () => { if (task && assignee) { if (timer) { clearInterval(timer); + await finishWork(); } - finishWork(); - const assignees = task.assigned.filter(a => a.user !== assignee.user).concat({ ...assignee, finished: true }); updateTask(task.id, { add_assigned: assignees, remove_assigned: [assignee.user] - - }) - history.go(0); + }); + setAssignee({ ...assignee, finished: true }) } - }, [task, history, timer, assignee]) + }, [task, timer, assignee]) if (task && assignee) { return ( <div className={'tasks-start-page theme-' + StatusColors.get(task.status)}> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <Tag label={task.status} color={StatusColors.get(task.status)} /> <h1>{task.name}</h1> diff --git a/client/src/pages/Teams/TeamsCreate/index.tsx b/client/src/pages/Teams/TeamsCreate/index.tsx index 466d7cb0970f18a29782bd1cf61061ed26416d59..b50f84ba6c1f6a31ac5919fe898a5a3741592391 100644 --- a/client/src/pages/Teams/TeamsCreate/index.tsx +++ b/client/src/pages/Teams/TeamsCreate/index.tsx @@ -18,6 +18,9 @@ export default function TeamsCreate() { return ( <div className="teams-create-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Create a new team</h1> {error && <Callout message={error} />} diff --git a/client/src/pages/Teams/TeamsEdit/index.tsx b/client/src/pages/Teams/TeamsEdit/index.tsx index 177ff2ea5a53b7d5b5fc151e236c32fab5451217..51daff70e824f3852db5d39a12b05471fab23e79 100644 --- a/client/src/pages/Teams/TeamsEdit/index.tsx +++ b/client/src/pages/Teams/TeamsEdit/index.tsx @@ -38,6 +38,9 @@ export default function TeamsEdit() { if (team) { return ( <div className="team-edit-page"> + <span className="material-icons back-btn" onClick={history.goBack} > + arrow_back + </span> <div className="content-container"> <h1>Edit {team.name}</h1> {error && <Callout message={error} />}