Some Code Cleanup

This commit is contained in:
2023-12-25 21:54:40 +01:00
parent a2687083e0
commit 3108d9bf20
61 changed files with 305 additions and 247 deletions

View File

@@ -22,7 +22,7 @@
import wrap from "svelte-spa-router/wrap";
import Router, {replace} from "svelte-spa-router";
import {get} from "svelte/store";
import {tokenStore} from "../repo/repo";
import {tokenStore} from "@repo/repo";
const routes: RouteDefinition = {
'/': wrap({asyncComponent: () => import('./pages/Home.svelte'), conditions: detail => get(tokenStore) != ""}),

View File

@@ -20,8 +20,8 @@
<script lang="ts">
import {Input, Label, Select} from "flowbite-svelte";
import TypeAheadSearch from "./TypeAheadSearch.svelte";
import {gamemodes, groups, maps, players} from "../../stores/stores";
import type {Team} from '../../types/team.js';
import {gamemodes, groups, maps, players} from "@stores/stores.ts";
import type {Team} from "@type/team.ts";
export let teams: Team[] = [];
export let blueTeam: string;
@@ -29,8 +29,8 @@
export let start = "";
export let gamemode = "";
export let map = "";
export let kampfleiter = "";
export let group = "";
export let kampfleiter: string | undefined = "";
export let group: string | null = "";
export let groupSearch = "";
$: selectPlayers = $players.map(player => {

View File

@@ -18,7 +18,7 @@
-->
<script lang="ts">
import {Button, Dropdown, DropdownItem, Search} from 'flowbite-svelte'
import {Button, Dropdown, Search} from 'flowbite-svelte'
export let selected: string | null = null
export let items: {name: string, value: string}[] = []

View File

@@ -19,11 +19,11 @@
<script lang="ts">
import {ArrowLeftSolid} from "flowbite-svelte-icons";
import {Button, Card, Input, Label, Navbar, NavBrand, NavHamburger, NavUl, Spinner} from "flowbite-svelte";
import {pageRepo} from "../../repo/repo";
import {Button, Card, Navbar, NavBrand, Spinner} from "flowbite-svelte";
import {pageRepo} from "@repo/repo.ts";
import {mapToMap, nameRegex} from "../util.ts";
import TypeAheadSearch from "../components/TypeAheadSearch.svelte";
import {branches} from "../../stores/stores.ts";
import {branches} from "@stores/stores.ts";
import Editor from "./edit/Editor.svelte";
$: pagesFuture = $pageRepo.listPages(selectedBranch);

View File

@@ -18,11 +18,11 @@
-->
<script lang="ts">
import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import {Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import EventEdit from "./event/EventEdit.svelte";
import {ArrowLeftSolid} from "flowbite-svelte-icons";
import FightList from "./event/FightList.svelte";
import {eventRepo} from "../../repo/repo";
import {eventRepo} from "@repo/repo.ts";
import TeamList from "./event/TeamList.svelte";
export let params: { id: number };

View File

@@ -18,15 +18,12 @@
-->
<script lang="ts">
import {Avatar, Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import EventEdit from "./event/EventEdit.svelte";
import {Navbar, NavBrand, Spinner, TabItem, Tabs} from "flowbite-svelte";
import {ArrowLeftSolid} from "flowbite-svelte-icons";
import FightList from "./event/FightList.svelte";
import {eventRepo} from "../../repo/repo";
import TeamList from "./event/TeamList.svelte";
import {eventRepo} from "@repo/repo.ts";
import GroupGenerator from "./generate/GroupGenerator.svelte";
export let params: { id: number } = {};
export let params: { id: number };
let id = params.id;
let event = $eventRepo.getEvent(id.toString());

View File

@@ -18,13 +18,12 @@
-->
<script lang="ts">
import {Button, Modal, Navbar, NavBrand, NavHamburger, NavLi, NavUl, Spinner} from "flowbite-svelte";
import {replace} from "svelte-spa-router";
import {PlusSolid} from "flowbite-svelte-icons";
import EventCard from "./home/EventCard.svelte";
import CreateEventModal from "./home/CreateEventModal.svelte";
import {eventRepo, tokenStore} from "../../repo/repo";
import {eventRepo, tokenStore} from "@repo/repo.ts";
let events = $eventRepo.listEvents()
let showAdd = false

View File

@@ -21,8 +21,8 @@
import {Button, Input, Label, Spinner, Toast} from "flowbite-svelte";
import {fly} from "svelte/transition";
import {replace} from "svelte-spa-router";
import {EyeOutline, EyeSlashOutline, EyeSolid} from "flowbite-svelte-icons";
import {fetchWithToken, tokenStore} from "../../repo/repo";
import {EyeOutline, EyeSlashOutline} from "flowbite-svelte-icons";
import {fetchWithToken, tokenStore} from "@repo/repo.ts";
let show = false;
let loading = false;

View File

@@ -20,10 +20,9 @@
<script lang="ts">
import {Button, Card, Checkbox, Input, Label, Navbar, NavBrand, Radio, Spinner} from "flowbite-svelte";
import {ArrowLeftSolid} from "flowbite-svelte-icons";
import {players} from "../../stores/stores.ts";
import {permsRepo} from "../../repo/repo.ts";
import {players} from "@stores/stores.ts";
import {permsRepo} from "@repo/repo.ts";
import {capitalize} from "../util.ts";
import type {Player} from "../../types/data.ts";
let search = "";
$: lowerCaseSearch = search.toLowerCase();

View File

@@ -18,12 +18,12 @@
-->
<script lang="ts">
import {Spinner, Toolbar, ToolbarButton, ToolbarGroup, Tooltip} from "flowbite-svelte";
import {Spinner, Toolbar, ToolbarButton, ToolbarGroup} from "flowbite-svelte";
import {json} from "@codemirror/lang-json";
import CodeMirror from "svelte-codemirror-editor";
import {pageRepo} from "../../../repo/repo.ts";
import {pageRepo} from "@repo/repo.ts";
import {base64ToBytes} from "../../util.ts";
import type {Page} from "../../../types/page.ts";
import type {Page} from "@type/page.ts";
import {materialDark} from '@ddietr/codemirror-themes/material-dark.js'
import {createEventDispatcher} from "svelte";
import MDEMarkdownEditor from "./MDEMarkdownEditor.svelte";

View File

@@ -18,13 +18,13 @@
-->
<script lang="ts">
import type {ExtendedEvent} from "../../../types/event.js";
import {Button, Heading, Input, Label, Modal, Range, Select, Toast, Toggle} from "flowbite-svelte";
import {schemTypes} from "../../../stores/stores";
import type {ExtendedEvent} from "@type/event.ts";
import {Button, Input, Label, Modal, Range, Select, Toast, Toggle} from "flowbite-svelte";
import {schemTypes} from "@stores/stores.ts";
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc"
import type {UpdateEvent} from "../../../repo/event.js";
import {eventRepo} from "../../../repo/repo";
import type {UpdateEvent} from "@repo/event.ts";
import {eventRepo} from "@repo/repo.ts";
import ErrorModal from "../../components/ErrorModal.svelte";
import {replace} from "svelte-spa-router";
import {CheckCircleOutline} from "flowbite-svelte-icons";
@@ -43,7 +43,7 @@
let spectateSystem = event.spectateSystem;
let errorOpen = false;
let error: Error = undefined;
let error: any = undefined;
let deleteOpen = false;
$: deadlineDate = dayjs(deadline);

View File

@@ -18,13 +18,13 @@
-->
<script lang="ts">
import {EditOutline, InboxSolid, TrashBinOutline} from "flowbite-svelte-icons";
import {Button, Checkbox, Modal, Toolbar, ToolbarButton} from "flowbite-svelte";
import type {EventFight, ExtendedEvent} from "../../../types/event.js";
import {EditOutline, TrashBinOutline} from "flowbite-svelte-icons";
import {Button, Modal, Toolbar, ToolbarButton} from "flowbite-svelte";
import type {EventFight, ExtendedEvent} from "@type/event.ts";
import FightEditModal from "./modals/FightEditModal.svelte";
import {createEventDispatcher, onMount} from "svelte";
import {fightRepo} from "../../../repo/repo";
import {isWide} from "../../../stores/stores";
import {createEventDispatcher} from "svelte";
import {fightRepo} from "@repo/repo.ts";
import {isWide} from "@stores/stores.ts";
export let fight: EventFight;
export let data: ExtendedEvent;

View File

@@ -18,7 +18,7 @@
-->
<script lang="ts">
import type {EventFight, ExtendedEvent} from "../../../types/event.js";
import type {EventFight, ExtendedEvent} from "@type/event.ts";
import {
Button,
Checkbox, Input, Label,
@@ -36,12 +36,12 @@
} from "flowbite-svelte-icons";
import FightCard from "./FightCard.svelte";
import CreateFightModal from "./modals/CreateFightModal.svelte";
import {fightRepo} from "../../../repo/repo";
import {groups, players} from "../../../stores/stores";
import {fightRepo} from "@repo/repo.ts";
import {groups, players} from "@stores/stores.ts";
import TypeAheadSearch from "../../components/TypeAheadSearch.svelte";
import type {UpdateFight} from "../../../repo/fight.js";
import type {UpdateFight} from "@repo/fight.ts";
import dayjs from "dayjs";
import * as duration from "dayjs/plugin/duration"
import duration from "dayjs/plugin/duration"
dayjs.extend(duration)
export let data: ExtendedEvent;

View File

@@ -18,8 +18,8 @@
-->
<script lang="ts">
import {Avatar, Button, Modal} from "flowbite-svelte";
import type {ExtendedEvent} from "../../../types/event.js";
import {Avatar} from "flowbite-svelte";
import type {ExtendedEvent} from "@type/event.ts";
export let data: ExtendedEvent;
</script>

View File

@@ -19,10 +19,9 @@
<script lang="ts">
import {Button, Modal} from "flowbite-svelte";
import type {ExtendedEvent} from "../../../../types/event.js";
import type {ExtendedEvent} from "@type/event.ts";
import FightEditPart from "../../../components/FightEditPart.svelte";
import {fightRepo} from "../../../../repo/repo";
import type {CreateFight} from "../../../../repo/fight.ts";
import {fightRepo} from "@repo/repo.ts";
import ErrorModal from "../../../components/ErrorModal.svelte";
import {createEventDispatcher} from "svelte";
import dayjs from "dayjs";
@@ -40,12 +39,12 @@
let gamemode: string = "";
let map: string = "";
let kampfleiter: string | null = null;
let kampfleiter: string | undefined = undefined;
let group: string | null = null;
let groupSearch = "";
let errorOpen = false;
let error: Error | null = null;
let error: any = undefined;
$: canCreate = blueTeam !== "" && redTeam !== "" && start !== "" && gamemode !== "" && map !== "";

View File

@@ -18,11 +18,11 @@
-->
<script lang="ts">
import {Button, Input, Label, Modal, Select} from "flowbite-svelte";
import type {EventFight, ExtendedEvent} from "../../../../types/event.js";
import {Button, Modal} from "flowbite-svelte";
import type {EventFight, ExtendedEvent} from "@type/event.ts";
import FightEditPart from "../../../components/FightEditPart.svelte";
import type {UpdateFight} from "../../../../repo/fight.js";
import {fightRepo} from "../../../../repo/repo";
import type {UpdateFight} from "@repo/fight.ts";
import {fightRepo} from "@repo/repo.ts";
import ErrorModal from "../../../components/ErrorModal.svelte";
import {createEventDispatcher} from "svelte";
import dayjs from "dayjs";
@@ -37,14 +37,14 @@
let redTeam = fight.redTeam.id.toString();
let blueTeam = fight.blueTeam.id.toString();
let start = dayjs(fight.start).utc(true).toISOString().slice(0, -1);
let kampfleiter = fight.kampfleiter.id.toString();
let kampfleiter = fight.kampfleiter?.id.toString();
let gamemode = fight.spielmodus
let map = fight.map;
let group = fight.group;
let groupSearch = fight.group ?? "";
let errorOpen = false;
let error = undefined;
let error: any = undefined;
let dispatch = createEventDispatcher();
function save() {

View File

@@ -36,7 +36,7 @@
}
</script>
<div class="w-56 bg-gray-800 p-4 rounded" class:border={dragover} class:m-px={!dragover} on:drop={handleDrop} on:dragover={handleDragOver} on:dragleave={() => dragover = false}>
<div class="w-56 bg-gray-800 p-4 rounded" class:border={dragover} class:m-px={!dragover} on:drop={handleDrop} on:dragover={handleDragOver} on:dragleave={() => dragover = false} role="none">
<slot></slot>
</div>

View File

@@ -18,14 +18,14 @@
-->
<script lang="ts">
import type {ExtendedEvent} from "../../../types/event.js";
import type {ExtendedEvent} from "@type/event.ts";
import TeamChip from "./TeamChip.svelte";
import type {Team} from "../../../types/team.js";
import type {Team} from "@type/team.ts";
import DragAcceptor from "./DragAcceptor.svelte";
import {Button, Input, Label, Modal, Range, Select} from "flowbite-svelte";
import {gamemodes, maps} from "../../../stores/stores";
import {gamemodes, maps} from "@stores/stores.ts";
import {PlusSolid} from "flowbite-svelte-icons";
import {fightRepo} from "../../../repo/repo";
import {fightRepo} from "@repo/repo.ts";
import {replace} from "svelte-spa-router";
import dayjs from "dayjs";

View File

@@ -18,7 +18,7 @@
-->
<script lang="ts">
import type {Team} from "../../../types/team.js";
import type {Team} from "@type/team.ts";
import {brightness, colorFromTeam, lighten} from "../../util";
export let team: Team;
@@ -30,7 +30,8 @@
style:background-color={hover ? lighten(colorFromTeam(team)) : colorFromTeam(team)} class:text-black={brightness(colorFromTeam(team))} draggable="true"
on:dragstart
on:mouseenter={() => hover = true}
on:mouseleave={() => hover = false}>
on:mouseleave={() => hover = false}
role="figure">
<span>{team.name}</span>
</div>

View File

@@ -21,14 +21,14 @@
import {Button, Input, Label, Modal} from "flowbite-svelte";
import {createEventDispatcher} from "svelte";
import ErrorModal from "../../components/ErrorModal.svelte";
import {eventRepo} from "../../../repo/repo";
import {eventRepo} from "@repo/repo.ts";
import dayjs from "dayjs";
export let open = false;
const dispatch = createEventDispatcher();
let errorOpen = false;
let error = undefined;
let error: any = undefined;
let eventName = "";
let start = "";
@@ -47,7 +47,7 @@
})
dispatch("create");
open = false;
} catch (e) {
} catch (e: any) {
error = e;
errorOpen = true;
open = false;

View File

@@ -20,7 +20,7 @@
<script lang="ts">
import {Card} from "flowbite-svelte";
import {link} from 'svelte-spa-router'
import type {ShortEvent} from "../../../types/event.js";
import type {ShortEvent} from "@type/event.ts";
export let event: ShortEvent;

View File

@@ -18,8 +18,8 @@
*/
import Color from "color";
import type {Team} from "../types/team.js";
import type {ListPage, PageList} from "../types/page.ts";
import type {Team} from "@type/team.js";
import type {ListPage, PageList} from "@type/page.ts";
export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);
@@ -28,7 +28,7 @@ export const nameRegex = new RegExp("(?!.*\/).+(?=\\.(md|json))");
export function mapToMap(pages: PageList): Map<string, ListPage[]> {
const map = new Map();
for (const page of pages) {
let folder = page.path.substring(0, page.path.indexOf(nameRegex.exec(page.path)!![0]));
const folder = page.path.substring(0, page.path.indexOf(nameRegex.exec(page.path)![0]));
if (!map.has(folder)) {
map.set(folder, []);
}
@@ -39,47 +39,47 @@ export function mapToMap(pages: PageList): Map<string, ListPage[]> {
export function colorFromTeam(team: Team): string {
switch (team.color) {
case "1":
return "#0000AA";
case "2":
return "#00AA00";
case "3":
return "#00AAAA";
case "4":
return "#AA0000";
case "5":
return "#AA00AA";
case "6":
return "#FFAA00";
case "7":
return "#AAAAAA";
case "8":
return "#555555";
case "9":
return "#5555FF";
case "a":
return "#55FF55";
case "b":
return "#55FFFF";
case "c":
return "#FF5555";
case "d":
return "#FF55FF";
case "e":
return "#FFFF55";
case "f":
return "#FFFFFF";
default:
return "#000000";
case "1":
return "#0000AA";
case "2":
return "#00AA00";
case "3":
return "#00AAAA";
case "4":
return "#AA0000";
case "5":
return "#AA00AA";
case "6":
return "#FFAA00";
case "7":
return "#AAAAAA";
case "8":
return "#555555";
case "9":
return "#5555FF";
case "a":
return "#55FF55";
case "b":
return "#55FFFF";
case "c":
return "#FF5555";
case "d":
return "#FF55FF";
case "e":
return "#FFFF55";
case "f":
return "#FFFFFF";
default:
return "#000000";
}
}
export function lighten(color: string) {
return brightness(color) ? Color(color).lighten(0.2).hex() : Color(color).darken(0.2).hex()
return brightness(color) ? Color(color).lighten(0.2).hex() : Color(color).darken(0.2).hex();
}
export function brightness(color: string) {
return Color(color).isLight()
return Color(color).isLight();
}
export function base64ToBytes(base64: string) {