// Initialize scoped state on #app
$
(
'#app'
).
rqState
({
tasks
: [],
filter
:
'all'
,
sortMode
:
'priority'
,
addError
:
false
,
addErrorMsg
:
''
,
});
// Derived values auto-update
$
(
'#app'
)
.
rqComputed
(
'doneCount'
, () =>
tasks.
filter
(t => t.done).
length
)
.
rqComputed
(
'progress'
, () =>
Math.round
(doneCount / total *
100
)
);
// Watch any key for side effects
$
(
'#app'
)
.
rqWatch
(
'tasks'
, (next, prev) => {
renderTaskList(next);
updateProgressBar();
})
.
rqWatch
(
'filter'
,
applyFilter
);