scrimba
Imba Changelog
Imba Changelog - Predicate, Bang, and Renderless Tags
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Imba Changelog - Predicate, Bang, and Renderless Tags
AboutCommentsNotes
Imba Changelog - Predicate, Bang, and Renderless Tags
Expand for more info
index.imba2
run
preview
console
var input = {
amount: 0
desc: ""
}

import './app-header'
import './transaction'

tag bank-app
@balance = 0
@transactions = []
@user = {login: 'johndoe'}
@state = {}
@editing = no

def deposit
@balance += input.amount
@transactions.push({
type: 'deposit'
amount: input.amount
desc: input.desc
})

def withdraw
@balance -= input.amount
@transactions.push({
type: 'withdrawal'
amount: -input.amount
desc: input.desc
})

def render
<self.grid>
<app-header>
<h1> "Balance: {@balance}"
<div.vbox>
<input[input.amount] type='number'>
<input[input.desc] type='text'>
<button :click.deposit> "Deposit"
<button :click.withdraw> "Withdraw"
<label>
<input[@editing] type='checkbox'>
"Edit list?"
<div.transactions> for transaction in @transactions
<bank-transaction data=transaction>

### css scoped

bank-transaction {
display: block;
}

button {
margin: 5px;
width: auto;
}
input {
width: 40px;
}

.grid {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
width: 80%;
margin: 0 auto;
}
.vbox {
display: flex;
flex-direction: row;
}
###
Console
/index.html
-17:58