Вот имеет смысл тебе открыть полностью файл и попытаться разобраться что именно тебе не понятно, то есть какие сущности не ясны вообще.
// Массив кнопок, который мы в процессе набиваем и возвращаем. Сейчас пустой.
const buttons: JSX.Element[] = []
// Проверяем есть ли вообзе входящий объект. Если нет, то дальнейшая логика вообще отсутствует
if (object) {
// Получаем свойства объекта
const { id: taskId, Timers } = object
// Получаем свойства из контекста (в данном случае текущего пользователя)
const { user: currentUser } = context
// Массив всех активных таймеров
const activeTimers = Timers
? Timers.filter((n) => n.stopedAt === null)
: []
// Получаем активный таймер, если текущий пользователь вообще имеется
const activeTimer =
currentUser &&
activeTimers.find((n) => n.CreatedBy?.id === currentUser.id)
// Если есть активная задача
if (activeTimer) {
const { id: timerId } = activeTimer
// То добавляем кнопку в массив возвращаемых
buttons.push(
<IconButton
key="stop"
value={timerId}
onClick={onClickUpdateTimer}
disabled={loading}
>
<StopIcon />
</IconButton>
)
}
// Иначе
else {
// Добавляем кнопку для старта задачи
buttons.push(
<IconButton
key="start"
value={taskId}
onClick={onClickCreateTimer}
disabled={loading}
>
<StartIcon />
</IconButton>
)
}
}
Что здесь не ясно?
Вот здесь наверняка тебе все ясно. Но ты испугался чего-то увиденного за пределами поставленной задачи вообще. И все: "Я того не понимаю, поэтому и тут не понимаю".