Изучение @prisma-cms на базе API modxclub.ru. Топик 1: вывод пользователей с заведенными кошельками и баланса.

В рамках изучения @prisma-cms и шире (React, GrahQL, Apollo client и прочее) выполняю небольшие задачки. Что-то получается (но возможно можно сделать как-то лучше), что-то не очень. Думаю, что обсуждение таких задачек будет полезно не только мне.

Задача: подготовить модуль для вывода пользователей сайта modxclub.ru с открытыми кошельками и текущего баланса. Данные пользователей: имя и аватар.

Базовый модуль: https://github.com/Fi1osof/test-prisma-users. Здесь уже сформирован gql запрос и вывод id пользователей. Подключение к API отсюда: https://modxclub.ru/topics/razvorachivaem-u-sebya-kopiyu-modx-kluba.html

Внесены изменения в вывод данных:

  return (
      <div>

        {objects.map(n => {

          const {
            id,
            username,             
            EthAccounts
          } = n;

          const {
            balance,
          } = EthAccounts || {}
          
           //console.log("EthAccounts", EthAccounts);        
          

          return <div
              key={id}
            >            
                   
              
                {
                    EthAccounts.map(eth => {

                    const {
                      id:eth_id,
                      type,
                      balance,
                    } = eth;

                    console.log("Eth", eth); 

                    return <div
                      key={eth_id}
                      style={{
                        borderBottom: "1x solid",
                      }}
                    > 
                      Пользователь: {username} <br/>
                      Баланс: {balance}
                    </div>
                    

                  })
                }          
           
           </div>
        })}
      </div>
    );

Есть подозрение, что вместо второй обработки массива есть более правильный вариант.

С аватаркой возник вопрос. https://modxclub.ru/images/resized/thumb/9c2bd2946018db2f057ec646aac3f04f.jpeg Данных не хватает, нужно добыть название файла. Для этого добавил в gql запрос и в переменные поле image, что дало возможность сформировать ссыль на картинку.

<img src={"https://modxclub.ru/images/resized/thumb/" + image}/><br/>
Пользователь: {username} <br/>
Баланс: {balance}<br/><br/>

Хорошо бы добавить еще проверку на наличие картинки и вывод картинки-заглушки при отсутствии картинки.

Comments

Дима, а ты свои изменения куда-то вылил? Где можно увидеть твой вариант полностью?

Таки гит в том числе для такого и придуман. Если ты делаешь на моем примере, то надо было:

  1. Сделать себе клон моего проекта. Проще всего это делать прям на гитхабе, кликнув кнопку Fork.
  2. Сливаешь клон себе на локал, выполняешь свои работы, коммитишь и выливаешь изменения в свой проект.

Profit.

В таком случае я смогу легко посмотреть что именно ты там сделал, слить к себе и запустить, посмотреть как это работает, и тогда уже дать комментарии по существу.

Надо будет перепроверить логику кеширования данных по редактируемым комментам. Судя по всему начинаешь писать коммент в одном топике, потом, не дописав его, переходишь в другой топик и там его дописываешь и публикуешь. Но у него уже закешировано Parent... Надо поправить.

Странно: здесь вроде не начинал ничего писать. И из топика про оптимизацию сюда не переходил.