@@ -20,16 +20,13 @@ export class SemrushWorkspaceElement extends UmbLitElement {
20
20
#paginationManager = new UmbPaginationManager ( ) ;
21
21
22
22
@state ( )
23
- _currentPageNumber = 1 ;
23
+ private _loading = false ;
24
24
25
25
@state ( )
26
- _totalPages = 1 ;
26
+ private _currentPageNumber = 1 ;
27
27
28
28
@state ( )
29
- _nextPageInfo ?: string ;
30
-
31
- @state ( )
32
- _previousPageInfo ?: string ;
29
+ private _totalPages = 1 ;
33
30
34
31
@state ( )
35
32
private authUrl : string = "" ;
@@ -47,17 +44,17 @@ export class SemrushWorkspaceElement extends UmbLitElement {
47
44
@state ( )
48
45
private _tableColumns : Array < UmbTableColumn > = [ ] ;
49
46
50
- @state ( )
51
- private selectedproperty : string = "" ;
52
- @state ( )
53
- private propertyList : Array < ContentPropertyDtoModel > = [ ] ;
54
-
55
47
@state ( )
56
48
private keywordList : RelatedPhrasesDtoModel | undefined = undefined ;
57
49
58
50
@state ( )
59
51
private searchPhrase : string = "" ;
60
52
53
+ @state ( )
54
+ private selectedproperty : string = "" ;
55
+ @state ( )
56
+ private propertyList : Array < ContentPropertyDtoModel > = [ ] ;
57
+
61
58
@state ( )
62
59
private selectedDatasource : string = "" ;
63
60
@state ( )
@@ -121,10 +118,12 @@ export class SemrushWorkspaceElement extends UmbLitElement {
121
118
async connectedCallback ( ) {
122
119
super . connectedCallback ( ) ;
123
120
121
+ this . _loading = true ;
124
122
await this . #validateToken( ) ;
125
123
await this . #getDatasource( ) ;
126
124
await this . #getAuthUrl( ) ;
127
125
await this . #getContentProperties( ) ;
126
+ this . _loading = false ;
128
127
}
129
128
130
129
async #getContentProperties( ) {
@@ -136,43 +135,45 @@ export class SemrushWorkspaceElement extends UmbLitElement {
136
135
}
137
136
138
137
async #getDatasource( ) {
139
- var result = await this . #semrushContext. getDataSources ( ) ;
140
- if ( ! result ) return ;
138
+ var { data } = await this . #semrushContext. getDataSources ( ) ;
139
+ if ( ! data ) return ;
141
140
142
- this . datasourceList = result . data ? .items ;
141
+ this . datasourceList = data . items ;
143
142
}
144
143
145
144
async #getAuthUrl( ) {
146
- var result = await this . #semrushContext. getAuthorizationUrl ( ) ;
147
- if ( ! result ) return ;
145
+ var { data } = await this . #semrushContext. getAuthorizationUrl ( ) ;
146
+ if ( ! data ) return ;
148
147
149
- this . authUrl = result . data ! ;
148
+ this . authUrl = data ;
150
149
}
151
150
152
151
async #validateToken( ) {
153
- var result = await this . #semrushContext. validateToken ( ) ;
154
- if ( ! result ) return ;
152
+ var { data } = await this . #semrushContext. validateToken ( ) ;
153
+ if ( ! data ) return ;
155
154
156
- if ( result . data ? .isAuthorized ) {
157
- if ( ! result . data ? .isValid ) {
155
+ if ( data . isAuthorized ) {
156
+ if ( ! data . isValid ) {
158
157
await this . #semrushContext. refreshAccessToken ( ) ;
159
158
return ;
160
159
}
161
160
162
- this . account = result . data ! ;
161
+ this . account = data ;
163
162
this . requestUpdate ( ) ;
164
163
this . dispatchEvent ( new CustomEvent ( 'property-value-change' ) ) ;
165
164
}
166
165
}
167
166
168
167
async _search ( ) {
169
- const result = await this . #semrushContext. getRelatedPhrases ( this . searchPhrase , this . _currentPageNumber , this . selectedDatasource , this . selectedMethod ) ;
170
- if ( ! result ) return ;
168
+ const { data } = await this . #semrushContext. getRelatedPhrases ( this . searchPhrase , this . _currentPageNumber , this . selectedDatasource , this . selectedMethod ) ;
169
+ if ( ! data ) return ;
171
170
172
- this . keywordList = result . data ;
173
- this . _totalPages = result . data ?. totalPages ! ;
174
- this . #createTableColumns( this . keywordList ?. data ! ) ;
175
- this . #createTableItems( this . keywordList ?. data ! ) ;
171
+ this . keywordList = data ;
172
+ this . _totalPages = data . totalPages ;
173
+ if ( ! ! this . keywordList . data ) {
174
+ this . #createTableColumns( this . keywordList . data ) ;
175
+ this . #createTableItems( this . keywordList . data ) ;
176
+ }
176
177
}
177
178
178
179
_searchNew ( ) {
@@ -215,10 +216,10 @@ export class SemrushWorkspaceElement extends UmbLitElement {
215
216
if ( authWindow ) authWindow . close ( ) ;
216
217
217
218
var code = event . data . url . slice ( event . data . url . indexOf ( codeParam ) + codeParam . length ) ;
218
- var result = await this . #semrushContext. getAccessToken ( code ) ;
219
- if ( ! result ) return ;
219
+ var { data } = await this . #semrushContext. getAccessToken ( code ) ;
220
+ if ( ! data ) return ;
220
221
221
- if ( result . data !== "error" ) {
222
+ if ( data !== "error" ) {
222
223
await this . #validateToken( ) ;
223
224
224
225
this . _showSuccess ( "Access Approved." ) ;
@@ -367,6 +368,7 @@ export class SemrushWorkspaceElement extends UmbLitElement {
367
368
<br/>
368
369
369
370
<uui-box headline="Keyword Search">
371
+ ${ this . _loading ? html `<div class="center loader"><uui-loader></uui-loader></div>` : "" }
370
372
<uui-button
371
373
slot="header-actions"
372
374
look=${ this . account . isAuthorized ? "secondary" : "primary" }
@@ -402,31 +404,34 @@ export class SemrushWorkspaceElement extends UmbLitElement {
402
404
<uui-button label="Search keywords" look="primary" @click=${ this . _search } ?disabled=${ ! this . account . isAuthorized } ></uui-button>
403
405
</div>
404
406
405
- ${ when ( this . keywordList ?. data !== undefined , ( ) => html `
406
- <div class="semrush-table">
407
- <umb-table
408
- .columns=${ this . _tableColumns }
409
- .items=${ this . _tableItems } ></umb-table>
410
- </div>
411
-
412
- ${ ( ! this . account . isFreeAccount
413
- ? html `
414
- <div>
415
- <p>
416
- Because you are using a free account, the number of results is limited to 10 records.
417
- Please upgrade your subscription for enhanced results.
418
- </p>
419
- </div>
420
- `
421
- : html `
422
- ${ this . #renderPagination( ) }
423
- `
424
- ) }
425
-
426
- <a href="https://www.semrush.com/analytics/keywordoverview" target="_blank">
427
- Get more insights at Semrush
428
- </a>
429
- ` ) }
407
+ ${ this . keywordList ?. data !== undefined && ! ! this . keywordList ?. data
408
+ ? html `
409
+ <div class="semrush-table">
410
+ <umb-table
411
+ .columns=${ this . _tableColumns }
412
+ .items=${ this . _tableItems } ></umb-table>
413
+ </div>
414
+
415
+ ${ ( ! this . account . isFreeAccount
416
+ ? html `
417
+ <div>
418
+ <p>
419
+ Because you are using a free account, the number of results is limited to 10 records.
420
+ Please upgrade your subscription for enhanced results.
421
+ </p>
422
+ </div>
423
+ `
424
+ : html `
425
+ ${ this . #renderPagination( ) }
426
+ `
427
+ ) }
428
+
429
+ <a href="https://www.semrush.com/analytics/keywordoverview" target="_blank">
430
+ Get more insights at Semrush
431
+ </a>
432
+ `
433
+ : html ``
434
+ }
430
435
</uui-box>
431
436
</umb-body-layout>
432
437
` ;
0 commit comments