Add system variable to character
This commit is contained in:
@@ -17,10 +17,12 @@ export const CharacterDialog = ({
|
||||
}) => {
|
||||
const [account, setAccount] = useState("");
|
||||
const [comment, setComment] = useState("");
|
||||
const [system, setSystem] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
if (character?.account) setAccount(character.account);
|
||||
if (character?.comment) setComment(character.comment);
|
||||
if (character?.system) setSystem(character.system);
|
||||
}, [character]);
|
||||
|
||||
const logout = (character: AccessToken) => {
|
||||
@@ -52,6 +54,15 @@ export const CharacterDialog = ({
|
||||
onChange={(event) => setAccount(event.target.value)}
|
||||
onKeyDown={handleKeyDown}
|
||||
/>
|
||||
<TextField
|
||||
id="outlined-basic"
|
||||
label="System"
|
||||
variant="outlined"
|
||||
value={system ?? ""}
|
||||
sx={{ margin: 1 }}
|
||||
minRows={6}
|
||||
onChange={(event) => setSystem(event.target.value)}
|
||||
/>
|
||||
<TextField
|
||||
id="outlined-basic"
|
||||
label="Comment / Plan"
|
||||
@@ -62,10 +73,12 @@ export const CharacterDialog = ({
|
||||
minRows={6}
|
||||
onChange={(event) => setComment(event.target.value)}
|
||||
/>
|
||||
|
||||
<DialogActions>
|
||||
<Button
|
||||
onClick={() => {
|
||||
character && updateCharacter(character, { account, comment });
|
||||
character &&
|
||||
updateCharacter(character, { account, comment, system });
|
||||
closeDialog();
|
||||
}}
|
||||
variant="contained"
|
||||
|
@@ -67,5 +67,5 @@ export const ColorContext = createContext<{
|
||||
setColors: (colors: ColorSelectionType) => void;
|
||||
}>({
|
||||
colors: defaultColors,
|
||||
setColors: () => {}
|
||||
setColors: () => {},
|
||||
});
|
||||
|
@@ -51,6 +51,7 @@ const Home = () => {
|
||||
...c,
|
||||
...(updates.account ? { account: updates.account } : {}),
|
||||
...(updates.comment ? { comment: updates.comment } : {}),
|
||||
...(updates.system ? { system: updates.system } : {}),
|
||||
};
|
||||
return c;
|
||||
});
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import { AccessToken } from "@/types";
|
||||
import { extractCharacterFromToken } from "@/utils";
|
||||
import crypto from "crypto-js";
|
||||
import { NextApiRequest, NextApiResponse } from "next";
|
||||
import crypto from "crypto-js";
|
||||
|
||||
const EVE_SSO_TOKEN_URL = "https://login.eveonline.com/v2/oauth/token";
|
||||
const EVE_SSO_CLIENT_ID = process.env.EVE_SSO_CLIENT_ID ?? "";
|
||||
@@ -14,14 +14,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
grant_type: "refresh_token",
|
||||
refresh_token: crypto.AES.decrypt(
|
||||
accessToken.refresh_token,
|
||||
EVE_SSO_SECRET
|
||||
EVE_SSO_SECRET,
|
||||
).toString(crypto.enc.Utf8),
|
||||
}).toString();
|
||||
|
||||
const headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
Authorization: `Basic ${Buffer.from(
|
||||
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`
|
||||
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`,
|
||||
).toString("base64")}`,
|
||||
Host: "login.eveonline.com",
|
||||
"User-Agent": "https://github.com/calli-eve/eve-pi",
|
||||
@@ -40,13 +40,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
token_type: response.token_type,
|
||||
refresh_token: crypto.AES.encrypt(
|
||||
response.refresh_token,
|
||||
EVE_SSO_SECRET
|
||||
EVE_SSO_SECRET,
|
||||
).toString(),
|
||||
expires_at: Date.now() + response.expires_in * 1000,
|
||||
character,
|
||||
needsLogin: false,
|
||||
account: accessToken.account,
|
||||
comment: accessToken.comment
|
||||
comment: accessToken.comment,
|
||||
system: accessToken.system,
|
||||
};
|
||||
|
||||
console.log("Refresh", character.name, character.characterId);
|
||||
|
@@ -20,7 +20,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
const headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
Authorization: `Basic ${Buffer.from(
|
||||
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`
|
||||
`${EVE_SSO_CLIENT_ID}:${EVE_SSO_SECRET}`,
|
||||
).toString("base64")}`,
|
||||
Host: "login.eveonline.com",
|
||||
"User-Agent": "https://github.com/calli-eve/eve-pi",
|
||||
@@ -41,13 +41,14 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
|
||||
token_type: response.token_type,
|
||||
refresh_token: crypto.AES.encrypt(
|
||||
response.refresh_token,
|
||||
EVE_SSO_SECRET
|
||||
EVE_SSO_SECRET,
|
||||
).toString(),
|
||||
expires_at: Date.now() + response.expires_in * 1000,
|
||||
character,
|
||||
needsLogin: false,
|
||||
account: "-",
|
||||
comment: "",
|
||||
system: "",
|
||||
};
|
||||
res.json(token);
|
||||
} else {
|
||||
|
@@ -9,6 +9,7 @@ export interface AccessToken {
|
||||
account: string;
|
||||
needsLogin: boolean;
|
||||
comment: string;
|
||||
system: string;
|
||||
}
|
||||
|
||||
export interface Character {
|
||||
@@ -30,6 +31,7 @@ export interface CharacterPlanets {
|
||||
export interface CharacterUpdate {
|
||||
account?: string;
|
||||
comment?: string;
|
||||
system?: string;
|
||||
}
|
||||
|
||||
export type Planet = EsiType<"v1", "getCharactersCharacterIdPlanets">[number];
|
||||
@@ -52,11 +54,11 @@ type EsiApiPathType<V extends EsiApiVersionType> = keyof InstanceType<
|
||||
>[V];
|
||||
type EsiApiResponseType<
|
||||
V extends EsiApiVersionType,
|
||||
T extends EsiApiPathType<V>
|
||||
T extends EsiApiPathType<V>,
|
||||
> = Awaited<ReturnType<InstanceType<typeof Api<unknown>>[V][T]>>;
|
||||
export type EsiType<
|
||||
V extends EsiApiVersionType,
|
||||
T extends EsiApiPathType<V>
|
||||
T extends EsiApiPathType<V>,
|
||||
> = EsiApiResponseType<V, T> extends { data: any }
|
||||
? EsiApiResponseType<V, T>["data"]
|
||||
: never;
|
||||
|
Reference in New Issue
Block a user