1+ import React , { useContext , useEffect , useState } from "react" ;
12import { URI } from "@adviser/cement" ;
2- import { TenantLedger } from "@fireproof/core-types-protocols-cloud" ;
33import { useMutation , useQuery } from "@tanstack/react-query" ;
44import { base64url } from "jose" ;
5- import React , { useContext , useEffect , useState } from "react" ;
65import { Navigate , useSearchParams } from "react-router-dom" ;
76import { AppContext } from "../../../app-context.jsx" ;
7+ import { TenantLedger } from "@fireproof/core-types-protocols-cloud" ;
88import { ListTenantsLedgersByUser } from "../../../cloud-context.jsx" ;
99
1010interface TenantLedgerWithName {
@@ -51,12 +51,9 @@ export function ApiTokenAuto() {
5151 ) ;
5252 }
5353
54- // Get user's tenants and ledgers (includes both owned and shared ledgers)
54+ // Get user's tenants and ledgers
5555 const { data : tenantsData , error : tenantsError } = cloud . getListTenantsLedgersByUser ( ) ;
5656
57- // Also get all ledgers user is a member of (including shared ones not in their tenants)
58- const { data : allUserLedgers , error : allUserLedgersError } = cloud . getListLedgersByUser ( ) ;
59-
6057 // Create ledger mutation
6158 const createLedgerMutation = useMutation ( {
6259 mutationFn : async ( { tenantId, name } : { tenantId : string ; name : string } ) => {
@@ -73,9 +70,9 @@ export function ApiTokenAuto() {
7370 } ,
7471 } ) ;
7572
76- // Process ledger data when tenants/ledgers are loaded
73+ // Process ledger data when tenants are loaded
7774 useEffect ( ( ) => {
78- if ( ledgerInfo ) {
75+ if ( ! tenantsData || tenantsData . length === 0 || ledgerInfo ) {
7976 return ;
8077 }
8178
@@ -89,45 +86,27 @@ export function ApiTokenAuto() {
8986 return ;
9087 }
9188
92- // Look for existing ledger by name or ID in all user's ledgers (including shared)
89+ // Look for existing ledger by name or ID
9390 let foundLedger : TenantLedgerWithName | null = null ;
9491
95- // First check in allUserLedgers (includes shared ledgers)
96- if ( allUserLedgers ?. ledgers ) {
97- const matchingLedger = allUserLedgers . ledgers . find (
98- ( ledger ) => ledger . name === ledgerName || ( ledgerId && ledger . ledgerId === ledgerId ) ,
99- ) ;
100-
101- if ( matchingLedger ) {
102- foundLedger = {
103- tenant : matchingLedger . tenantId ,
104- ledger : matchingLedger . ledgerId ,
105- name : matchingLedger . name ,
106- } ;
107- }
108- }
109-
110- // Fallback: check in tenantsData if not found
111- if ( ! foundLedger && tenantsData && tenantsData . length > 0 ) {
112- for ( const tenant of tenantsData ) {
113- for ( const ledger of tenant . ledgers ) {
114- if ( ledger . name === ledgerName || ( ledgerId && ledger . ledgerId === ledgerId ) ) {
115- foundLedger = {
116- tenant : tenant . tenant . tenantId ,
117- ledger : ledger . ledgerId ,
118- name : ledger . name ,
119- } ;
120- break ;
121- }
92+ for ( const tenant of tenantsData ) {
93+ for ( const ledger of tenant . ledgers ) {
94+ if ( ledger . name === ledgerName || ( ledgerId && ledger . ledgerId === ledgerId ) ) {
95+ foundLedger = {
96+ tenant : tenant . tenant . tenantId ,
97+ ledger : ledger . ledgerId ,
98+ name : ledger . name ,
99+ } ;
100+ break ;
122101 }
123- if ( foundLedger ) break ;
124102 }
103+ if ( foundLedger ) break ;
125104 }
126105
127106 if ( foundLedger ) {
128107 setLedgerInfo ( foundLedger ) ;
129- } else if ( tenantsData && tenantsData . length > 0 ) {
130- // Only create a new ledger if user has tenants (don't create for shared-only users)
108+ } else {
109+ // Need to create a new ledger
131110 const targetTenant = tenantId
132111 ? tenantsData . find ( ( t : ListTenantsLedgersByUser ) => t . tenant . tenantId === tenantId ) ?. tenant
133112 : tenantsData [ 0 ] ?. tenant ;
@@ -139,7 +118,7 @@ export function ApiTokenAuto() {
139118 } ) ;
140119 }
141120 }
142- } , [ tenantsData , allUserLedgers , tenantId , ledgerId , ledgerName , ledgerInfo , createLedgerMutation ] ) ;
121+ } , [ tenantsData , tenantId , ledgerId , ledgerName , ledgerInfo , createLedgerMutation ] ) ;
143122
144123 // Handle successful ledger creation
145124 useEffect ( ( ) => {
@@ -203,7 +182,7 @@ export function ApiTokenAuto() {
203182 } , [ cloudToken , backUrl , countdownSecs ] ) ;
204183
205184 // Show errors
206- const error = tenantsError || allUserLedgersError || createLedgerMutation . error || errorToken ;
185+ const error = tenantsError || createLedgerMutation . error || errorToken ;
207186 if ( error ) {
208187 return (
209188 < div style = { { padding : "40px" , textAlign : "center" } } >
0 commit comments