Compare commits
11 Commits
de751e1595
...
e8c788832c
Author | SHA1 | Date | |
---|---|---|---|
e8c788832c | |||
2d760cda16 | |||
2256fbfdf9 | |||
d5e684eb98 | |||
da9c3be1cd | |||
970a06cf9c | |||
39258f37fc | |||
2ae9a04aae | |||
91938efe35 | |||
b8e17331cc | |||
a41c6717c8 |
2
main.py
2
main.py
@ -46,7 +46,7 @@ def add_players(players: list[Player]):
|
||||
|
||||
def list_players():
|
||||
with Session(engine) as session:
|
||||
statement = select(Player)
|
||||
statement = select(Player).order_by(Player.name)
|
||||
return session.exec(statement).fetchall()
|
||||
|
||||
|
||||
|
128
src/App.css
128
src/App.css
@ -1,5 +1,5 @@
|
||||
* {
|
||||
border-radius: 8px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
body {
|
||||
@ -7,15 +7,19 @@ body {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
color: black;
|
||||
text-align: center;
|
||||
overflow-wrap: anywhere;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
footer {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#root {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.grey {
|
||||
@ -25,6 +29,7 @@ body {
|
||||
.hint {
|
||||
position: absolute;
|
||||
font-size: 80%;
|
||||
padding: 8px;
|
||||
top: auto;
|
||||
left: 4px;
|
||||
bottom: auto;
|
||||
@ -33,16 +38,17 @@ body {
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
h2,
|
||||
h3 {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
justify-content: space-evenly;
|
||||
min-width: min(80vw, 800px);
|
||||
width: min(96vw, 900px);
|
||||
}
|
||||
|
||||
.dragbox {
|
||||
@ -52,6 +58,19 @@ h2 {
|
||||
height: 92%;
|
||||
}
|
||||
|
||||
.box {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
&.one {
|
||||
max-width: min(96%, 768px);
|
||||
margin: 4px auto;
|
||||
}
|
||||
padding: 4px;
|
||||
margin: 4px 0.5%;
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
.reservoir {
|
||||
flex-direction: unset;
|
||||
flex-wrap: wrap;
|
||||
@ -59,28 +78,9 @@ h2 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.box {
|
||||
position: relative;
|
||||
&.one {
|
||||
max-width: min(80vw, 500px);
|
||||
}
|
||||
&.two {
|
||||
min-width: 43%;
|
||||
max-width: 20vw;
|
||||
}
|
||||
&.three {
|
||||
min-width: 27%;
|
||||
max-width: 10vw;
|
||||
}
|
||||
padding: 4px;
|
||||
margin: 4px auto;
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
}
|
||||
|
||||
.user {
|
||||
max-width: 400px;
|
||||
min-width: 200px;
|
||||
max-width: 240px;
|
||||
min-width: 100px;
|
||||
margin: 4px auto;
|
||||
.item {
|
||||
font-weight: bold;
|
||||
@ -92,27 +92,38 @@ h2 {
|
||||
cursor: pointer;
|
||||
font-size: small;
|
||||
border: 3px dashed black;
|
||||
border-radius: 4px;
|
||||
border-radius: 1.2em;
|
||||
margin: 8px auto;
|
||||
padding: 4px 8px;
|
||||
padding: 4px 16px;
|
||||
}
|
||||
|
||||
.extra-margin {
|
||||
padding: 0px 8px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
button {
|
||||
font-weight: bold;
|
||||
color: ghostwhite;
|
||||
font-size: large;
|
||||
color: aliceblue;
|
||||
background-color: black;
|
||||
border: 4px solid black;
|
||||
position: relative;
|
||||
border-radius: 1.2em;
|
||||
z-index: 1;
|
||||
&:focus {
|
||||
outline: black;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.submit_text {
|
||||
display: none;
|
||||
}
|
||||
&:hover {
|
||||
border-color: black;
|
||||
.submit {
|
||||
position: fixed;
|
||||
right: 16px;
|
||||
bottom: 16px;
|
||||
padding: 0px;
|
||||
background-color: unset;
|
||||
font-size: xx-large;
|
||||
margin-bottom: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,15 +139,23 @@ button {
|
||||
}
|
||||
|
||||
.tablink {
|
||||
background-color: unset;
|
||||
font-weight: unset;
|
||||
color: black;
|
||||
border: 2px solid black;
|
||||
border-radius: unset;
|
||||
outline: black;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
padding: 8px 16px;
|
||||
width: 50%;
|
||||
flex: 1;
|
||||
margin: 4px auto;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
button {
|
||||
font-size: medium;
|
||||
margin: 4px 0.5%;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
opacity: 50%;
|
||||
&:hover {
|
||||
opacity: 75%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Style the tab content (and add height:100% for full page content) */
|
||||
@ -154,6 +173,29 @@ button {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
height: 160px;
|
||||
img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
h3 {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
top: 33%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
color: aliceblue;
|
||||
background-color: black;
|
||||
border-radius: unset;
|
||||
letter-spacing: 8px;
|
||||
padding: 0px 40px;
|
||||
font-family: monospace;
|
||||
}
|
||||
}
|
||||
|
||||
.loader {
|
||||
display: block;
|
||||
position: relative;
|
||||
|
21
src/App.tsx
21
src/App.tsx
@ -5,15 +5,24 @@ import Rankings from "./Rankings";
|
||||
function App() {
|
||||
return (
|
||||
<>
|
||||
<a href={baseUrl}>
|
||||
<img alt="logo" height="128px" src="logo.svg" />
|
||||
</a>
|
||||
<h1>cutt</h1>
|
||||
<span className="grey">cool ultimate team tool</span>
|
||||
<div className="logo">
|
||||
<a href={baseUrl}>
|
||||
<img alt="logo" height="66%" src="logo.svg" />
|
||||
</a>
|
||||
<h3 className="centered">cutt</h3>
|
||||
<span className="grey">cool ultimate team tool</span>
|
||||
</div>
|
||||
<Rankings />
|
||||
<footer>
|
||||
<p className="grey">
|
||||
something not working? message <a href="https://t.me/x0124816">me</a>.
|
||||
something not working?
|
||||
<br />
|
||||
message <a href="https://t.me/x0124816">me</a>.
|
||||
<br />
|
||||
or fix it here:{" "}
|
||||
<a href="https://git.0124816.xyz/julius/cutt" key="gitea">
|
||||
<img src="gitea.svg" alt="gitea" height="16" />
|
||||
</a>
|
||||
</p>
|
||||
</footer>
|
||||
</>
|
||||
|
@ -40,9 +40,9 @@ export function SelectUser({
|
||||
return (
|
||||
<>
|
||||
<div className="box user">
|
||||
<span>your name?</span>
|
||||
{user.length < 1 ? (
|
||||
<>
|
||||
<span>your name?</span>
|
||||
<br /> <span className="grey hint">drag your name here</span>
|
||||
</>
|
||||
) : (
|
||||
@ -55,7 +55,6 @@ export function SelectUser({
|
||||
>
|
||||
{" ✕"}
|
||||
</span>
|
||||
<br />
|
||||
</>
|
||||
)}
|
||||
<PlayerList
|
||||
@ -175,7 +174,9 @@ export function Chemistry({ user, players }: PlayerInfoProps) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button onClick={() => handleSubmit()}>submit</button>
|
||||
<button className="submit" onClick={() => handleSubmit()}>
|
||||
💾 <span className="submit_text">submit</span>
|
||||
</button>
|
||||
<dialog
|
||||
id="ChemistryDialog"
|
||||
onClick={(event) => {
|
||||
@ -233,8 +234,8 @@ export function MVP({ user, players }: PlayerInfoProps) {
|
||||
<h1>🏆</h1>
|
||||
{rankedPlayers.length < 1 && (
|
||||
<span className="grey hint">
|
||||
carefully place the <i>Most Valuable Player</i> (according to your
|
||||
humble opinion) in this box
|
||||
carefully place as many of the <i>Most Valuable Players</i>{" "}
|
||||
(according to your humble opinion) in this box
|
||||
</span>
|
||||
)}
|
||||
<PlayerList
|
||||
@ -252,7 +253,9 @@ export function MVP({ user, players }: PlayerInfoProps) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button onClick={() => handleSubmit()}>submit</button>
|
||||
<button className="submit" onClick={() => handleSubmit()}>
|
||||
💾 <span className="submit_text">submit</span>
|
||||
</button>
|
||||
<dialog
|
||||
id="MVPDialog"
|
||||
onClick={(event) => {
|
||||
@ -276,10 +279,7 @@ function openPage(pageName: string, color: string) {
|
||||
tablinks = document.getElementsByClassName("tablink");
|
||||
for (i = 0; i < tablinks.length; i++) {
|
||||
let button = tablinks[i] as HTMLElement;
|
||||
button.style.backgroundColor = "unset";
|
||||
button.style.textDecoration = "unset";
|
||||
button.style.fontWeight = "unset";
|
||||
button.style.color = "unset";
|
||||
button.style.opacity = "50%";
|
||||
}
|
||||
// Show the specific tab content
|
||||
(document.getElementById(pageName) as HTMLElement).style.display = "block";
|
||||
@ -287,10 +287,8 @@ function openPage(pageName: string, color: string) {
|
||||
let activeButton = document.getElementById(
|
||||
pageName + "Button"
|
||||
) as HTMLElement;
|
||||
activeButton.style.textDecoration = "underline";
|
||||
activeButton.style.fontWeight = "bold";
|
||||
activeButton.style.backgroundColor = "#3366cc";
|
||||
activeButton.style.color = "white";
|
||||
activeButton.style.opacity = "100%";
|
||||
document.body.style.backgroundColor = color;
|
||||
}
|
||||
|
||||
@ -315,22 +313,22 @@ export default function Rankings() {
|
||||
<SelectUser {...{ user, setUser, players, setPlayers }} />
|
||||
{user.length === 1 && (
|
||||
<>
|
||||
<div className="container">
|
||||
<button
|
||||
className="tablink"
|
||||
id="ChemistryButton"
|
||||
onClick={() => openPage("Chemistry", "aliceblue")}
|
||||
>
|
||||
Chemistry
|
||||
</button>
|
||||
<button
|
||||
className="tablink"
|
||||
id="MVPButton"
|
||||
onClick={() => openPage("MVP", "aliceblue")}
|
||||
>
|
||||
MVP
|
||||
</button>
|
||||
</div>
|
||||
<div className="container navbar">
|
||||
<button
|
||||
className="tablink"
|
||||
id="ChemistryButton"
|
||||
onClick={() => openPage("Chemistry", "aliceblue")}
|
||||
>
|
||||
🧪 Chemistry
|
||||
</button>
|
||||
<button
|
||||
className="tablink"
|
||||
id="MVPButton"
|
||||
onClick={() => openPage("MVP", "aliceblue")}
|
||||
>
|
||||
🏆 MVP
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="Chemistry" className="tabcontent">
|
||||
<Chemistry {...{ user, players }} />
|
||||
|
Loading…
x
Reference in New Issue
Block a user