mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 16:43:36 +00:00
* chore: cleaning gitignore * formating and env documentation * feat: context switching of hotel/airline depndent on env var via middleware * fixed alignment and building * wrong file * prods * fixed applying style * better session cookie management * tentative session storage with maybe using airtable * migrated api of ingestion * events and products apge * fixing build * 13 create outline for research paper draft (#18) * updated outline for paper from issue * extra paper sections and some formalization of series data * algorithms and acknowledgements * updated outline for paper from issue * upadted text formating * event unification * refactor tracking to ues callbacks instead of refs * implement a pricing display api with session passing * moved middleware to proxy according to new changes in Nextjs * refactoed kafka ingestion to go via backend not web-db * Refactor docker-compose services to use individual Dockerfiles (#20) * Initial plan * Refactor services into individual Dockerfiles Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> * Add EXPOSE directives to all Dockerfiles with port documentation Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com> * fixing small bugs and adding exepriments to tracking * added some doc
39 lines
914 B
TypeScript
39 lines
914 B
TypeScript
import { useEffect, useState } from 'react';
|
|
|
|
type SessionState = {
|
|
sessionId: string | null;
|
|
experimentId: string | null;
|
|
isLoading: boolean;
|
|
};
|
|
|
|
export const useSession = () => {
|
|
const [state, setState] = useState<SessionState>({
|
|
sessionId: null,
|
|
experimentId: null,
|
|
isLoading: true,
|
|
});
|
|
|
|
useEffect(() => {
|
|
const fetchSession = async () => {
|
|
try {
|
|
const res = await fetch('/api/session');
|
|
if (!res.ok) throw new Error(`fetch failed: ${res.status}`);
|
|
|
|
const data = await res.json();
|
|
setState({
|
|
sessionId: data.sessionId || null,
|
|
experimentId: data.experimentId || null,
|
|
isLoading: false,
|
|
});
|
|
} catch (err) {
|
|
console.error('session fetch error:', err);
|
|
setState({ sessionId: null, experimentId: null, isLoading: false });
|
|
}
|
|
};
|
|
|
|
fetchSession();
|
|
}, []);
|
|
|
|
return state;
|
|
};
|