
Rafael
16.07.2017
08:17:05
действительно редьюс только

Yaroslav
16.07.2017
08:37:00

Rafael
16.07.2017
08:40:40

Google

Rafael
16.07.2017
08:40:48
не koa-compose?

Den
16.07.2017
08:46:47
У меня только один вопрос - зачем?
Ну смотри. У меня есть большой метод и он выполняет много последовательных действий. И еще есть другой - поменьше, но тоже, своего рода пайп.
Так вот часть действий у них повторяются. Я хочу вынести то, что повторяется в отдельные классы (не функции, а именно классы, чтоб через new работали). Эти классы и будут командами и основное действие будет прописано в handle методе такого класса
Мне нужен диспетчер этого

Victor
16.07.2017
08:58:29
тебе последовательно их выполнить надо?
await handle1();
await handle2();
тогда
ну сами методы надо писать конечно с учетом того чтоб они вернули промис)

Игорь
16.07.2017
09:29:11
Ребят, соре за оффтоп. С помощью NodeJs обрабатывал эксель файлики? Если да, то подкиньте нормальный модуль

Den
16.07.2017
09:30:23
https://www.npmjs.com/package/node-xlsx пробовал?
Интересно, может он картинку вставить в XLS?

Игорь
16.07.2017
09:32:18
Я глянул быстренько и он не может красить ячейки в нужные мне цвета :с
Во, вот годнота, походу
https://www.npmjs.com/package/xlsx-populate

Den
16.07.2017
09:40:15
годнота - это положительная коннотация? @IgoreshaGeser

Valery
16.07.2017
09:40:37
кто знаком с vuetifyjs?

Google

Игорь
16.07.2017
09:40:52
Конечно)
годнота - это положительная коннотация? @IgoreshaGeser

Den
16.07.2017
09:41:33

Valery
16.07.2017
09:42:37

Den
16.07.2017
09:42:49
Конечно)
Ну надо же. Я всегда был уверен, что это, когда толпа гандонов собирается...

Rafael
16.07.2017
09:45:18

Valery
16.07.2017
09:48:11
а я хорош
v-btn-toggle does not have a disabled prop - ответ на мой вопрос )
как-то нелогично тогда? верно?

Den
16.07.2017
09:50:14

Valery
16.07.2017
09:50:31
v-radio, v-checkbox - имеют
v-btn-toggle - по сути тотже v-radio - не имеют

Rafael
16.07.2017
09:51:20
впрочем и так понятно почему:
https://github.com/vuetifyjs/vuetify/blob/dev/src/components/buttons/ButtonToggle.vue
по сорсам видно, что это левый чувак сделалвыглядит как затычка, можно прееписать и отправить pr
а нет, они же и делали, правда охреневаю с их истории коммитов
они же в 0.13 наоборот темы добавляют
карочи, такое надо переписывать

Den
16.07.2017
10:00:00

Denis
16.07.2017
10:00:13
iview
https://www.iviewui.com/

Google

Den
16.07.2017
10:06:40
Жрет только много
http://volna-media.com/
Я делал похожее

Rafael
16.07.2017
10:09:53
Так что все впереди
И это очень хорошо

stepan
16.07.2017
10:37:14
iview не умеет ренедрить кастомные элементы в cell таблички ) или я что-то делаю не так.
+ пока не вышло заставить <Modal><my-component #print></<Modal> при @media print #print: visible подсасывать класс my-component

V
16.07.2017
10:39:59
Всем Привет!

Rafael
16.07.2017
10:48:06

Stepan
16.07.2017
10:55:33
дочитал доку по Vue перестал безпокоится и полюбил фронтенд ))))

Denis
16.07.2017
11:04:51
1

Stanislav
16.07.2017
11:05:00
Если ты обычно делаешь git merge, то первый вариант, если вместо него ты используешь git rebase - то третий вариант, ну а если бы ты делал git rebase -i то может выбрал бы второй пункт

Denis
16.07.2017
11:05:28
Лучше всегда 1

Den
16.07.2017
11:05:49
Но +++
Я вообще эту менюху не открывал )))

Aleksandr
16.07.2017
11:08:40
Что дает флажок -i в гите, никогда его не использывал

stepan
16.07.2017
11:11:58
по iview пример где не сработает: https://www.webpackbin.com/bins/-Kp9zXGt07aYk-D8sWId
а если обьявить компонент глобально то все ок.

Den
16.07.2017
11:15:08

Google

Den
16.07.2017
11:21:15
Также там не работают однотеговые
Вообще - это, безусловно плюс для новичков, что теперь компоненты можно писать большими. Лично я против этого и никогда так не пишу!
Это не нативная функция HTML и может рано или поздно вызвать баги - как вот щас в песочнице.

Admin
ERROR: S client not available

stepan
16.07.2017
11:25:55
есть поправленная?

Den
16.07.2017
11:27:00
<my-component-name>
всегда ставлю внутри
name: 'MyComponentName'
а файл называется
MyComponentName.vue
Для меня это - правило!

stepan
16.07.2017
11:29:53
Я думал ты проверил и у тебя работает. Суть такая - запихать в ячейку свой компонент. Копмоненты iview там работают. А свои - только объявленные через Vue.component()
нормально оформленный пример https://www.webpackbin.com/bins/-Kp9zXGt07aYk-D8sWId

Den
16.07.2017
11:30:58

stepan
16.07.2017
11:31:08
)
ламповый чатик, говорили они )))

Den
16.07.2017
11:31:46
Линтер вруби

Alex
16.07.2017
11:32:29

Den
16.07.2017
11:33:03
)
return h('Button', 'sdsd')
+
Мож вам печатное издание сделать?

Alex
16.07.2017
11:34:11
Да вы так просто деньги заносите, зачем деревья переводить
?

Google

stepan
16.07.2017
11:34:49
return h('Button', 'sdsd')
если не сложно, то можно подробнее что значит этот комментарий? Button - это компонент самого iview они там у них все с большой буквы.

Den
16.07.2017
11:35:09
Button с большой


Леха
16.07.2017
11:35:31
Отцы! Ай нид хелп!
Как мне тестировать пропсы?
Вот набросал такое и последний тест не проходит:
/* eslint-disable */
import Vue from 'vue'
import CoolModal from 'components/ui/CoolModal'
const vm = new Vue({
template: `<div>
<CoolModal :disabled="disabled" v-if="show" @ok="isOK = true" @cancel="isCancel = true">
<h3 slot="header">Header text</h3>
<div>
Body text
</div>
<p slot="footer">Footer text</p>
</CoolModal>
</div>`,
data () {
return {
show: false,
disabled: false,
isOK: false,
isCancel: false,
nameOkButton: 'OK'
}
},
components: {
CoolModal
}
}).$mount()
const $element = selector => vm.$el.querySelector(selector)
vm.show = true
/* @test {CoolModal test} */
describe('CoolModal', () => {
/* @test {CoolModal header} */
it('Header text is correct', () => {
expect($element('.modal-header').textContent.trim()).toBe('Header text')
})
/* @test {CoolModal body} */
it('Body text is correct', () => {
expect($element('.modal-body').textContent.trim()).toBe('Body text')
})
/* @test {CoolModal footer} */
it('Footer message is correct', () => {
expect($element('.modal-footer').textContent.trim()).toBe('Footer text')
})
/* @test {CoolModal OK button click} */
it('OK button click is work', () => {
const oldIsOK = vm.isOK
$element('.modal-button--ok').click()
expect(vm.isOK).not.toBe(oldIsOK)
expect(vm.isOK).toBe(true)
})
/* @test {CoolModal Cancel button click} */
it('Cancel button click is work', () => {
const oldIsCancel = vm.isCancel
$element('.modal-button--cancel').click()
expect(vm.isCancel).not.toBe(oldIsCancel)
expect(vm.isCancel).toBe(true)
})
/* @test {CoolModal nameOkButton prop} */
it('nameOkButton prop change is correct', () => {
const oldText = $element('.modal-button--ok').textContent.trim()
vm.nameOkButton = 'OK Text'
expect($element('.modal-button--ok').textContent.trim()).toBe('OK Text')
})
})


Stanislav
16.07.2017
11:35:43


Den
16.07.2017
11:35:54
Отцы! Ай нид хелп!
Как мне тестировать пропсы?
Вот набросал такое и последний тест не проходит:
/* eslint-disable */
import Vue from 'vue'
import CoolModal from 'components/ui/CoolModal'
const vm = new Vue({
template: `<div>
<CoolModal :disabled="disabled" v-if="show" @ok="isOK = true" @cancel="isCancel = true">
<h3 slot="header">Header text</h3>
<div>
Body text
</div>
<p slot="footer">Footer text</p>
</CoolModal>
</div>`,
data () {
return {
show: false,
disabled: false,
isOK: false,
isCancel: false,
nameOkButton: 'OK'
}
},
components: {
CoolModal
}
}).$mount()
const $element = selector => vm.$el.querySelector(selector)
vm.show = true
/* @test {CoolModal test} */
describe('CoolModal', () => {
/* @test {CoolModal header} */
it('Header text is correct', () => {
expect($element('.modal-header').textContent.trim()).toBe('Header text')
})
/* @test {CoolModal body} */
it('Body text is correct', () => {
expect($element('.modal-body').textContent.trim()).toBe('Body text')
})
/* @test {CoolModal footer} */
it('Footer message is correct', () => {
expect($element('.modal-footer').textContent.trim()).toBe('Footer text')
})
/* @test {CoolModal OK button click} */
it('OK button click is work', () => {
const oldIsOK = vm.isOK
$element('.modal-button--ok').click()
expect(vm.isOK).not.toBe(oldIsOK)
expect(vm.isOK).toBe(true)
})
/* @test {CoolModal Cancel button click} */
it('Cancel button click is work', () => {
const oldIsCancel = vm.isCancel
$element('.modal-button--cancel').click()
expect(vm.isCancel).not.toBe(oldIsCancel)
expect(vm.isCancel).toBe(true)
})
/* @test {CoolModal nameOkButton prop} */
it('nameOkButton prop change is correct', () => {
const oldText = $element('.modal-button--ok').textContent.trim()
vm.nameOkButton = 'OK Text'
expect($element('.modal-button--ok').textContent.trim()).toBe('OK Text')
})
})
Песочница для этого есть


Stanislav
16.07.2017
11:35:54
Продолжение в интернете

Den
16.07.2017
11:36:07

stepan
16.07.2017
11:36:18
@Piterden С большой. Он работает, потому что это компонент самого iview как и Table.

Stanislav
16.07.2017
11:36:28
)

Den
16.07.2017
11:36:32

Леха
16.07.2017
11:37:14

Alex
16.07.2017
11:37:21
@BigTRex в компонент пробрасываете пропсы, а внутри компонента propsы не принимаете, а data объявляете


Леха
16.07.2017
11:38:07
Внутри принимаю. Компонент отлично работает в приложении, но тестов нет. Вот решился написать и залип.
Вот так сократил
import Vue from 'vue'
import CoolModal from 'components/ui/CoolModal'
const vm = new Vue({
template: `<div>
<CoolModal :disabled="disabled" :nameOkButton="nameOkButton" v-if="show" @ok="isOK = true" @cancel="isCancel = true">
<h3 slot="header">Header text</h3>
<div>Body text</div>
<p slot="footer">Footer text</p>
</CoolModal>
</div>`,
data () {
return {
show: false,
disabled: false,
isOK: false,
isCancel: false,
nameOkButton: 'OK'
}
},
components: {
CoolModal
}
}).$mount()
const $element = selector => vm.$el.querySelector(selector)
vm.show = true
describe('CoolModal', () => {
it('nameOkButton prop change is correct', () => {
const oldText = $element('.modal-button--ok').textContent.trim()
vm.nameOkButton = 'OK Text'
expect($element('.modal-button--ok').textContent.trim()).toBe('OK Text')
})
})