mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-09 20:30:54 -05:00
* Got something going * Style overwrites * width != height * More playing with lines * Migrations * Start bracket initial * Unhardcode stage generation params * Link to match page * Matches page initial * Support directly adding seed to map list generator * Add docs * Maps in matches page * Add invariant about tie breaker map pool * Fix PICNIC lacking tie breaker maps * Only link in bracket when tournament has started * Styled tournament roster inputs * Prefer IGN in tournament match page * ModeProgressIndicator * Some conditional rendering * Match action initial + better error display * Persist bestOf in DB * Resolve best of ahead of time * Move brackets-manager to core * Score reporting works * Clear winner on score report * ModeProgressIndicator: highlight winners * Fix inconsistent input * Better text when submitting match * mapCountPlayedInSetWithCertainty that works * UNDO_REPORT_SCORE implemented * Permission check when starting tournament * Remove IGN from upsert * View match results page * Source in DB * Match page waiting for teams * Move tournament bracket to feature folder * REOPEN_MATCH initial * Handle proper resetting of match * Inline bracket-manager * Syncify * Transactions * Handle match is locked gracefully * Match page auto refresh * Fix match refresh called "globally" * Bracket autoupdate * Move fillWithNullTillPowerOfTwo to utils with testing * Fix map lists not visible after tournament started * Optimize match events * Show UI while in progress to members * Fix start tournament alert not being responsive * Teams can check in * Fix map list 400 * xxx -> TODO * Seeds page * Remove map icons for team page * Don't display link to seeds after tournament has started * Admin actions initial * Change captain admin action * Make all hooks ts * Admin actions functioning * Fix validate error not displaying in CatchBoundary * Adjust validate args order * Remove admin loader * Make delete team button menancing * Only include checked in teams to bracket * Optimize to.id route loads * Working show map list generator toggle * Update full tournaments flow * Make full tournaments work with many start times * Handle undefined in crud * Dynamic stage banner * Handle default strat if map list generation fails * Fix crash on brackets if less than 2 teams * Add commented out test for reference * Add TODO * Add players from team during register * TrustRelationship * Prefers not to host feature * Last before merge * Rename some vars * More renames
86 lines
2.2 KiB
TypeScript
86 lines
2.2 KiB
TypeScript
import { useCatch } from "@remix-run/react";
|
|
import { Button } from "~/components/Button";
|
|
import { useUser } from "~/modules/auth";
|
|
import {
|
|
ERROR_GIRL_IMAGE_PATH,
|
|
LOG_IN_URL,
|
|
SENDOU_INK_DISCORD_URL,
|
|
} from "~/utils/urls";
|
|
import { Image } from "./Image";
|
|
import { Main } from "./Main";
|
|
|
|
export function Catcher() {
|
|
const caught = useCatch();
|
|
const user = useUser();
|
|
|
|
if (!caught)
|
|
return (
|
|
<Main>
|
|
<Image
|
|
className="m-0-auto"
|
|
path={ERROR_GIRL_IMAGE_PATH}
|
|
width={292}
|
|
height={243.5}
|
|
alt=""
|
|
/>
|
|
<h2 className="text-center">Error happened</h2>
|
|
<p className="text-center">
|
|
It seems like you encountered a bug. Sorry about that! Please report
|
|
details (your browser? what were you doing?) on{" "}
|
|
<a href={SENDOU_INK_DISCORD_URL}>our Discord</a> so it can be fixed.
|
|
</p>
|
|
</Main>
|
|
);
|
|
|
|
switch (caught.status) {
|
|
case 401:
|
|
return (
|
|
<Main>
|
|
<h2>Error 401 Unauthorized</h2>
|
|
{user ? (
|
|
<GetHelp />
|
|
) : (
|
|
<form action={LOG_IN_URL} method="post">
|
|
<p className="button-text-paragraph">
|
|
You should try{" "}
|
|
<Button type="submit" variant="minimal">
|
|
logging in
|
|
</Button>
|
|
</p>
|
|
</form>
|
|
)}
|
|
</Main>
|
|
);
|
|
case 404:
|
|
return (
|
|
<Main>
|
|
<h2>Error {caught.status} - Page not found</h2>
|
|
<GetHelp />
|
|
</Main>
|
|
);
|
|
default:
|
|
return (
|
|
<Main>
|
|
<h2>Error {caught.status}</h2>
|
|
<GetHelp />
|
|
<div className="text-sm text-lighter font-semi-bold">
|
|
Please include the message below if any and an explanation on what
|
|
you were doing:
|
|
</div>
|
|
{caught.data ? (
|
|
<pre>{JSON.stringify(JSON.parse(caught.data), null, 2)}</pre>
|
|
) : null}
|
|
</Main>
|
|
);
|
|
}
|
|
}
|
|
|
|
function GetHelp() {
|
|
return (
|
|
<p className="mt-2">
|
|
If you need assistance you can ask for help on{" "}
|
|
<a href={SENDOU_INK_DISCORD_URL}>our Discord</a>
|
|
</p>
|
|
);
|
|
}
|