guild_front/src/pages/Tracker/Tracker.js

231 lines
12 KiB
JavaScript
Raw Normal View History

2023-03-03 18:49:02 +03:00
import React, {useState} from 'react';
2023-02-17 15:19:49 +03:00
import {ProfileHeader} from "../../components/ProfileHeader/ProfileHeader";
2023-03-03 18:49:02 +03:00
import {Footer} from '../../components/Footer/Footer'
import project from '../../images/trackerProject.svg'
import tasks from '../../images/trackerTasks.svg'
import archive from '../../images/archiveTracker.svg'
2023-03-07 12:40:16 +03:00
import avatarTest from '../../images/AvatarTest .png'
import selectArrow from '../../images/select.svg'
import commentsBoard from '../../images/commentsBoard.svg'
import filesBoard from '../../images/filesBoard.svg'
2023-03-03 18:49:02 +03:00
import './tracker.scss'
2023-02-17 15:19:49 +03:00
export const Tracker = () => {
2023-03-03 18:49:02 +03:00
const [toggleTab, setToggleTab] = useState(1)
const [projects] = useState([
{
name: 'Разработка трекера',
count: 4
},
{
name: 'Кинотеатр',
count: 4
},
{
name: 'Проект страхование',
count: 4
}
])
2023-03-07 12:40:16 +03:00
const [tabTaskMok] = useState([
{
name: 'Открытые',
tasks: [
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
},
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
}
]
},
{
name: 'В процессе',
tasks: [
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
}
]
},
{
name: 'На проверке',
tasks: [
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
},
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
},
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
}
]
},
{
name: 'Готово',
tasks: [
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
},
{
task: 'PR - 2245',
description: 'Сверстать часть таблицы. Сверстать часть таблицы',
comments: 12,
files: 0,
avatarCreated: avatarTest,
avatarDo: avatarTest
}
]
}
])
2023-03-03 18:49:02 +03:00
const toggleTabs = (index) => {
setToggleTab(index)
}
2023-02-17 15:19:49 +03:00
return (
2023-03-03 18:49:02 +03:00
<div className='tracker'>
2023-02-17 15:19:49 +03:00
<ProfileHeader />
2023-03-03 18:49:02 +03:00
<div className='container'>
<div className='tracker__content'>
<h2 className='tracker__title'>Трекер</h2>
<div className='tracker__tabs'>
<div className='tracker__tabs__head'>
<div className={toggleTab === 1 ? 'tab active-tab' : 'tab'} onClick={() => toggleTabs(1)}>
<img src={project} alt='img' />
<p>Проекты </p>
</div>
<div className={toggleTab === 2 ? 'tab active-tab' : 'tab'} onClick={() => toggleTabs(2)}>
<img src={tasks} alt='img' />
<p>Задачи</p>
</div>
<div className={toggleTab === 3 ? 'tab active-tab' : 'tab'} onClick={() => toggleTabs(3)}>
<img src={archive} alt='img' />
<p>Архив</p>
</div>
</div>
<div className='tracker__tabs__content'>
<div className={toggleTab === 1 ? 'tracker__tabs__content__projects active__content' : 'tracker__tabs__content__projects'}>
{projects.map((project, index) => {
2023-03-07 19:07:31 +03:00
return <div className='project' key={index}>
2023-03-03 18:49:02 +03:00
<h3>{project.name}</h3>
<div className='project__info'>
<p>Открытые задачи</p>
<span className='count'>{project.count}</span>
<span className='add'>+</span>
</div>
</div>
})
}
<button><span>+</span>Создать проект</button>
</div>
2023-03-07 12:40:16 +03:00
<div className={toggleTab === 2 ? 'tracker__tabs__content__tasks tasks active__content' : 'tracker__tabs__content__projects'}>
<div className='tasks__head'>
<h4>Проект : Разработка трекера</h4>
<span className='tasks__head__add'>+</span>
<div className='tasks__head__persons'>
<img src={avatarTest} alt='avatar' />
<img src={avatarTest} alt='avatar' />
<img src={avatarTest} alt='avatar' />
<img src={avatarTest} alt='avatar' />
<span>+9</span>
</div>
<div className='tasks__head__select'>
<span>Учавствую</span>
<img src={selectArrow} alt='arrow' />
</div>
<div className='tasks__head__select'>
<span>Мои</span>
<img src={selectArrow} alt='arrow' />
</div>
</div>
<div className='tasks__container'>
{tabTaskMok.map((section, index) => {
return <div key={index} className={section.tasks.length >= 3 ? 'tasks__board tasks__board__more' : 'tasks__board'}>
<div className='board__head'>
2023-03-07 19:00:41 +03:00
<span className={index === 3 ? 'done' : ''}>{section.name}</span>
2023-03-07 12:40:16 +03:00
<div>
<span className='add'>+</span>
<span className='more'>...</span>
</div>
</div>
{section.tasks.map((task, index) => {
2023-03-07 19:00:41 +03:00
return <div key={index} className='tasks__board__item' draggable="true">
2023-03-07 12:40:16 +03:00
<div className='tasks__board__item__title'>
<p>{task.task}</p>
<span>...</span>
</div>
<p className='tasks__board__item__description'>
{task.description}
</p>
<div className='tasks__board__item__info'>
<div className='tasks__board__item__info__more'>
<img src={commentsBoard} alt='commentsImg' />
<span>{task.comments} коментариев</span>
</div>
<div className='tasks__board__item__info__more'>
<img src={filesBoard} alt='filesImg' />
<span>{task.files} файлов</span>
</div>
<div className='tasks__board__item__info__avatars'>
<img src={task.avatarCreated} alt='avatar' />
<img src={task.avatarDo} alt='avatar' />
</div>
</div>
</div>
})
}
{section.tasks.length >= 3 &&
<span className='moreItems'>+</span>
}
</div>
})
}
</div>
</div>
2023-03-03 18:49:02 +03:00
</div>
</div>
</div>
</div>
<Footer/>
2023-02-17 15:19:49 +03:00
</div>
)
};