Skip to content
Snippets Groups Projects
Commit ce92bb5f authored by Planoetscher Daniel (Student Com20)'s avatar Planoetscher Daniel (Student Com20)
Browse files

added backbtn, general fixes

parent 934f2103
No related branches found
No related tags found
No related merge requests found
Showing
with 46 additions and 25 deletions
...@@ -75,12 +75,9 @@ ...@@ -75,12 +75,9 @@
.site-header { .site-header {
display: flex; display: flex;
justify-content: space-between;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
&.right { justify-content: flex-end;
justify-content: flex-end;
}
@include mx.breakpoint(large) { @include mx.breakpoint(large) {
display: none; display: none;
......
import './header.scss'; import './header.scss';
import { useHistory } from 'react-router-dom';
import Navigation from 'components/navigation/Navigation'; import Navigation from 'components/navigation/Navigation';
import Sidebar from 'components/navigation/Sidebar'; import Sidebar from 'components/navigation/Sidebar';
import Page from 'components/layout/Page' import Page from 'components/layout/Page'
...@@ -8,25 +7,14 @@ import { ReactNode, useState } from 'react'; ...@@ -8,25 +7,14 @@ import { ReactNode, useState } from 'react';
interface Props { interface Props {
children?: ReactNode children?: ReactNode
} }
export default function Header({ children }: Props) { export default function Header({ children }: Props) {
const history = useHistory();
const hasBack = history.location.pathname.split('/').length > 3;
const [showSidebar, setShowSidebar] = useState<boolean>(false); const [showSidebar, setShowSidebar] = useState<boolean>(false);
return ( return (
<div className="full-width"> <div className="full-width">
<Sidebar setMobileShown={setShowSidebar} mobileShown={showSidebar} /> <Sidebar setMobileShown={setShowSidebar} mobileShown={showSidebar} />
<div className={'page-wrapper' + (showSidebar ? ' moved' : '')} onClick={() => showSidebar && setShowSidebar(false)}> <div className={'page-wrapper' + (showSidebar ? ' moved' : '')} onClick={() => showSidebar && setShowSidebar(false)}>
<Page> <Page>
<header className={'site-header' + (!hasBack ? ' right' : '')}> <header className="site-header">
{
hasBack && (
<span className="material-icons" onClick={history.goBack} >
arrow_back
</span>
)
}
<div className="hamburger-container"> <div className="hamburger-container">
<div className="hamburger" onClick={() => !showSidebar && setShowSidebar(true)}> <div className="hamburger" onClick={() => !showSidebar && setShowSidebar(true)}>
<div className="line"></div> <div className="line"></div>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
z-index: 200; z-index: 2000000;
background: s.$white; background: s.$white;
box-shadow: 0 0 25px rgba(s.$black, 0.1); box-shadow: 0 0 25px rgba(s.$black, 0.1);
......
...@@ -166,8 +166,19 @@ $color in s.$themeLightMap { ...@@ -166,8 +166,19 @@ $color in s.$themeLightMap {
.bg-gradient-horizontal-#{$key} { .bg-gradient-horizontal-#{$key} {
background: linear-gradient(to left, $color 0%, fn.getFrom(s.$themeDarkMap, $key) 100%); background: linear-gradient(to left, $color 0%, fn.getFrom(s.$themeDarkMap, $key) 100%);
} }
.theme-#{$key} { .theme-#{$key} {
--primary: #{$color}; --primary: #{$color};
--primary-dark: #{fn.getFrom(s.$themeDarkMap, $key)}; --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
...@@ -19,6 +19,9 @@ export default function ProjectCreate() { ...@@ -19,6 +19,9 @@ export default function ProjectCreate() {
return ( return (
<div className="project-create-page"> <div className="project-create-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Create a new Project</h1> <h1>Create a new Project</h1>
{error && <Callout message={error} />} {error && <Callout message={error} />}
......
...@@ -43,6 +43,9 @@ export default function ProjectDetail() { ...@@ -43,6 +43,9 @@ export default function ProjectDetail() {
if (project) { if (project) {
return ( return (
<div className={"project-detail-page theme-" + project.color}> <div className={"project-detail-page theme-" + project.color}>
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<Tag label={project.status} color={StatusColors.get(project.status)} /> <Tag label={project.status} color={StatusColors.get(project.status)} />
<h1>{project.name}</h1> <h1>{project.name}</h1>
......
...@@ -41,6 +41,9 @@ export default function ProjectEdit() { ...@@ -41,6 +41,9 @@ export default function ProjectEdit() {
if (project) { if (project) {
return ( return (
<div className="project-create-page"> <div className="project-create-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Edit the project {project.name}</h1> <h1>Edit the project {project.name}</h1>
{error && <Callout message={error} />} {error && <Callout message={error} />}
......
...@@ -32,6 +32,9 @@ export default function TaskCreate() { ...@@ -32,6 +32,9 @@ export default function TaskCreate() {
if (project) { if (project) {
return ( return (
<div className="task-create-page"> <div className="task-create-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Create a new task</h1> <h1>Create a new task</h1>
{error && <Callout message={error} />} {error && <Callout message={error} />}
......
...@@ -53,6 +53,9 @@ export default function TaskDetail() { ...@@ -53,6 +53,9 @@ export default function TaskDetail() {
if (task) { if (task) {
return ( return (
<div className={'tasks-detail-page theme-' + StatusColors.get(task.status)}> <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"> <div className="content-container">
<Tag label={task.status} color={StatusColors.get(task.status)} /> <Tag label={task.status} color={StatusColors.get(task.status)} />
<h1>{task.name}</h1> <h1>{task.name}</h1>
......
...@@ -64,6 +64,9 @@ export default function TaskEdit() { ...@@ -64,6 +64,9 @@ export default function TaskEdit() {
if (task && project) { if (task && project) {
return ( return (
<div className="task-edit-page"> <div className="task-edit-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Edit your task</h1> <h1>Edit your task</h1>
<TaskForm project={project} task={task} onSubmit={handleSubmit} /> <TaskForm project={project} task={task} onSubmit={handleSubmit} />
......
...@@ -96,26 +96,27 @@ export default function TaskDetail() { ...@@ -96,26 +96,27 @@ export default function TaskDetail() {
} }
}, [paused, task, timer]) }, [paused, task, timer])
const finishTask = useCallback(() => { const finishTask = useCallback(async () => {
if (task && assignee) { if (task && assignee) {
if (timer) { if (timer) {
clearInterval(timer); clearInterval(timer);
await finishWork();
} }
finishWork();
const assignees = task.assigned.filter(a => a.user !== assignee.user).concat({ ...assignee, finished: true }); const assignees = task.assigned.filter(a => a.user !== assignee.user).concat({ ...assignee, finished: true });
updateTask(task.id, { updateTask(task.id, {
add_assigned: assignees, add_assigned: assignees,
remove_assigned: [assignee.user] remove_assigned: [assignee.user]
});
}) setAssignee({ ...assignee, finished: true })
history.go(0);
} }
}, [task, history, timer, assignee]) }, [task, timer, assignee])
if (task && assignee) { if (task && assignee) {
return ( return (
<div className={'tasks-start-page theme-' + StatusColors.get(task.status)}> <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"> <div className="content-container">
<Tag label={task.status} color={StatusColors.get(task.status)} /> <Tag label={task.status} color={StatusColors.get(task.status)} />
<h1>{task.name}</h1> <h1>{task.name}</h1>
......
...@@ -18,6 +18,9 @@ export default function TeamsCreate() { ...@@ -18,6 +18,9 @@ export default function TeamsCreate() {
return ( return (
<div className="teams-create-page"> <div className="teams-create-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Create a new team</h1> <h1>Create a new team</h1>
{error && <Callout message={error} />} {error && <Callout message={error} />}
......
...@@ -38,6 +38,9 @@ export default function TeamsEdit() { ...@@ -38,6 +38,9 @@ export default function TeamsEdit() {
if (team) { if (team) {
return ( return (
<div className="team-edit-page"> <div className="team-edit-page">
<span className="material-icons back-btn" onClick={history.goBack} >
arrow_back
</span>
<div className="content-container"> <div className="content-container">
<h1>Edit {team.name}</h1> <h1>Edit {team.name}</h1>
{error && <Callout message={error} />} {error && <Callout message={error} />}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment