Skip to content

Instantly share code, notes, and snippets.

View sharikovvladislav's full-sized avatar
🎯
Focusing

Sharikov Vladislav sharikovvladislav

🎯
Focusing
View GitHub Profile
@sharikovvladislav
sharikovvladislav / cloudSettings
Last active May 14, 2017 16:17
Visual Studio Code Settings Sync Gist
{"lastUpload":"2017-05-14T16:17:40.937Z","extensionVersion":"v2.7.0"}
Есть стор. Очевидно нужен ngrx/side-effects (для запросов).
При загрузке компонента список диспатчим событие на загрузку списка. Список загружается, стор обновляется.
В компоненте же слушаем обновление стора. Когда обновляется список, если не было последнего выбранного, то выбираем первый элемент.
По выбору элемента диспатчим action SELECT_GOOD. Сэтится новое значение в сторе.
Компонент с данными по товару слушает стор на предмет обновления выбранного события.
По нажатию на кнопку сохранить диспатчим событие сохранить данные.
???? Компонент списка по этому событию обновляет список. Выбирается на этот раз выбранный в предыдущий раз компонент.
__Получается нажатие на кнопку диспатчит одно событие, компонент списка его ловит и посылает своё событие? Надо разобраться.__
Предполагаю, должно быть так:
Есть компонент списка - presentational. Получает на вход список. Получает на вход ссылку на обработчик события select-же.
Есть компонент товара - presentational. Получает на вход товар. Получает на вход ссылку на обработчик нажатия на сохранить.
Есть компонент контейнер: встраивает в себя список и товар. Как раз этот компонент несёт в себе логику списка + страницы товара.
Контейнер по инициализации посылает событие на получение списка товаров. Слушает изменение списка тоже он. По изменению обновляет пропс в компоненте списка.
Он же по изменению в сторе выбранного товара обновляет пропс в товаре.
Он же прокидывает в пропсы компонентов обработчики сохранения и выбора элемента.
При инициаилзации компонента контейнера делается emit события о получении списка
Компонент слушает в сторе список товаров. По изменению списка обновляет переменную, которая передаётся в props списка.
Стор по получению события о получении (событие кидает effect) товаров сэтит свойство списка.
Effect же кидается событием о выборе первой записи.
Стор при получении событии об установке первой записи смотрит есть ли уже выбранная запись. Если есть, то проверяет есть ли в текущем списке эта запись. Если есть, ничего не делает, если нет, то делает выбранной первую запись.
Есть меню “Друзья”. Там есть 2 вкладки. Список друзей и приглашения. На вкладке приглашения отображаются входящие приглашения. На вкладке друзья список друзей. Друга можно удалить. Можно посмотреть дневник друга в режиме READONLY.
Дополнительно: можно ставить лайки друзьям и тп : прикрутить emoji.
Добавление друзей: на вкладке друзья есть кнопка “Добавить в друзья”. Вводим email друга, приглашаем. У друга при этом приглашение появляется на вкладке приглашения.
Информация о статусе: где-то всегда на виду должны отображаться кол-во приглашений: верхний плашка, меню (около друзей), на заголовке вкладки Приглашения
Дополнительно: новостная лента.
console.log possible-combo-detector.js:35
590245
console.log possible-combo-detector.js:48
riverValue { handType: 5, handRank: 2, value: 20482, handName: 'straight' } [ '3H', '4H', '5H', '6D', 'KD', '2D', '2C' ]
console.log possible-combo-detector.js:48
riverValue { handType: 5, handRank: 2, value: 20482, handName: 'straight' } [ '3H', '4H', '5H', '6D', 'KD', '2D', '3C' ]
console.log possible-combo-detector.js:48
riverValue { handType: 5, handRank: 2, value: 20482, handName: 'straight' } [ '3H', '4H', '5H', '6D', 'KD', '2D', '4C' ]
console.log possible-combo-detector.js:48
riverValue { handType: 5, handRank: 2, value: 20482, handName: 'straight' } [ '3H', '4H', '5H', '6D', 'KD', '2D', '5C' ]
lar-ngrx-diary svlad$ ng serve
As a forewarning, we are moving the CLI npm package to "@angular/cli" with the next release,
which will only support Node 6.9 and greater. This package will be officially deprecated
shortly after.
To disable this warning use "ng set --global warnings.packageDeprecation=false".
fallbackLoader option has been deprecated - replace with "fallback"
loader option has been deprecated - replace with "use"
fallbackLoader option has been deprecated - replace with "fallback"
[WDS] App updated. Recompiling...
23:46:07.426 client?ffdb:41 [WDS] App updated. Recompiling...
23:46:08.236 client?ffdb:41 [WDS] App hot update...
23:46:08.236 log.js:23 [HMR] Checking for updates on the server...
23:46:08.778 log.js:23 [HMR] Updated modules:
23:46:08.800 log.js:23 [HMR] - ../../../../../src lazy recursive
23:46:08.801 log.js:23 [HMR] - ../../../core/@angular/core.es5.js
23:46:08.801 log.js:23 [HMR] - ../../../../../src/main.ts
23:46:08.801 log.js:23 [HMR] - ../../../compiler/@angular/compiler.es5.js
23:46:08.801 log.js:23 [HMR] - ../../../platform-browser-dynamic/@angular/platform-browser-dynamic.es5.js
> [email protected] test /Users/svlad/dev/ng2-diary-book
> jest
PASS src/app/diary/components/diary.spec.ts
FAIL src/app/diary/containers/my-dairy-page.spec.ts (7.219s)
● MyDairyPageComponent › should create
No provider for Router!
at injectionError (node_modules/@angular/core/bundles/core.umd.js:1201:90)
private getGroups(): Observable<any> {
// ....
return this.http.get(_url, options)
.map(response => {
var responseAsObject = response.json();
console.log(responseAsObject);
return responseAsObject;
})'
}