forked from gothinkster/realworld-starter-kit
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
realworld.view.ts
64 lines (50 loc) · 1.34 KB
/
realworld.view.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
namespace $.$$ {
export class $hyoo_realworld extends $.$hyoo_realworld {
article_current() {
return this.Article( this.article()?.slug ?? '' )
}
feed_current() {
return this.Feed( this.tag() )
}
edit_current() {
return this.Article_edit( this.article()?.slug ?? '' )
}
@ $mol_mem
article() {
const slug = this.$.$mol_state_arg.value( 'article' )
if( !slug ) return null
return this.$.$hyoo_realworld_article.item( slug )
}
@ $mol_mem
edit() {
return this.$.$mol_state_arg.value( 'edit' ) !== null
}
@ $mol_mem
tag() {
return this.$.$mol_state_arg.value( 'tag' ) || ''
}
signed() {
return this.$.$hyoo_realworld_sign.signed()
}
@ $mol_mem
section( next? : string | undefined ) {
return this.$.$mol_state_arg.value( 'section' , next ) ?? ''
}
person( next? : string | undefined ) {
return this.$.$mol_state_arg.value( 'person' , next ) ?? ''
}
@ $mol_mem
pages() {
return [
this.Home() ,
this.section() ? this.sections()[ this.section()! as never ] : this.sections().articles ,
this.tag() ? this.feed_current() : null,
this.article() ? this.article_current() : null,
this.edit() ? (
this.signed() ? this.edit_current() : this.sections().sign_in
) : null,
this.person() ? this.Person() : null ,
].filter( $mol_guard_defined )
}
}
}