Fork me on GitHub
#clojure-russia
<
2015-10-26
>
abtv10:10:01

Коллеги, кто-нибудь тут использует Reagent? нужен компонент типа textarea, только с автонастройкой высоты компонента, типа https://github.com/andreypopp/react-textarea-autosize .

abtv10:10:56

Проблема в том, что при каждом обновлении value текущая позиция курсора смещается в конец textarea. При этом тот же самый компонент из native js кода работает как часы. Кто-нибудь с таким сталкивался? Или, может, есть какие-то идеи, что это может быть?

abtv10:10:01

(def text-area-auto-size (adapt-react-class js/TextareaAutosize))

abtv10:10:30

кстати, а должен вызваться component-will-receive-props? у меня в cljs не вызывается, а вот в native js вызывается.

prepor12:10:37

@spariev: приветик!

spariev12:10:07

@prepor: привет!

shinych13:10:53

@abtv: тут не смотрел? https://github.com/Day8/re-com там вроде тоже умный textarea

abtv13:10:06

@shinych: не, не видел, сейчас посмотрю, спасибо

niquola15:10:20

Еще раз напоминаю про встречу сегодня - приходите - http://webmeetups.net/meetups/81

artofshine16:10:18

А есть какие-то правила хорошего тона относительно того писать реструктуризацию в аргументах функции или использовать для этого let в рамках функции?

artofshine16:10:22

реструктуризацию/деструктуризацию

prepor17:10:16

если я делаю в аргументах, то обычно всегда ставлю :as

prepor17:10:57

@artofshine: как правило это делает читаемее ожидаемые аргументы. но это имхо

razum2um17:10:33

все что нужно от любого агрумента не глубже 1 уровня - деструкшн, глубже не читается имхо

niquola17:10:09

А я часто делаю на второй, правда обычно не больше трёх-четырех значений выковыриваю

artofshine17:10:32

(defn func1 [& {:keys [first last]}]
  (format "Func1. First: %s, Last: %s"  first last))

(defn func2 [& rest]
  (let [{:keys [first last]} rest]
    (format "Func2. First: %s, Last: %s"  first last)))

(func1 :first "Ivan" :last "Petrov")
(func2 :first "Ivan" :last "Petrov")

artofshine17:10:49

В основной библиотеке вроде повсюду используется вариант func2

niquola17:10:11

Я keys не люблю, даю одно-двух буквенные байндинги и стараюсь функции держать не больше 5-10 строчек.

niquola17:10:31

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

niquola17:10:49

Communicate intention

razum2um17:10:03

мне тоже первый больше нравится - 1) без потери читабельности меньше строк 2) название переменной rest как бэ не говорит о семантике => имхо бесполезно, да еще и дважды

niquola18:10:46

Часовая готовность