Fix eslint errors

This commit is contained in:
Daniel Schädler 2025-03-16 14:03:48 +01:00
parent 30ad58c1d8
commit 65ed8df87f
10 changed files with 51 additions and 45 deletions

View File

@ -3,11 +3,6 @@ import {useRouter} from 'next/router';
import React from 'react'; import React from 'react';
class LinkButtonComponent extends React.Component { class LinkButtonComponent extends React.Component {
static defaultProps = {
outline: true,
color: 'secondary'
};
handleClick(e) { handleClick(e) {
e.preventDefault(); e.preventDefault();
this.props.router.push(this.props.href); this.props.router.push(this.props.href);
@ -22,6 +17,11 @@ class LinkButtonComponent extends React.Component {
} }
} }
LinkButtonComponent.defaultProps = {
outline: true,
color: 'secondary'
};
export function LinkButton(props) { export function LinkButton(props) {
const router = useRouter(); const router = useRouter();
return (<LinkButtonComponent {...props} router={router}/>); return (<LinkButtonComponent {...props} router={router}/>);

View File

@ -127,7 +127,11 @@ export class Match extends React.Component {
<Card className={'shadow-sm match '} onClick={this.toggleModal}> <Card className={'shadow-sm match '} onClick={this.toggleModal}>
<div className="d-flex flex-row"> <div className="d-flex flex-row">
<CardBody className={borderClass + ' border py-2 ' + cardClass + ' ' + styles.match_bg}> <CardBody className={borderClass + ' border py-2 ' + cardClass + ' ' + styles.match_bg}>
<MatchTable match={this.state.match} stageLevel={this.props.stageLevel} borderColor={borderClass}/> <MatchTable
match={this.state.match}
stageLevel={this.props.stageLevel}
borderColor={borderClass}
/>
</CardBody> </CardBody>
<span className="badge bg-secondary align-items-center"> <span className="badge bg-secondary align-items-center">
{groupInformation} {groupInformation}

View File

@ -41,9 +41,14 @@ export function MatchTable(props) {
</tbody> </tbody>
</Table>); </Table>);
} else { } else {
const team1Id = props.stageLevel !== undefined ? `favorite-team-level-${props.stageLevel}-${props.match.team1.id}` : undefined; let team1Id; let team2Id;
const team2Id = props.stageLevel !== undefined ? `favorite-team-level-${props.stageLevel}-${props.match.team2.id}` : undefined; if (props.stageLevel !== undefined) {
team1Id = `favorite-team-level-${props.stageLevel}-${props.match.team1.id}`;
team2Id = `favorite-team-level-${props.stageLevel}-${props.match.team2.id}`;
} else {
team1Id = undefined;
team2Id = undefined;
}
return (<Table className='mb-0'> return (<Table className='mb-0'>
<tbody> <tbody>
<tr id={team1Id}> <tr id={team1Id}>

View File

@ -41,7 +41,13 @@ export function getTournamentMatches(tournamentId, successCallback, errorCallbac
} }
getRequest(getState(), '/tournaments/' + tournamentId + '/matches' + matchFilter) getRequest(getState(), '/tournaments/' + tournamentId + '/matches' + matchFilter)
.then(response => { .then(response => {
successCallback(response.status, response.data.sort((a, b) => a.position > b.position).map(match => convertMatch(match))); successCallback(
response.status, response.data.sort(
(a, b) => a.position > b.position
).map(
match => convertMatch(match)
)
);
}) })
.catch(errorCallback); .catch(errorCallback);
} }

View File

@ -141,8 +141,8 @@ class CreateTournamentForm extends React.Component {
</Col> </Col>
</Row> </Row>
<WarningPopup <WarningPopup
text={'Füge bitte noch ' + (this.state.groupAdvance - this.state.teams.length) text={'Füge bitte noch ' + (this.state.groupAdvance - this.state.teams.length) +
+ ' Team(s) hinzu, um ' + this.state.groupAdvance + ' Team(s) im Playoff zu haben.'} ' Team(s) hinzu, um ' + this.state.groupAdvance + ' Team(s) im Playoff zu haben.'}
shown={this.state.teams.length < this.state.groupAdvance}/> shown={this.state.teams.length < this.state.groupAdvance}/>
</FormGroup> </FormGroup>
</Collapse> </Collapse>

View File

@ -9,8 +9,6 @@ import {TurniereNavigation} from '../js/components/Navigation';
import {BigImage} from '../js/components/BigImage'; import {BigImage} from '../js/components/BigImage';
import {Footer} from '../js/components/Footer'; import {Footer} from '../js/components/Footer';
config.autoAddCss = false;
function Main() { function Main() {
return (<div className="main"> return (<div className="main">
<Marketing/> <Marketing/>
@ -73,8 +71,8 @@ function MainBottomSummary() {
<div className="col-lg-6"> <div className="col-lg-6">
<h2>Ich habe einen Turniercode bekommen. Was nun?</h2> <h2>Ich habe einen Turniercode bekommen. Was nun?</h2>
<p> <p>
Der Turniercode führt dich direkt zu einem Turnier. Gebe dafür den Code <a className="text-success" Der Turniercode führt dich direkt zu einem Turnier. Gebe dafür den Code
href="#turniercode-form">oben</a> ein, <a className="text-success" href="#turniercode-form">oben</a> ein,
dann wirst du sofort weitergeleitet. </p> dann wirst du sofort weitergeleitet. </p>
</div> </div>
</div> </div>

View File

@ -9,11 +9,11 @@ import {Footer} from '../js/components/Footer';
import TournamentList from '../js/components/TournamentList'; import TournamentList from '../js/components/TournamentList';
import RequireLogin from '../js/components/RequireLogin'; import RequireLogin from '../js/components/RequireLogin';
import { LinkButton } from '../js/components/LinkButton'; import {LinkButton} from '../js/components/LinkButton';
class PrivateTournamentsPage extends React.Component { class PrivateTournamentsPage extends React.Component {
render() { render() {
return (<RequireLogin loginMessage='Sie müssen angemeldet sein, um Ihre privaten Turniere zu sehen.'> return (<RequireLogin loginMessage="Sie müssen angemeldet sein, um Ihre privaten Turniere zu sehen.">
<div className="main generic-fullpage-bg"> <div className="main generic-fullpage-bg">
<Head> <Head>
<title>Private Turniere: turnie.re</title> <title>Private Turniere: turnie.re</title>
@ -42,10 +42,10 @@ function PrivateTournamentsPageContent(props) {
</Container> </Container>
<Container className="pb-5 pt-3"> <Container className="pb-5 pt-3">
<ButtonGroup> <ButtonGroup>
<LinkButton href="/list" outline={false} color='primary'>zu den öffentlichen Turnieren</LinkButton> <LinkButton href="/list" outline={false} color="primary">zu den öffentlichen Turnieren</LinkButton>
{ {
props.isSignedIn && props.isSignedIn &&
<LinkButton href="/create" outline={false} color='success'>neues Turnier erstellen</LinkButton> <LinkButton href="/create" outline={false} color="success">neues Turnier erstellen</LinkButton>
} }
</ButtonGroup> </ButtonGroup>
</Container> </Container>
@ -57,7 +57,7 @@ class PrivateTournamentsCard extends React.Component {
return (<Card className="shadow"> return (<Card className="shadow">
<CardBody> <CardBody>
<h1 className="custom-font">Private Turniere</h1> <h1 className="custom-font">Private Turniere</h1>
<TournamentList type='private'/> <TournamentList type="private"/>
</CardBody> </CardBody>
</Card>); </Card>);
} }

View File

@ -4,7 +4,7 @@ import {ErrorPageComponent} from '../js/components/ErrorComponents';
import {getTournament} from '../js/redux/tournamentApi'; import {getTournament} from '../js/redux/tournamentApi';
import { import {
Col, Col,
Container, Navbar, NavbarBrand, NavItem, Row, Spinner Container, Row, Spinner
} from 'reactstrap'; } from 'reactstrap';
import {QRCodeSVG} from 'qrcode.react'; import {QRCodeSVG} from 'qrcode.react';
import {Group} from '../js/components/GroupStage'; import {Group} from '../js/components/GroupStage';
@ -14,22 +14,22 @@ function FullscreenPage(props) {
let logo; let logo;
if (props.showLogo) { if (props.showLogo) {
logo = <Col> logo = <Col>
<div className="d-flex justify-content-center align-items-center"> <div className="d-flex justify-content-center align-items-center">
<img height='300' width='300' src='/static/images/bpwstr_logo.png'></img> <img height="300" width="300" src="/static/images/bpwstr_logo.png"></img>
</div> </div>
</Col>; </Col>;
} else { } else {
logo = <div />; logo = <div/>;
} }
return (<div> return (<div>
<Container className='fs-5' fluid> <Container className="fs-5" fluid>
<Row className='row-cols-4'> <Row className="row-cols-4">
{props.groups.map(group => <Col className='mb-2'><Group group={group} key={group.id}/></Col>)} {props.groups.map(group => <Col className="mb-2"><Group group={group} key={group.id}/></Col>)}
<Col> <Col>
<div className="d-flex justify-content-center align-items-center"> <div className="d-flex justify-content-center align-items-center">
<QRCodeSVG <QRCodeSVG
className='shadow mx-auto' className="shadow mx-auto"
value='https://qr.bpwstr.de/2' value="https://qr.bpwstr.de/2"
size="300" size="300"
/> />
</div> </div>
@ -40,13 +40,6 @@ function FullscreenPage(props) {
</div>); </div>);
} }
function FullscreenPageHeader(props) {
return (<Navbar color='light' className='mb-4 border-bottom py-0'>
<NavbarBrand>{props.title}</NavbarBrand>
{props.page}/{props.maxPage}
</Navbar>);
}
class Main extends React.Component { class Main extends React.Component {
static async getInitialProps({query}) { static async getInitialProps({query}) {
@ -121,9 +114,9 @@ class Main extends React.Component {
<Head> <Head>
<title>Vollbild-Ansicht: turnie.re</title> <title>Vollbild-Ansicht: turnie.re</title>
</Head> </Head>
<Container className='p-5 text-center text-secondary'> <Container className="p-5 text-center text-secondary">
<Spinner size='sm'/> <Spinner size="sm"/>
<span className='ml-3'>lade Vollbild-Ansicht</span> <span className="ml-3">lade Vollbild-Ansicht</span>
</Container> </Container>
</div>); </div>);
} }

View File

@ -3,7 +3,7 @@ import React from 'react';
import {ErrorPageComponent} from '../js/components/ErrorComponents'; import {ErrorPageComponent} from '../js/components/ErrorComponents';
import {getTournamentMatches, getTournamentMeta} from '../js/redux/tournamentApi'; import {getTournamentMatches, getTournamentMeta} from '../js/redux/tournamentApi';
import { import {
Col, Container, DropdownItem, DropdownMenu, DropdownToggle, Navbar, NavbarBrand, NavItem, Row, UncontrolledDropdown, Col, Container, DropdownItem, DropdownMenu, DropdownToggle, Navbar, NavbarBrand, Row, UncontrolledDropdown,
Spinner Spinner
} from 'reactstrap'; } from 'reactstrap';
import {Match} from '../js/components/Match'; import {Match} from '../js/components/Match';