@@ -27,6 +27,7 @@ const selectedTeam = shallowRef<string | null>(null)
2727const packages = shallowRef <Record <string , AccessPermission >>({})
2828const isLoadingPackages = shallowRef (false )
2929const packagesError = shallowRef <string | null >(null )
30+ const packageLoadRequestId = shallowRef (0 )
3031
3132// Search/filter
3233const searchQuery = shallowRef (' ' )
@@ -58,6 +59,9 @@ async function loadTeams() {
5859 } else {
5960 teamsError .value = connectorError .value || ' Failed to load teams'
6061 }
62+ } catch (error ) {
63+ teamsError .value =
64+ connectorError .value || (error instanceof Error ? error .message : ' Failed to load teams' )
6165 } finally {
6266 isLoadingTeams .value = false
6367 }
@@ -66,20 +70,29 @@ async function loadTeams() {
6670// Load packages for selected team
6771async function loadPackages() {
6872 if (! isConnected .value || ! selectedTeam .value ) return
73+ const teamAtRequestStart = selectedTeam .value
74+ const requestId = ++ packageLoadRequestId .value
6975
7076 isLoadingPackages .value = true
7177 packagesError .value = null
7278
7379 try {
74- const scopeTeam = buildScopeTeam (props .orgName , selectedTeam . value )
80+ const scopeTeam = buildScopeTeam (props .orgName , teamAtRequestStart )
7581 const result = await listTeamPackages (scopeTeam )
82+ if (requestId !== packageLoadRequestId .value || teamAtRequestStart !== selectedTeam .value )
83+ return
7684 if (result ) {
7785 packages .value = result
7886 } else {
7987 packagesError .value = connectorError .value || ' Failed to load packages'
8088 }
89+ } catch (error ) {
90+ packagesError .value =
91+ connectorError .value || (error instanceof Error ? error .message : ' Failed to load packages' )
8192 } finally {
82- isLoadingPackages .value = false
93+ if (requestId === packageLoadRequestId .value ) {
94+ isLoadingPackages .value = false
95+ }
8396 }
8497}
8598
0 commit comments