- Added session initialization in main.ts to manage user sessions. - Updated router to include a new route for joining or creating a general. - Enhanced session store with methods for managing session tokens and user profiles. - Introduced new components for displaying city, general, nation, and command information. - Implemented loading states and error handling in the main view. - Created a skeleton loader component for better user experience during data fetching. - Updated TypeScript definitions for route metadata to include new authentication requirements.
23 lines
641 B
TypeScript
23 lines
641 B
TypeScript
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
|
|
import type { AppRouter } from '@sammo-ts/game-api';
|
|
|
|
const getGameToken = (): string | null => {
|
|
if (typeof window === 'undefined') {
|
|
return null;
|
|
}
|
|
|
|
return window.localStorage.getItem('sammo-game-token');
|
|
};
|
|
|
|
export const trpc = createTRPCProxyClient<AppRouter>({
|
|
links: [
|
|
httpBatchLink({
|
|
url: import.meta.env.VITE_GAME_API_URL ?? '/api/trpc',
|
|
headers() {
|
|
const token = getGameToken();
|
|
return token ? { authorization: `Bearer ${token}` } : {};
|
|
},
|
|
}),
|
|
],
|
|
});
|