diff --git a/oauth/src/App.css b/oauth/src/App.css index f313886..3457601 100644 --- a/oauth/src/App.css +++ b/oauth/src/App.css @@ -819,12 +819,22 @@ body { .tab-header { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; + width: 100% !important; + display: flex !important; + scrollbar-width: none !important; /* Firefox */ + -ms-overflow-style: none !important; /* IE/Edge */ + } + + .tab-header::-webkit-scrollbar { + display: none !important; /* Chrome/Safari */ } .tab-btn { white-space: nowrap !important; min-width: auto !important; padding: 12px 16px !important; + flex-shrink: 0 !important; + font-size: 13px !important; } .json-content { diff --git a/oauth/src/hooks/useUserData.js b/oauth/src/hooks/useUserData.js index ef915d9..fd8c313 100644 --- a/oauth/src/hooks/useUserData.js +++ b/oauth/src/hooks/useUserData.js @@ -88,11 +88,23 @@ export function useUserData(adminData) { userPds = user.pds.replace('https://', '') userApiConfig = getApiConfig(userPds) } else { - // Get actual PDS from handle first - const realPds = await getPdsFromHandle(userHandle) - userPds = realPds.replace('https://', '') - userApiConfig = getApiConfig(realPds) - userDid = await atproto.getDid(userPds, userHandle) + // Always get actual PDS from describeRepo first + try { + // Try bsky.social first for most handles + const bskyPds = 'bsky.social' + userDid = await atproto.getDid(bskyPds, userHandle) + + // Get the actual PDS endpoint from DID + const realPds = await getPdsFromHandle(userHandle) + userPds = realPds.replace('https://', '') + userApiConfig = getApiConfig(realPds) + } catch (error) { + // Fallback to syu.is if bsky.social fails + console.warn(`Failed to get PDS for ${userHandle} from bsky.social, trying syu.is:`, error) + userPds = env.pds + userApiConfig = getApiConfig(env.pds) + userDid = await atproto.getDid(userPds, userHandle) + } } // Get user's own ai.syui.log records