This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
26 lines
610 B
TypeScript
26 lines
610 B
TypeScript
import * as React from "react";
|
|
import { getCookie } from "tiny-cookie";
|
|
|
|
type Session = {
|
|
url: string;
|
|
logoUrl: string;
|
|
name: string;
|
|
teamId: string;
|
|
};
|
|
|
|
function loadSessionsFromCookie(): Session[] {
|
|
const sessions = JSON.parse(getCookie("sessions") || "{}");
|
|
return Object.keys(sessions).map((teamId) => ({
|
|
teamId,
|
|
...sessions[teamId],
|
|
}));
|
|
}
|
|
|
|
export default function useSessions() {
|
|
const [sessions, setSessions] = React.useState(loadSessionsFromCookie);
|
|
const reload = React.useCallback(() => {
|
|
setSessions(loadSessionsFromCookie());
|
|
}, []);
|
|
return [sessions, reload];
|
|
}
|