Получилось избавиться от bootstrap3 и jQuery, и кучи легаси-стилей.

Пока что коордитаты лежат в таблице TV-параметров в виде обычной строки с разделителем-запятой, поэтому разбить ее и выполнить математические операции над ними видимо можно только через написание пользовательской функции для mysql. Это оверхед. Пока что прописал сортировку уже над полученными данными на стороне JS. https://github.com/gorodskie-bani-ru/nextjs/blob/fc743d60f2f36d99210a639114b91c62a1921ec1/server/nexus/types/Query/definitions/Resource/Company.ts#L308-L344

Если в реакте HTML-элемент рендерить с атрибутом contentEditable (то есть в режиме реактирования содержимого прям в браузере), реакт никак не контролирует его содержимое и никак не реагирует на изменения в нем. Тем не менее, когда мы выходим из состояния contentEditable, реакт пытается актуализировать DOM этой ноды, и если мы вручную там удалили какой-либо элемент, который был отрисован реактом, и реакты пытается его найти чтобы удалить, если он его не находит, он выкидывает критическую ошибку Failed to execute 'removeChild' on 'Node'. Избежать такой ситуации можно, задав такому компоненту атрибут key. Пример:

Досадная ошибка. Явно проблема перевода. Поставил задачку.

На первый взгляд незаметная опечатка в примере решения задания которая вводит в заблуждение: box-shadow: 0 10px 20px rgba (0,0,0,0,19), 0 6px 6px rgba (0,0,0,0,23); для успешного решения, должно быть: box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);

Да, формулировка размытая. Но выполнил.

Не ясно сформулированое задание. Выполняется при использовании background: var(--penguin-skin);

2+ часа потрачены впустую... Судя по всему просто возникли коллизии в dist, так как Resource.ts был перемещен в Resource/index.ts, а dist не очищалась перед билдом. В итоге в ней были и Resource.ts и Resource/index.ts

Вот это был подводный камень... При плановой оценке в часик, было потрачено более 6 часов с усердными изысканиями. Задача стояла в формировании выборки средних рейтингов по компаниями и типам оценок. Призма хоть и умеет уже в группировку, но весьма ограничено и с сортировкой в таких случаях все очень плохо. Вот такой запрос был на призме: Но проблема в первую очередь в том, что сортировка в призме в groupBy возможна только по полям, указанным в by (то есть по которым группируется), но не по значениям avg и т.п. (а надо-то именно по ним, чтобы от больших оценок к меньшим отсортировать). Вторая проблема в том, что к такой конструкции призма не позволяет добавить select(), то есть выборку дополнительных полей. В моем случае надо было сразу получить и данные компаний, чтобы не делать потом кучу запросов на получение данных компаний для каждого результата в отдельности. Сначала быстро накидал чистый SQL-запрос, но там нет типизации нифига, то есть результат просто как any. А хотелось, чтобы с проверкой типов и т.п. В итоге подключил knex. Тот тоже уже немного в ТС умеет, но все же во многом путается. Пришлось конструировать 3-хуровневую конструкцию, чтобы с типами было боле менее ОК. Конечно не идеально, но в целом весьма удовлетворительно получилось. Вот такой запрос получился: https://github.com/gorodskie-bani-ru/nextjs/blob/078e051afeafc76e19c804a88ba3da284972952e/server/nexus/types/Query/definitions/society/Vote/index.ts#L80-L195 На выходе вот такой SQL: Кстати, вот здесь можно поиграться с knex: https://dgadelha.github.io/knex-playground/

Только в этом топике по существу скорее всего не будет ничего написано. Надо смотреть конечные задачи. Их там две, но они объемные и обсуждения много. Особенно полезна первая задача и видосик в ней..