Closed noxt closed 7 years ago
@noxt привет!
Расскажи, это так задумано, что если добавлять два действия одного типа, то выполняется только последний?
Каждый action сейчас хранится по ключу от имени действия, поэтому каждый новый action просто перезаписывает предыдущий по этому же ключу.
Это хорошая идея. Мы тоже замечали, что такой функционал неплохо бы иметь, но тут есть несколько концептуальных вопросов:
1) Должно ли несколько одинаковых действий описываться разными объектами TableRowAction<StringTableViewCell>(.click)
?
2) Или это должен быть один объект TableRowAction
но с методами вроде addHandler
. Это может быть логичным, у меня один .click и несколько handlers к нему...
Также, что делать в случае, если я хочу удалить одно из действий. И нужно ли вообще давать возможность удалить действие.
В случае с первым подходом - удаление можно было бы сделать назначив TableRowAction
какой-то id и добавить для Row
метод removeActionForId
. Со вторым подходом не так просто... addHandlerForKey
Функция полезная, но видение реализации еще не устоялось.
UPD: Если я хочу удалить одно из действий в случае первого подхода я должен пройтись по всем Row. В случае второго я просто удаляю один handler на TableRowAction.
@noxt версия 2.1 теперь поддерживает несколько действий одного типа. Обновил доку.
@maxsokolov Привет! Спасибо за либу)
Расскажи, это так задумано, что если добавлять два действия одного типа, то выполняется только последний?
Мы просто написали экстеншн к
TableRowAction
с дефолтными методами по кастомизации и вызываем это таким образом:TableRow<TaskClientInfoCell>(item: task, actions: [.hideSeparatorAction(), .disableSelectionAction()])
но, как я уже описал выше, выполняется только последний экшн.Я сейчас в форке сделаю поддержку нескольких экшенов одного типа, нужно потом PR делать или вам такое не надо?