@@ -6,29 +6,41 @@ import '../cc-smart-container/cc-smart-container.js';
66import { CcAddonCredentialsBetaClient } from './cc-addon-credentials-beta.client.js' ;
77import './cc-addon-credentials-beta.js' ;
88
9- /** @type {AddonCredential[] } */
10- const SKELETON_DATA = [
11- {
12- code : 'user' ,
13- value : 'fake-skeleton' ,
14- } ,
15- {
16- code : 'password' ,
17- value : 'fake-skeleton' ,
18- } ,
19- {
20- code : 'ng' ,
21- kind : 'multi-instances' ,
22- value : {
23- status : 'disabled' ,
9+ /** @type {AddonCredentialsBetaStateLoading } */
10+ const LOADING_STATE = {
11+ type : 'loading' ,
12+ tabs : {
13+ default : {
14+ content : [
15+ {
16+ code : 'user' ,
17+ value : 'fake-skeleton' ,
18+ } ,
19+ {
20+ code : 'password' ,
21+ value : 'fake-skeleton' ,
22+ } ,
23+ {
24+ code : 'ng' ,
25+ kind : 'multi-instances' ,
26+ value : {
27+ status : 'disabled' ,
28+ } ,
29+ } ,
30+ ] ,
31+ docLink : {
32+ text : i18n ( 'cc-addon-credentials-beta.doc-link.keycloak' ) ,
33+ href : generateDocsHref ( '/addons/keycloak/#secured-multi-instances' ) ,
34+ } ,
2435 } ,
2536 } ,
26- ] ;
37+ } ;
2738const PROVIDER_ID = 'keycloak' ;
2839
2940/**
3041 * @typedef {import('./cc-addon-credentials-beta.js').CcAddonCredentialsBeta } CcAddonCredentialsBeta
3142 * @typedef {import('./cc-addon-credentials-beta.types.js').AddonCredentialsBetaStateLoaded } AddonCredentialsBetaStateLoaded
43+ * @typedef {import('./cc-addon-credentials-beta.types.js').AddonCredentialsBetaStateLoading } AddonCredentialsBetaStateLoading
3244 * @typedef {import('../cc-addon-credentials-content/cc-addon-credentials-content.types.js').AddonCredential } AddonCredential
3345 * @typedef {import('../cc-addon-credentials-content/cc-addon-credentials-content.types.js').AddonCredentialNg } AddonCredentialNg
3446 * @typedef {import('../cc-addon-credentials-content/cc-addon-credentials-content.types.js').AddonCredentialNgEnabled } AddonCredentialNgEnabled
@@ -58,7 +70,7 @@ defineSmartComponent({
5870 'state' ,
5971 /** @param {AddonCredentialsBetaStateLoaded } state */
6072 ( state ) => {
61- state . tabs . default = [ ...state . tabs . default ] . map ( ( addonInfo ) => {
73+ state . tabs . default . content = [ ...state . tabs . default . content ] . map ( ( addonInfo ) => {
6274 if ( addonInfo . code === 'ng' ) {
6375 if ( typeof newNgInfoOrCallback === 'function' ) {
6476 return newNgInfoOrCallback ( addonInfo ) ;
@@ -72,26 +84,19 @@ defineSmartComponent({
7284 ) ;
7385 }
7486
75- updateComponent ( 'state' , {
76- type : 'loading' ,
77- tabs : {
78- default : SKELETON_DATA ,
79- } ,
80- } ) ;
81- updateComponent ( 'docLink' , {
82- text : i18n ( 'cc-addon-credentials-beta.doc-link.keycloak' ) ,
83- href : generateDocsHref ( '/addons/keycloak/#secured-multi-instances' ) ,
84- } ) ;
87+ updateComponent ( 'state' , LOADING_STATE ) ;
8588
8689 api
8790 . getCredentials ( )
8891 . then ( ( credentials ) => {
89- updateComponent ( 'state' , {
90- type : 'loaded' ,
91- tabs : {
92- default : credentials ,
92+ updateComponent (
93+ 'state' ,
94+ /** @param {AddonCredentialsBetaStateLoaded|AddonCredentialsBetaStateLoading } state */
95+ ( state ) => {
96+ state . type = 'loaded' ;
97+ state . tabs . default . content = credentials ;
9398 } ,
94- } ) ;
99+ ) ;
95100 } )
96101 . catch ( ( error ) => {
97102 console . error ( error ) ;
0 commit comments