Skip to content

Instantly share code, notes, and snippets.

@zsoltk
Last active September 10, 2022 19:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zsoltk/e86b839ddb8f18eeabaf792ace1dcc62 to your computer and use it in GitHub Desktop.
Save zsoltk/e86b839ddb8f18eeabaf792ace1dcc62 to your computer and use it in GitHub Desktop.
class VoteLike<T : Any> internal constructor() : CardsOperation<T> {
// Returns a modified list of elements with new target states applied
override fun invoke(elements: CardsElements<T>): CardsElements<T> =
elements.map { element ->
if (element.targetState == Cards.State.Top) {
element.transitionTo(
newTargetState = Cards.State.VoteLike,
operation = this
)
} else {
element
}
}
}
fun <T : Any> Cards<T>.voteLike() {
accept(VoteLike())
promoteAll()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment