chore: remove unused stuff

This commit is contained in:
julius 2025-03-11 15:43:36 +01:00
parent 34c030c1e9
commit 2a396457aa
Signed by: julius
GPG Key ID: C80A63E6A5FD7092
7 changed files with 84 additions and 55 deletions

View File

@ -80,7 +80,7 @@ team_router.add_api_route("/list", endpoint=list_teams, methods=["GET"])
team_router.add_api_route("/add", endpoint=add_team, methods=["POST"]) team_router.add_api_route("/add", endpoint=add_team, methods=["POST"])
@api_router.post("/mvps") @api_router.post("/mvps", dependencies=[Depends(get_current_active_user)])
def submit_mvps(mvps: MVPRanking): def submit_mvps(mvps: MVPRanking):
with Session(engine) as session: with Session(engine) as session:
session.add(mvps) session.add(mvps)
@ -88,7 +88,7 @@ def submit_mvps(mvps: MVPRanking):
return JSONResponse("success!") return JSONResponse("success!")
@api_router.post("/chemistry") @api_router.post("/chemistry", dependencies=[Depends(get_current_active_user)])
def submit_chemistry(chemistry: Chemistry): def submit_chemistry(chemistry: Chemistry):
with Session(engine) as session: with Session(engine) as session:
session.add(chemistry) session.add(chemistry)

View File

@ -19,6 +19,7 @@
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.17.0", "@eslint/js": "^9.17.0",
"@types/node": "^22.13.10",
"@types/react": "18.3.18", "@types/react": "18.3.18",
"@types/react-dom": "18.3.5", "@types/react-dom": "18.3.5",
"@types/sortablejs": "^1.15.8", "@types/sortablejs": "^1.15.8",

View File

@ -17,13 +17,6 @@ import { apiAuth } from "./api";
// }; // };
//}; //};
// //
interface Prop {
name: string;
min: string;
max: string;
step: string;
value: string;
}
interface Params { interface Params {
nodeSize: number; nodeSize: number;
@ -36,12 +29,6 @@ interface Params {
show: number; show: number;
} }
interface DeferredProps {
timeout: number;
func: () => void;
}
let timeoutID: NodeJS.Timeout | null = null; let timeoutID: NodeJS.Timeout | null = null;
export default function Analysis() { export default function Analysis() {
const [image, setImage] = useState(""); const [image, setImage] = useState("");
@ -65,9 +52,10 @@ export default function Analysis() {
.then((data) => { .then((data) => {
setImage(data.image); setImage(data.image);
setLoading(false); setLoading(false);
}).catch((e) => {
console.log("best to just reload... ", e);
}) })
.catch((e) => {
console.log("best to just reload... ", e);
});
} }
useEffect(() => { useEffect(() => {
@ -81,19 +69,35 @@ export default function Analysis() {
function showLabel() { function showLabel() {
switch (params.show) { switch (params.show) {
case 0: return "dislike"; case 0:
case 1: return "both"; return "dislike";
case 2: return "like"; case 1:
return "both";
case 2:
return "like";
} }
} }
return ( return (
<div className="stack column dropdown"> <div className="stack column dropdown">
<button onClick={() => setShowControlPanel(!showControlPanel)}> <button onClick={() => setShowControlPanel(!showControlPanel)}>
Parameters <svg viewBox="0 0 24 24" height="1.2em" style={{ fill: "#ffffff", display: "inline", top: "0.2em", position: "relative", transform: showControlPanel ? "rotate(180deg)" : "unset" }} > <path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z" > </path></svg > Parameters{" "}
<svg
viewBox="0 0 24 24"
height="1.2em"
style={{
fill: "#ffffff",
display: "inline",
top: "0.2em",
position: "relative",
transform: showControlPanel ? "rotate(180deg)" : "unset",
}}
>
{" "}
<path d="M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"> </path>
</svg>
</button> </button>
<div id="control-panel" className={showControlPanel ? "opened" : ""}> <div id="control-panel" className={showControlPanel ? "opened" : ""}>
<div className="control"> <div className="control">
<datalist id="markers"> <datalist id="markers">
<option value="0"></option> <option value="0"></option>
@ -109,7 +113,9 @@ export default function Analysis() {
max="2" max="2"
step="1" step="1"
width="16px" width="16px"
onChange={(evt) => setParams({ ...params, show: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, show: Number(evt.target.value) })
}
/> />
<label>😍</label> <label>😍</label>
</div> </div>
@ -120,7 +126,9 @@ export default function Analysis() {
<input <input
type="checkbox" type="checkbox"
checked={params.weighting} checked={params.weighting}
onChange={(evt) => setParams({ ...params, weighting: evt.target.checked })} onChange={(evt) =>
setParams({ ...params, weighting: evt.target.checked })
}
/> />
<label>weighting</label> <label>weighting</label>
</div> </div>
@ -129,7 +137,9 @@ export default function Analysis() {
<input <input
type="checkbox" type="checkbox"
checked={params.popularity} checked={params.popularity}
onChange={(evt) => setParams({ ...params, popularity: evt.target.checked })} onChange={(evt) =>
setParams({ ...params, popularity: evt.target.checked })
}
/> />
<label>popularity</label> <label>popularity</label>
</div> </div>
@ -143,9 +153,12 @@ export default function Analysis() {
max="3.001" max="3.001"
step="0.05" step="0.05"
value={params.distance} value={params.distance}
onChange={(evt) => setParams({ ...params, distance: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, distance: Number(evt.target.value) })
}
/> />
<span>{params.distance}</span></div> <span>{params.distance}</span>
</div>
<div className="control"> <div className="control">
<label>node size</label> <label>node size</label>
@ -154,7 +167,9 @@ export default function Analysis() {
min="500" min="500"
max="3000" max="3000"
value={params.nodeSize} value={params.nodeSize}
onChange={(evt) => setParams({ ...params, nodeSize: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, nodeSize: Number(evt.target.value) })
}
/> />
<span>{params.nodeSize}</span> <span>{params.nodeSize}</span>
</div> </div>
@ -166,7 +181,9 @@ export default function Analysis() {
min="4" min="4"
max="24" max="24"
value={params.fontSize} value={params.fontSize}
onChange={(evt) => setParams({ ...params, fontSize: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, fontSize: Number(evt.target.value) })
}
/> />
<span>{params.fontSize}</span> <span>{params.fontSize}</span>
</div> </div>
@ -179,7 +196,9 @@ export default function Analysis() {
max="5" max="5"
step="0.1" step="0.1"
value={params.edgeWidth} value={params.edgeWidth}
onChange={(evt) => setParams({ ...params, edgeWidth: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, edgeWidth: Number(evt.target.value) })
}
/> />
<span>{params.edgeWidth}</span> <span>{params.edgeWidth}</span>
</div> </div>
@ -191,20 +210,19 @@ export default function Analysis() {
min="10" min="10"
max="50" max="50"
value={params.arrowSize} value={params.arrowSize}
onChange={(evt) => setParams({ ...params, arrowSize: Number(evt.target.value) })} onChange={(evt) =>
setParams({ ...params, arrowSize: Number(evt.target.value) })
}
/> />
<span>{params.arrowSize}</span> <span>{params.arrowSize}</span>
</div> </div>
</div> </div>
<button onClick={() => loadImage()}>reload </button> <button onClick={() => loadImage()}>reload </button>
{ {loading ? (
loading ? (
<span className="loader"></span> <span className="loader"></span>
) : ( ) : (
<img src={"data:image/png;base64," + image} width="86%" /> <img src={"data:image/png;base64," + image} width="86%" />
) )}
}
</div> </div>
); );
} }

View File

@ -1,10 +1,8 @@
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { apiAuth } from "./api"; import { apiAuth } from "./api";
import BarChart from "./BarChart";
import { PlayerRanking } from "./types"; import { PlayerRanking } from "./types";
import RaceChart from "./RaceChart"; import RaceChart from "./RaceChart";
const MVPChart = () => { const MVPChart = () => {
const [data, setData] = useState({} as PlayerRanking[]); const [data, setData] = useState({} as PlayerRanking[]);
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
@ -13,17 +11,26 @@ const MVPChart = () => {
async function loadData() { async function loadData() {
setLoading(true); setLoading(true);
await apiAuth("analysis/mvp", null) await apiAuth("analysis/mvp", null)
.then(json => json as Promise<PlayerRanking[]>).then(json => { setData(json.sort((a, b) => a.rank - b.rank)) }) .then((json) => json as Promise<PlayerRanking[]>)
.then((json) => {
setData(json.sort((a, b) => a.rank - b.rank));
});
setLoading(false); setLoading(false);
} }
useEffect(() => { loadData() }, []) useEffect(() => {
loadData();
}, []);
return ( return (
<> <>
{loading ? <span className="loader" /> : <RaceChart std={showStd} players={data} /> {loading ? (
} <span className="loader" />
</>) ) : (
} <RaceChart std={showStd} players={data} />
)}
</>
);
};
export default MVPChart; export default MVPChart;

View File

@ -1,6 +1,5 @@
import { FC, useEffect, useState } from "react"; import { FC, useEffect, useState } from "react";
import { PlayerRanking } from "./types"; import { PlayerRanking } from "./types";
import { useSession } from "./Session";
interface RaceChartProps { interface RaceChartProps {
players: PlayerRanking[]; players: PlayerRanking[];

View File

@ -1,7 +1,7 @@
import { InvalidTokenError, jwtDecode, JwtPayload } from "jwt-decode"; import { jwtDecode, JwtPayload } from "jwt-decode";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { baseUrl } from "./api"; import { baseUrl } from "./api";
import { redirect, useNavigate } from "react-router"; import { useNavigate } from "react-router";
interface SetPassToken extends JwtPayload { interface SetPassToken extends JwtPayload {
name: string; name: string;

View File

@ -3,10 +3,13 @@
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2020", "target": "ES2020",
"useDefineForClassFields": true, "useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"], "lib": [
"ES2020",
"DOM",
"DOM.Iterable"
],
"module": "ESNext", "module": "ESNext",
"skipLibCheck": true, "skipLibCheck": true,
/* Bundler mode */ /* Bundler mode */
"moduleResolution": "bundler", "moduleResolution": "bundler",
"allowImportingTsExtensions": true, "allowImportingTsExtensions": true,
@ -14,7 +17,6 @@
"moduleDetection": "force", "moduleDetection": "force",
"noEmit": true, "noEmit": true,
"jsx": "react-jsx", "jsx": "react-jsx",
/* Linting */ /* Linting */
"strict": true, "strict": true,
"noUnusedLocals": false, "noUnusedLocals": false,
@ -22,5 +24,7 @@
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true "noUncheckedSideEffectImports": true
}, },
"include": ["src"] "include": [
"src"
]
} }