В списке задач выводить кнопки запуска таймеров для неавторизованных пользователей
Завершена
Проект: freecode.academy
Планируемый запуск: | 22.01.2021 | Дата начала: | Планируемое завершение: | 23.01.2021 | Дата завершения: |
Описание задачи
Пользователь должен видеть, что есть такая функция. При клике он получит сообщение "Необходимо авторизоваться".
- ТехнологияТребуемый уровень
Проект | Задача | Статус | Дата постановки | Начало | Конец | Кто создал |
---|---|---|---|---|---|---|
freecode.academy | В списке задач выводить кнопки запуска таймеров для неавторизованных пользователей | Завершена | 18.01.2021 14:16:16 | 16.02.2021 17:53:36 | 16.02.2021 17:57:22 | |
freecode.academy | В списке задач выводить кнопки запуска таймеров для неавторизованных пользователей | Завершена | 18.01.2021 14:16:16 | 23.01.2021 17:40:35 | 23.01.2021 17:40:49 | |
freecode.academy | В списке задач выводить кнопки запуска таймеров для неавторизованных пользователей | Завершена | 18.01.2021 14:16:16 | 22.01.2021 18:48:09 | 22.01.2021 19:22:38 |
Олег, как видишь, задача просто решалась. Сейчас-то, после того, как ты подосвоил TS, более понятно?
Ну как тебе сказать с одной стороны теперь понимаю примерно, что ты делаешь, но сам, думаю пока такую логику не потянул.
Во-первых я так понимаю useUpdateTimerProcessorMutation() - это кастомный хук, как создовать кастомные хуки пока не изучал, но примерно понятно.
Во-вторых не совсем еще разобрался с деструктуризацией у тебя там ее тоже хватает и с приниципами написания сложных функций пока плаваю.
Короче думаю без пошагового объяснения не справился, но с виду выглядит не очень сложно конечно.
Так а что там понимать? Там почти все изменения, что видны в коммите - это просто сдвиг табов, потому что выдернуто из логики if (currentUser)
Просто раньше кнопка не выводилась, потому что вся логика ее отображения была обернута в if (currentUser). Нет пользователя (currentUser) - нет никакого вывода вообще.
Сейчас я убрал обертку по этому условию (то есть какая-то кнопка из двух в любом случае отображается), но логика теперь такая:
Получаем активную задачу пользователя если "пользователь есть и его id совпадает с id пользователя задачи".
Если активная задача была получена if (activeTimer), то выводим кнопку стоп.
Иначе (во всех иных случаях) выводим кнопку старт.
Очевидно, что если нет пользователя, то активную задачу мы не можем решить, а значит кнопка Старт будет выводиться. Логика совсем не сложная. Если ты ее для себя как-то усложнил, поработай над своим восприятием.
>> Во-первых я так понимаю useUpdateTimerProcessorMutation()
Это генерируемые хуки для GraphQL-запросов, но они, в рамках текущей задачи, тебя вообще не решались. Там только и надо было что поменять условие рендеринга, все, больше ничего не надо было трогать.
Очевидно, что если нет пользователя, то активную задачу мы не можем решить, а значит кнопка Старт будет выводиться. Логика совсем не сложная. Если ты ее для себя как-то усложнил, поработай над своим восприятием.
> С этим надо работь согласен, потому-что ты вот пишешь, что я все усложнил так и есть. Я зашел смотрю, ты хук кастомный создаешь, а я с таким не встречался, а дальше уже все воспринимается, как не очень понятная история.
Вот имеет смысл тебе открыть полностью файл и попытаться разобраться что именно тебе не понятно, то есть какие сущности не ясны вообще.
Что здесь не ясно?
Вот здесь наверняка тебе все ясно. Но ты испугался чего-то увиденного за пределами поставленной задачи вообще. И все: "Я того не понимаю, поэтому и тут не понимаю".
Здесь согласен все понятно, хороший урок на будущее, теперь буду отталкиваться от того, что понятно:)
>> теперь буду отталкиваться от того, что понятно:)
Ты правильный вывод сделал. И на самом деле только так и можем. Нас учат простому, чтобы потом можно было с этими знаниями понять что-то более сложное, но не наоборот.