Size: a a a

2021 May 24

MM

Maksim Mazhnikov in Ember_js
Кто-нибудь сталкивался с ошибкой в VSCode?
expect `filePath` to be a string, got `undefined` glimmer-engine
источник

AK

Alex Kanunnikov in Ember_js
Glint стоит?
источник

MM

Maksim Mazhnikov in Ember_js
в vscode? нет
источник

AK

Alex Kanunnikov in Ember_js
Аа, эт какое-то правило ember-template-lint падает
источник

AK

Alex Kanunnikov in Ember_js
Есть какие-то кастомные правила?
источник

AK

Alex Kanunnikov in Ember_js
источник

MM

Maksim Mazhnikov in Ember_js
'use strict';

module.exports = {
 plugins: ['ember-template-lint-plugin-prettier'],
 extends: ['octane', 'ember-template-lint-plugin-prettier:recommended'],
 rules: {
   'no-action': false,
   'simple-unless': { maxHelpers: 1 },
 },
};
источник

MM

Maksim Mazhnikov in Ember_js
оставил только extends: ['octane'], ошибка пропала.
Буду копать дальше. Спасибо за наводку
источник

AK

Alex Kanunnikov in Ember_js
Там есть пара правил, которые криво написаны
источник

AK

Alex Kanunnikov in Ember_js
Они падают в VSCode
источник

MM

Maksim Mazhnikov in Ember_js
источник

MM

Maksim Mazhnikov in Ember_js
потому что ошибка появляется только из-за prettier конфига
https://github.com/ember-template-lint/ember-template-lint-plugin-prettier/blob/master/lib/config/recommended.js#L4
источник

AK

Alex Kanunnikov in Ember_js
источник
2021 May 25

l(

lolmaus (Andrey Mikh... in Ember_js
Shadow DOM — это грустно.

Сам по себе Ember в нем работает без вопросов, но всякие аддоны используют document и в Shadow DOM ломаются.
источник

l(

lolmaus (Andrey Mikh... in Ember_js
Вот, к примеру, аддон ember-power-select (точнее, его зависимость ember-basic-dropdown`) определяет клик вне дропдауна следующим образом: он навешивает на `document событие click, и проверяет, находится ли event.target клика внутри дропдауна. Если нет, значит, клик был сделан снаружи дропдауна, и дропдаун надо закрыть.

Логично?
источник

l(

lolmaus (Andrey Mikh... in Ember_js
Но если дропдаун находится внутри Shadow DOM, и вы кликаете по ЗАКРЫТОМУ дропдауну, чтобы раскрыть его, то событие клика по document срабатывает, и его event.target будет указывать не на кликнутый элемент, а на корневой элемент Shadow DOM <my-app>.

И логика ember-basic-dropdown считает, что это клик все дропдауна, и закрывает его сразу после открытия.
источник

l(

lolmaus (Andrey Mikh... in Ember_js
источник

AK

Alex Kanunnikov in Ember_js
вроде как какие-то спеки были про прокидывание событий внутрь шадовдома
источник

AK

Alex Kanunnikov in Ember_js
а вообще - отличная тема для доклада)
источник

l(

lolmaus (Andrey Mikh... in Ember_js
Нашел легкий фикс:

Вместо event.target использовать event.path[0]. Поддержка есть во всех браузерах кроме IE.
источник