- 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
655 B
TypeScript
23 lines
655 B
TypeScript
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
|
|
import type { AppRouter } from '@sammo-ts/gateway-api';
|
|
|
|
const getSessionToken = (): string | null => {
|
|
if (typeof window === 'undefined') {
|
|
return null;
|
|
}
|
|
|
|
return window.localStorage.getItem('sammo-session-token');
|
|
};
|
|
|
|
export const gatewayTrpc = createTRPCProxyClient<AppRouter>({
|
|
links: [
|
|
httpBatchLink({
|
|
url: import.meta.env.VITE_GATEWAY_API_URL ?? '/api/trpc',
|
|
headers() {
|
|
const token = getSessionToken();
|
|
return token ? { 'x-session-token': token } : {};
|
|
},
|
|
}),
|
|
],
|
|
});
|