mirror of
https://github.com/hariroshan/elm-native-library.git
synced 2025-01-07 17:27:48 +03:00
39 lines
763 B
TypeScript
39 lines
763 B
TypeScript
import { Observable } from '@nativescript/core'
|
|
|
|
export class HelloWorldModel extends Observable {
|
|
private _counter: number
|
|
private _message: string
|
|
|
|
constructor() {
|
|
super()
|
|
|
|
// Initialize default values.
|
|
this._counter = 42
|
|
this.updateMessage()
|
|
}
|
|
|
|
get message(): string {
|
|
return this._message
|
|
}
|
|
|
|
set message(value: string) {
|
|
if (this._message !== value) {
|
|
this._message = value
|
|
this.notifyPropertyChange('message', value)
|
|
}
|
|
}
|
|
|
|
onTap() {
|
|
this._counter--
|
|
this.updateMessage()
|
|
}
|
|
|
|
private updateMessage() {
|
|
if (this._counter <= 0) {
|
|
this.message = 'Hoorraaay! You unlocked the NativeScript clicker achievement!'
|
|
} else {
|
|
this.message = `${this._counter} taps left`
|
|
}
|
|
}
|
|
}
|