Если я правильно понял: 1. Есть файл yarn generate

Jan 20, 2021

Если я правильно понял:

  1. Есть файл yarn generate:types, который хранит в себе все модели и парметры всех запросов с типами.
  2. Этот же файл yarn generate:types, ходит по проекту и собирает все GraphQL-запросы и компилирует их в Аполло-запросы.
  3. Запрсы для GraphQL должны быть написаны специальным способом ...task_, чтобы можно было в них вставлять другие фрагменты. Для того, чтобы подцепить фрагмент он выносится в отдельный файл. Получается вроде базового запроса для которого мы формируем отдельные фрагменты в разных файлах и можем к нему подключить любой фрагмент или поменять.
  • Здесь вопрос: вставил этот запрос:
query task($where: TaskWhereUniqueInput!, $timersWhere: TimerWhereInput) {
  object: task(where: $where) {
    ...task_
    Timers(orderBy: createdAt_DESC, where: $timersWhere) {
      ...timersConnectionTimer
    }
  }
}

в https://api.prisma-cms.com/, но он выдал что-то непонятное?

  1. В итоге выполнение этого скрипта yarn generate:types, у нас появляются готовые аполо-функции.
  • Здесь вопрос: несовсем понятно, как они появляются и где они появляются. Они появляются в конкретных файлах сами и как ты контролируешь появление такого большого количества функций судя по самому файлу? И собственно, как этот файл понимает куда что пихать, а если ты в процессе работы решил новый запрос создать, его нужно перезапустить после создания запроса?
  1. После чего делаем вызов запрсоа в функциональном компоненте. Здесь вопрос:
const response = useTaskQuery({   
 variables,    
onError: console.error, })

Зачем здесь еще переменная variables и что такое onError: console.error откудо оно тянется?

  1. В итоге мы делаем вывод в нуждном месте. Здесь вопрос:
 <Grid item>    
{CreatedBy ? (   
 <UserLink user={CreatedBy} withAvatar={false} />   
 ) : null}        
{createdAt ? (    
<Typography variant="caption" color="textSecondary">    
{moment(createdAt).format('lll')}    </Typography>    
) : null}   
 </Grid>

Зачем столько гридов мы ими регулируем в каком месте выводить? CreatedBy & createdAt в чем отличие зачем они нужны?

  1. Создание task.startDate, как объект. Если правильно понимаю у объекта должен быть ключ и значение. По твоему из топика примеру не совсем понятно, как именно он дату выводит больше всего непонятно, как в данном случае вывод обращается к функции из 5 пункта {task.name}, {task.status} , или этот вывод:
{createdAt ? ( 
<Typography variant="caption" color="textSecondary"> 
{moment(createdAt).format('lll')} 
</Typography> 
) : null}

Здесь я так понимаю он вообще к другой функции обращается, так как это из другой оперы.

И какую страницу редактировать в итоге вьюху правильно https://github.com/freecode-academy/freecode.academy/blob/b94b55a4a8fc0a75b2a45eea7a0cf03fc324af25/src/pages/Tasks/Task/View/index.tsx ?