import { EvePraisalResult } from "@/eve-praisal"; import { AccessToken, CharacterUpdate } from "@/types"; import { Dispatch, SetStateAction, createContext } from "react"; export const CharacterContext = createContext<{ characters: AccessToken[]; deleteCharacter: (character: AccessToken) => void; updateCharacter: (character: AccessToken, update: CharacterUpdate) => void; restoreCharacters: (characters: AccessToken[]) => void; }>({ characters: [], deleteCharacter: () => {}, updateCharacter: () => {}, restoreCharacters: () => {}, }); export const SessionContext = createContext<{ sessionReady: boolean; refreshSession: (characters: AccessToken[]) => void; setSessionReady: Dispatch>; EVE_SSO_CALLBACK_URL: string; EVE_SSO_CLIENT_ID: string; compactMode: boolean; toggleCompactMode: () => void; planMode: boolean; togglePlanMode: () => void; piPrices: EvePraisalResult | undefined; }>({ sessionReady: false, refreshSession: () => {}, setSessionReady: () => {}, EVE_SSO_CALLBACK_URL: "", EVE_SSO_CLIENT_ID: "", compactMode: false, toggleCompactMode: () => {}, planMode: false, togglePlanMode: () => {}, piPrices: undefined, }); export type ColorSelectionType = { defaultColor: string; expiredColor: string; twoHoursColor: string; fourHoursColor: string; eightHoursColor: string; twelveHoursColor: string; dayColor: string; twoDaysColor: string; }; export const defaultColors = { defaultColor: "#006596", expiredColor: "#AB324A", twoHoursColor: "#9C4438", fourHoursColor: "#765B21", eightHoursColor: "#63620D", twelveHoursColor: "#2C6C2F", dayColor: "#2F695A", twoDaysColor: "#2F695A", }; export const ColorContext = createContext<{ colors: ColorSelectionType; setColors: (colors: ColorSelectionType) => void; }>({ colors: defaultColors, setColors: () => {} });