@@ -33,31 +33,47 @@ import { Component, getComponentElement } from "../_"
33
33
* Types
34
34
* ------------------------------------------------------------------------- */
35
35
36
+ /**
37
+ * Sponsor type
38
+ */
39
+ export type SponsorType =
40
+ | "user" /* Sponsor is a user */
41
+ | "organization" /* Sponsor is an organization */
42
+
36
43
/**
37
44
* Sponsor visibility
38
45
*/
39
- export enum SponsorType {
40
- PUBLIC = "PUBLIC" , /* Public sponsorship */
41
- PRIVATE = "PRIVATE" /* Private sponsorship */
42
- }
46
+ export type SponsorVisibility =
47
+ | "public" /* Sponsor is a user */
48
+ | "private" /* Sponsor is an organization */
43
49
44
50
/* ------------------------------------------------------------------------- */
45
51
46
52
/**
47
- * Public sponsor
53
+ * Sponsor user
48
54
*/
49
- export interface PublicSponsor {
50
- type : SponsorType . PUBLIC /* Sponsor visibility */
55
+ export interface SponsorUser {
56
+ type : SponsorType /* Sponsor type */
51
57
name : string /* Sponsor login name */
52
58
image : string /* Sponsor image URL */
53
59
url : string /* Sponsor URL */
54
60
}
55
61
62
+ /* ------------------------------------------------------------------------- */
63
+
64
+ /**
65
+ * Public sponsor
66
+ */
67
+ export interface PublicSponsor {
68
+ type : "public" /* Sponsor visibility */
69
+ user : SponsorUser /* Sponsor user */
70
+ }
71
+
56
72
/**
57
73
* Private sponsor
58
74
*/
59
75
export interface PrivateSponsor {
60
- type : SponsorType . PRIVATE /* Sponsor visibility */
76
+ type : "private" /* Sponsor visibility */
61
77
}
62
78
63
79
/* ------------------------------------------------------------------------- */
@@ -94,7 +110,7 @@ export function mountSponsorship(
94
110
el : HTMLElement
95
111
) : Observable < Component < Sponsorship > > {
96
112
const sponsorship$ = requestJSON < Sponsorship > (
97
- "https://gpiqp43wvb .execute-api.us-east-1.amazonaws.com/_/"
113
+ "https://3if8u9o552 .execute-api.us-east-1.amazonaws.com/_/"
98
114
)
99
115
100
116
/* Retrieve adjacent components */
@@ -108,13 +124,13 @@ export function mountSponsorship(
108
124
/* Render public sponsors with avatar and links */
109
125
const list = getElementOrThrow ( ":scope > :first-child" , el )
110
126
for ( const sponsor of sponsorship . sponsors )
111
- if ( sponsor . type === SponsorType . PUBLIC )
127
+ if ( sponsor . type === "public" )
112
128
list . appendChild ( renderPublicSponsor ( sponsor ) )
113
129
114
130
/* Render combined private sponsors */
115
131
list . appendChild ( renderPrivateSponsor (
116
132
sponsorship . sponsors . filter ( ( { type } ) => (
117
- type === SponsorType . PRIVATE
133
+ type === "private"
118
134
) ) . length
119
135
) )
120
136
0 commit comments