Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | import { FC } from 'react'
import { useSetAtom } from 'jotai'
import { Button } from '@tmk/ui-kit'
import { Task, taskFormModalConfigAtom, TaskFormMode, useTaskActions, useTaskActionPermissions } from '@/entities/task'
import { useTranslate } from '@/shared/lib'
import TrashIcon from '@/shared/assets/icons/common/TrashIcon.svg'
import EditIcon from '@/shared/assets/icons/common/edit.svg'
export interface TaskButtonsProps {
task: Task
isViewerManager: boolean
}
export const TaskButtons: FC<TaskButtonsProps> = ({ task, isViewerManager }) => {
const { t } = useTranslate(['accounting-object'])
const setTaskFormModalConfig = useSetAtom(taskFormModalConfigAtom)
const { isStartBtn, isCompleteBtn, isEditBtn, isDeleteBtn } = useTaskActionPermissions(task)
const { isStartingTask, isCompletingTask, isDeletingTask, startTask, completeTask, deleteTask } = useTaskActions()
const onOpenEditTaskModal = () => {
setTaskFormModalConfig({ isOpen: true, taskId: task.id, formMode: TaskFormMode.EDIT, isViewerManager })
}
return (
<div className='flex items-center'>
{isStartBtn && (
<Button
className='w-32 mr-2'
loading={isStartingTask}
disabled={isStartingTask}
onClick={() => startTask({ taskId: task.id })}
>
<h3>{t('start')}</h3>
</Button>
)}
{isCompleteBtn && (
<Button
variant='outlined'
color='secondary'
className='w-32 mr-2'
loading={isCompletingTask}
disabled={isCompletingTask}
onClick={() => completeTask({ taskId: task.id })}
>
<h3>{t('complete')}</h3>
</Button>
)}
{isEditBtn && (
<Button variant='icon' className='p-2' onClick={onOpenEditTaskModal}>
<EditIcon className='fill-blue-dark' />
</Button>
)}
{isDeleteBtn && (
<Button
variant='icon'
className='p-2'
onClick={() => deleteTask({ taskId: task.id })}
disabled={isDeletingTask}
loading={isDeletingTask}
>
<TrashIcon className='fill-blue-dark' />
</Button>
)}
</div>
)
}
|