{"version":3,"sources":["serviceWorker.ts","app/api/agent.ts","app/models/enums.ts","app/stores/userStore.ts","app/stores/commonStore.ts","app/stores/modalStore.ts","app/stores/competitionStore.ts","app/stores/participantStore.ts","app/stores/teamStore.ts","app/stores/rootStore.ts","app/common/form/TextInput.tsx","app/common/form/ErrorMessage.tsx","features/user/LoginForm.tsx","features/nav/NavBar.tsx","features/home/HomePage.tsx","app/layout/NotFound.tsx","app/layout/LoadingComponent.tsx","app/common/modals/ModalContainer.tsx","app/layout/PrivateRoute.tsx","features/competition/Dashboard/CompetitionListItem.tsx","features/competition/Dashboard/CompetitionList.tsx","features/competition/Dashboard/MobileRankingListItem.tsx","features/competition/Dashboard/CompetitionRanking.tsx","features/competition/Dashboard/CompetitionHighlights.tsx","features/competition/Dashboard/CompetitionDashboard.tsx","features/competition/Details/CompetitionDetailedHeader.tsx","features/competition/Details/CompetitionDetailedInfo.tsx","features/competition/Details/CompetitionDetails.tsx","features/participant/ParticipantHighlights.tsx","features/participant/ParticipantCompetitions.tsx","app/common/form/CheckBoxInput.tsx","features/participant/ParticipantEdit.tsx","features/participant/ParticipantDetails.tsx","features/participant/ParticipantPage.tsx","features/team/TeamMemberListItem.tsx","features/team/TeamHeader.tsx","features/team/TeamDetails.tsx","features/team/TeamDashboard.tsx","app/common/modals/ImageModalContainer.tsx","features/imageGallery/ImageGallery.tsx","features/staticcontent/Garage.tsx","features/staticcontent/PayPalButton.tsx","features/staticcontent/Sponsors.tsx","features/staticcontent/Impress.tsx","features/staticcontent/Footer.tsx","app/common/form/DateInput.tsx","app/models/competitionForm.ts","app/common/util/util.ts","app/common/form/NumberInput.tsx","features/participant/NewParticipantForm.tsx","features/competition/Create/CompetitionParticipantForm.tsx","features/competition/Create/CreatePage.tsx","features/user/RegisterForm.tsx","features/staticcontent/Tournament.tsx","features/staticcontent/Event.tsx","features/competition/EternalRanking/EternalRanking.tsx","features/staticcontent/SingleLeague.tsx","app/layout/App.tsx","app/layout/ScrollToTop.tsx","index.tsx"],"names":["Boolean","window","location","hostname","match","axios","defaults","baseURL","process","interceptors","request","use","config","token","localStorage","getItem","headers","Authorization","error","Promise","reject","response","undefined","message","toast","status","data","history","push","console","log","method","errors","hasOwnProperty","FilterType","responseBody","requests","url","get","then","body","post","put","apiTypes","User","current","login","user","register","Competition","availableData","list","params","details","id","ranking","year","highlights","create","competition","eternalranking","Participant","edit","participant","Team","Image","garage","tournament","exhibition","UserStore","rootStore","this","observable","computed","action","values","a","agent","runInAction","commonStore","setToken","modalStore","closeModal","CommonStore","reaction","setItem","removeItem","appLoaded","ModalStore","shallow","open","imagePath","caption","description","hasPrev","hasNext","openNext","openPrev","content","modal","imageSrc","imageModal","CompetitionStore","URLSearchParams","append","toString","page","predicate","forEach","value","key","has","Map","Ranking","loading","Details","cachedEnvelope","competitionCache","competitions","competitionCount","axiosParams","competitionsEnvelope","set","clear","cachedRanking","loadingInitial","yearsGreater2021","filter","c","length","splice","Highlights","cachedHighlights","activeIndex","activeTabIndex","delete","date","getFullYear","cachedEternal","eternalRanking","eternal","ParticipantStore","tabIndex","selectedTabIndex","participantList","participants","loadingParticipant","participantDetail","part","submittingParticipant","TeamStore","cachedTeam","teamCache","team","loadTeam","configure","enforceActions","RootStoreContext","createContext","userStore","competitionStore","participantStore","teamStore","TextInput","input","width","type","placeholder","meta","touched","Form","Field","Label","basic","color","ErrorMessage","text","Message","Header","statusText","Object","keys","Content","validate","combineValidators","email","isRequired","password","LoginForm","useContext","onSubmit","catch","FORM_ERROR","render","handleSubmit","submitting","submitError","invalid","pristine","dirtySinceLastSubmit","as","textAlign","name","component","Button","disabled","fluid","observer","logout","isLoggedIn","openModal","Menu","fixed","inverted","stackable","maxWidth","Container","Dropdown","item","floating","labeled","button","className","icon","style","marginLeft","DropdownItem","NavLink","exact","to","href","target","Icon","Link","minWidth","Item","header","marginRight","position","pointing","displayName","onClick","size","HomePage","Segment","src","floated","NotFound","Inline","primary","LoadingComponent","Dimmer","active","Loader","Modal","onClose","Component","rest","props","CompetitionListItem","competitionInfo","Group","link","format","parseISO","Description","margin","winnerName","participantCount","loadCompetitions","setPredicate","useEffect","Tab","Pane","List","divided","relaxed","map","MobileRankingListItem","rankingValue","Card","Meta","club","Grid","Row","columns","paddingTop","paddingBottom","Column","placing","participations","average","points","loadRanking","Detail","lastCompetitionDate","participantAverage","toFixed","jackpot","Table","celled","HeaderCell","Body","Cell","loadHighlights","unstackable","some","p","oneHundredEighties","bestleg9","bestleg10","bestleg11","bestleg12","bestleg13","bestleg14","bestleg15","bestleg16","bestleg17","bestleg18","bestleg19","participantId","rowSpan","participantName","participantClub","highlightCount","colSpan","highFinishes","loadAvailableData","setActiveTab","useState","panes","setPanes","temp","menuItem","marginBottom","TableBody","TableRow","TableCell","collapsing","TableFooter","fullWidth","menu","vertical","menuPosition","onTabChange","e","GridRow","verticalAlign","marginTop","GridColumn","Popup","trigger","reduce","handleParticipantEdit","positive","event","loadCompetition","ParticipantHighlights","Extra","Statistic","widths","Value","fontSize","display","justifyContent","alignItems","ParticipantCompetitions","itemsPerRow","getDayOfYear","horizontal","label","numberOfHighlights","CheckBoxInput","falseLabel","checked","labelText","setLabelText","Checkbox","toggle","onChange","ParticipantEdit","updateParticipant","initialValues","anonymize","ParticipantDetails","h","loadParticipantDetails","minHeight","TeamMemberListItem","teamMember","circular","onError","i","fullName","number","TeamHeader","openImageModal","handleImageClick","imageError","setImageError","rounded","cursor","captain","league","homeGameDay","colspan","tableUrl","rel","getTeam","tm","closeImageModal","closeIcon","paddingLeft","Actions","ImageGallery","images","openImageModalWithActions","currentIndex","openImage","imageIndex","title","loadNextImage","loadPreviousImage","imgs","Garage","setImages","imgsLoaded","setLoaded","TableHeader","PayPalButton","alt","Sponsors","centered","Impress","Footer","float","Date","DateInput","time","onBlur","onKeyDown","preventDefault","creator","creatorUser","CompetitionParticipantFormValues","getPointsFromPlacing","fromCompetitionParticipant","competitionParticipant","toICompetitionParticipant","participantFormValues","competitionId","parseInt","NumberInput","NewParticipantForm","initialValue","handleParticipantSubmit","existingParticipant","addNewParticipant","setParticipant","options","setOptions","newPartId","setNewPartId","selectPart","setSelectPart","AddNewParticipant","newParticipant","newOptions","onAddParticipant","form","selection","search","allowAdditions","onAddItem","loadParticipants","createCompetition","setCompetition","tableKey","setTableKey","setPlacing","participantToEdit","setParticipantToEdit","addDays","comp","existingParticipants","cp","index","indexOf","maxPlacing","Math","max","apply","random","userName","RegisterForm","Tournament","height","Event","loadEternalRanking","TableHeaderCell","oneEighties","bestLegs","SingleLeague","withRouter","setAppLoaded","getUser","finally","path","CompetitionDashboard","CompetitionDetails","TeamDashboard","ParticipantPage","EternalRanking","CreatePage","ScrollToTop","pathname","useLocation","scrollTo","dateFnsLocalizer","createBrowserHistory","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b51d4e8c.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import axios, { AxiosResponse } from \"axios\";\r\nimport { history } from \"../..\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IUser, IUserFormValues } from \"../models/user\";\r\nimport { ICompetitionEnvelope, ICompetition } from \"../models/competition\";\r\nimport { IRanking } from \"../models/ranking\";\r\nimport { IParticipantEnvelope, IParticipantDetail, IParticipant, IHighlightRanking, IEternalRanking } from \"../models/participant\";\r\nimport { ITeam } from \"../models/team\";\r\nimport { Competition as competitionForm } from \"../models/competitionForm\";\r\nimport IGalleryImage from \"../common/util/imageGallery\";\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_URL;\r\n\r\naxios.interceptors.request.use(\r\n (config) => {\r\n const token = window.localStorage.getItem(\"jwt\");\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(undefined, (error) => {\r\n if (error.message === \"Network Error\" && !error.response) {\r\n toast.error(\"Network error - make sure API is running!\");\r\n }\r\n const { status, data, config } = error.response;\r\n\r\n if (status === 404) {\r\n history.push(\"/notfound\");\r\n }\r\n if (status === 401) {\r\n console.log(error.response);\r\n }\r\n if (\r\n status === 400 &&\r\n config.method === \"get\" &&\r\n data.errors.hasOwnProperty(\"id\")\r\n ) {\r\n history.push(\"/notfound\");\r\n }\r\n if (status === 500) {\r\n toast.error(\"Server error - check the terminal for more info!\");\r\n }\r\n\r\n throw error.response;\r\n});\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nconst requests = {\r\n get: (url: string) => axios.get(url).then(responseBody),\r\n post: (url: string, body: {}) =>\r\n axios.post(url, body).then(responseBody),\r\n put: (url: string, body: {}) =>\r\n axios.put(url, body).then(responseBody),\r\n del: (url: string) => axios.delete(url).then(responseBody),\r\n postForm: (url: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append(\"File\", file);\r\n\r\n return axios\r\n .post(url, formData, {\r\n headers: { \"Content-type\": \"multipart/form-data\" },\r\n })\r\n .then(responseBody);\r\n },\r\n};\r\n\r\nconst User = {\r\n current: (): Promise => requests.get(\"/user\"),\r\n login: (user: IUserFormValues): Promise =>\r\n requests.post(\"/user/login\", user),\r\n register: (user: IUserFormValues): Promise =>\r\n requests.post(\"/user/register\", user),\r\n};\r\n\r\nconst Competition = {\r\n availableData: (): Promise => requests.get('competition/availabledata'),\r\n list: (params: URLSearchParams): Promise => {\r\n return axios\r\n .get(\"/competition\", { params: params })\r\n .then(responseBody)\r\n },\r\n details: (id: string): Promise => requests.get(`/competition/${id}`),\r\n ranking: (year: string): Promise => requests.get(`/ranking/ranking/?year=${year}`),\r\n highlights: (year: string): Promise => requests.get(`/ranking/highlights/?year=${year}`),\r\n create: (competition: competitionForm) => requests.post('/competition/create', competition),\r\n eternalranking: (): Promise => requests.get(`/ranking/eternalranking`)\r\n}\r\n\r\nconst Participant = {\r\n list: (params: URLSearchParams): Promise => {\r\n return axios\r\n .get(\"/participant\", { params: params })\r\n .then(responseBody)\r\n },\r\n details: (id: string): Promise => requests.get(`/participant/${id}`),\r\n edit: (participant: Partial) => requests.put(`/participant/${participant.id}`, participant)\r\n}\r\n\r\nconst Team = {\r\n details: (id: number): Promise => requests.get(`/team/${id}`),\r\n}\r\n\r\nconst Image = {\r\n garage: (): Promise => requests.get('/image/garage'),\r\n tournament: (): Promise => requests.get('/image/tournament'),\r\n exhibition: (): Promise => requests.get('/image/exhibition')\r\n}\r\n\r\n// const Profiles = {\r\n// get: (userName: string): Promise =>\r\n// requests.get(`/profiles/${userName}`),\r\n// uploadPhoto: (photo: Blob): Promise =>\r\n// requests.postForm(`/photos`, photo),\r\n// setMainPhoto: (id: string) => requests.post(`/photos/${id}/setMain`, {}),\r\n// deletePhoto: (id: string) => requests.del(`/photos/${id}`),\r\n// edit: (profile: IProfileFormValues) => requests.put(\"/profiles\", profile),\r\n// follow: (userName: string) =>\r\n// requests.post(`/profiles/${userName}/follow`, {}),\r\n// unfollow: (userName: string) => requests.del(`/profiles/${userName}/follow`),\r\n// listFollowings: (userName: string, predicate: string) =>\r\n// requests.get(`/profiles/${userName}/follow?predicate=${predicate}`),\r\n// listActivities: (userName: string, predicate: string) =>\r\n// requests.get(`/profiles/${userName}/activities?predicate=${predicate}`),\r\n// };\r\n\r\nconst apiTypes = {\r\n User,\r\n Competition,\r\n Participant,\r\n Team,\r\n Image\r\n};\r\n\r\nexport default apiTypes;\r\n","export enum FilterType {\r\n Ranking = 0,\r\n Highlights = 1,\r\n Details = 2\r\n}","import { observable, computed, action, runInAction } from \"mobx\";\r\nimport { IUser, IUserFormValues } from \"../models/user\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { history } from \"../..\";\r\n\r\nexport default class UserStore{\r\n rootStore: RootStore;\r\n constructor (rootStore: RootStore){\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable user: IUser | null = null;\r\n\r\n @computed get isLoggedIn() { return !!this.user}\r\n\r\n @action login = async (values: IUserFormValues) =>{\r\n try {\r\n const user = await agent.User.login(values);\r\n runInAction('Login success', () => {\r\n this.user = user;\r\n }); \r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n history.push('/competitions');\r\n } catch (error) {\r\n throw error;\r\n }\r\n } \r\n\r\n @action register = async (values: IUserFormValues) =>{\r\n try {\r\n const user = await agent.User.register(values); \r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n history.push('/competitions');\r\n } catch (error) {\r\n throw error;\r\n }\r\n } \r\n\r\n @action getUser = async() => {\r\n try {\r\n const user = await agent.User.current();\r\n runInAction(() =>{\r\n this.user = user;\r\n })\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n @action logout = () => {\r\n this.rootStore.commonStore.setToken(null);\r\n this.user = null;\r\n history.push('/');\r\n }\r\n}","import { RootStore } from \"./rootStore\";\r\nimport { observable, action, reaction } from \"mobx\";\r\n\r\nexport default class CommonStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.token, token => {\r\n console.log(\"Setting token: \", token)\r\n if (token){\r\n window.localStorage.setItem('jwt', token)\r\n } else {\r\n window.localStorage.removeItem('jwt');\r\n }\r\n }\r\n )\r\n }\r\n\r\n @observable token: string | null = window.localStorage.getItem('jwt');\r\n @observable appLoaded = false;\r\n\r\n @action setToken = (token: string | null) => {\r\n this.token = token;\r\n }\r\n\r\n @action setAppLoaded = () => {\r\n this.appLoaded = true;\r\n }\r\n}\r\n","import { RootStore } from \"./rootStore\";\r\nimport { observable, action } from \"mobx\";\r\n\r\nexport default class ModalStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable.shallow modal = {\r\n open: false,\r\n body: null,\r\n };\r\n\r\n @observable.shallow imageModal = {\r\n open: false,\r\n imagePath: \"\",\r\n caption: \"\",\r\n description: \"\",\r\n hasPrev: false,\r\n hasNext: false,\r\n openNext: () => {},\r\n openPrev: () => {},\r\n };\r\n\r\n @action openModal = (content: any) => {\r\n this.modal.open = true;\r\n this.modal.body = content;\r\n };\r\n\r\n @action closeModal = () => {\r\n this.modal.open = false;\r\n this.modal.body = null;\r\n };\r\n\r\n @action openImageModalWithActions = (\r\n caption: string,\r\n imageSrc: string,\r\n description: string = \"\",\r\n hasPrev: boolean = false,\r\n hasNext: boolean = false,\r\n openNext: () => void,\r\n openPrev: () => void\r\n ) => {\r\n this.imageModal.open = true;\r\n this.imageModal.imagePath = imageSrc;\r\n this.imageModal.caption = caption;\r\n this.imageModal.description = description;\r\n this.imageModal.openNext = openNext;\r\n this.imageModal.openPrev = openPrev;\r\n this.imageModal.hasNext = hasNext;\r\n this.imageModal.hasPrev = hasPrev;\r\n };\r\n\r\n @action openImageModal = (caption: string, imageSrc: string) => {\r\n this.imageModal.open = true;\r\n this.imageModal.imagePath = imageSrc;\r\n this.imageModal.caption = caption;\r\n };\r\n\r\n @action closeImageModal = () => {\r\n this.imageModal.open = false;\r\n this.imageModal.imagePath = \"\";\r\n this.imageModal.caption = \"\";\r\n this.imageModal.description = '';\r\n this.imageModal.openNext = () => {};\r\n this.imageModal.openPrev = () => {};\r\n this.imageModal.hasNext = false;\r\n this.imageModal.hasPrev = false;\r\n };\r\n}\r\n","import { RootStore } from \"./rootStore\";\r\nimport { observable, action, runInAction, computed } from \"mobx\";\r\nimport { ICompetitionInfo, ICompetition } from \"../models/competition\";\r\nimport agent from \"../api/agent\";\r\nimport { IRanking } from \"../models/ranking\";\r\nimport { toast } from \"react-toastify\";\r\nimport { FilterType } from \"../models/enums\";\r\nimport { IEternalRanking, IHighlightRanking } from \"../models/participant\";\r\nimport { Competition } from \"../models/competitionForm\";\r\nimport { history } from \"../..\";\r\n\r\nconst LIMIT = 60;\r\n\r\nexport default class CompetitionStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n // reaction(\r\n // () => this.predicate.keys(),\r\n // () => {\r\n // this.page = 0;\r\n // this.competitions = null;\r\n // this.loadCompetitions();\r\n // }\r\n // );\r\n }\r\n\r\n @observable competitionCache = new Map();\r\n\r\n @observable availableData: number[] = [];\r\n @observable competitionCount: number = 0;\r\n @observable competition: ICompetition | null = null;\r\n @observable loadingInitial = false;\r\n @observable loading = false;\r\n @observable page = 0;\r\n @observable predicate = new Map();\r\n @observable filterType = FilterType.Ranking;\r\n\r\n @observable ranking: IRanking | null = null;\r\n @observable highlights: IHighlightRanking[] | null = null;\r\n @observable competitions: ICompetitionInfo[] | null = null;\r\n @observable eternalRanking: IEternalRanking[] | null = null;\r\n @observable activeTabIndex = 0;\r\n\r\n @computed get axiosParams() {\r\n const params = new URLSearchParams();\r\n\r\n params.append(\"limit\", LIMIT.toString());\r\n params.append(\"offset\", `${this.page ? this.page * LIMIT : 0}`);\r\n this.predicate.forEach((value, key) => {\r\n params.append(key, value);\r\n });\r\n\r\n if (!params.has(\"year\")) {\r\n params.append(\"year\", \"2020\");\r\n }\r\n\r\n return params;\r\n }\r\n\r\n @action loadCompetitions = async () => {\r\n this.loading = true;\r\n\r\n let key = FilterType.Details + \"_\" + this.predicate.get(\"year\");\r\n let cachedEnvelope = this.competitionCache.get(key);\r\n if (cachedEnvelope) {\r\n this.loading = false;\r\n this.competitions = cachedEnvelope.competitions;\r\n this.competitionCount = cachedEnvelope.competitionCount;\r\n } else {\r\n try {\r\n const competitionsEnvelope = await agent.Competition.list(\r\n this.axiosParams\r\n );\r\n const { competitions, competitionCount } = competitionsEnvelope;\r\n runInAction(\"loading competition\", () => {\r\n this.competitionCache.set(key, competitionsEnvelope);\r\n this.competitionCount = competitionCount;\r\n this.competitions = competitions;\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(\"load competitions error\", () => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n };\r\n\r\n @action loadCompetition = async (id: string) => {\r\n this.loading = false;\r\n\r\n try {\r\n const competition = await agent.Competition.details(id);\r\n runInAction(\"loading competition\", () => {\r\n this.competition = competition;\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(\"load competition error\", () => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action setPage = (page: number) => {\r\n this.page = page;\r\n };\r\n\r\n @action setPredicate = (predicate: string, value: string | Date) => {\r\n this.predicate.clear();\r\n if (predicate !== \"all\") {\r\n this.predicate.set(predicate, value);\r\n }\r\n };\r\n\r\n @action loadRanking = async (year: string) => {\r\n this.loading = true;\r\n let key = FilterType.Ranking + \"_\" + year;\r\n let cachedRanking = this.competitionCache.get(key);\r\n if (cachedRanking) {\r\n this.loading = false;\r\n this.ranking = cachedRanking;\r\n } else {\r\n try {\r\n let ranking = await agent.Competition.ranking(year);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.competitionCache.set(key, ranking);\r\n this.ranking = ranking;\r\n });\r\n } catch (error) {\r\n runInAction(() => (this.loading = false));\r\n toast.error(\"Fehler beim Laden der Tabelle.\");\r\n console.log(error);\r\n }\r\n }\r\n };\r\n\r\n @action loadAvailableData = async () => {\r\n this.loadingInitial = true;\r\n try {\r\n let availableData = await agent.Competition.availableData();\r\n\r\n let yearsGreater2021 = availableData.filter(c => c > 2021).length;\r\n availableData.splice(yearsGreater2021, 0, 20202021);\r\n\r\n runInAction(() => {\r\n this.availableData = availableData;\r\n this.loadingInitial = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => (this.loadingInitial = false));\r\n toast.error(\"Fehler beim Bereitstellen der Daten.\");\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action loadHighlights = async (year: string) => {\r\n this.loading = true;\r\n let key = FilterType.Highlights + \"_\" + year;\r\n let cachedHighlights = this.competitionCache.get(key);\r\n if (cachedHighlights) {\r\n this.loading = false;\r\n this.highlights = cachedHighlights;\r\n } else {\r\n try {\r\n let highlights = await agent.Competition.highlights(year);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.competitionCache.set(key, highlights);\r\n this.highlights = highlights;\r\n });\r\n } catch (error) {\r\n runInAction(() => (this.loading = false));\r\n toast.error(\"Fehler beim Laden der Tabelle.\");\r\n console.log(error);\r\n }\r\n }\r\n };\r\n\r\n @action setActiveTab = (activeIndex: any) => {\r\n this.activeTabIndex = activeIndex;\r\n };\r\n\r\n @action createCompetition = async (competition: Competition) => {\r\n this.loading = true;\r\n try {\r\n await agent.Competition.create(competition);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.competitionCache.delete(FilterType.Ranking + \"_\" + competition.date.getFullYear())\r\n history.push(\"/competitions\");\r\n });\r\n } catch (error) {\r\n runInAction(() => (this.loading = false));\r\n toast.error(\"Fehler beim Speichern der Competition.\");\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action loadEternalRanking = async () => {\r\n this.loading = true;\r\n let key = \"eternal\";\r\n let cachedEternal = this.competitionCache.get(key);\r\n if (cachedEternal) {\r\n this.loading = false;\r\n this.eternalRanking = cachedEternal;\r\n } else {\r\n try {\r\n let eternal = await agent.Competition.eternalranking();\r\n runInAction(() => {\r\n this.loading = false;\r\n this.competitionCache.set(key, eternal);\r\n this.eternalRanking = eternal;\r\n });\r\n } catch (error) {\r\n runInAction(() => (this.loading = false));\r\n toast.error(\"Fehler beim Laden der ewigen Tabelle.\");\r\n console.log(error);\r\n }\r\n }\r\n };\r\n}\r\n","import { observable, action, runInAction } from \"mobx\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IParticipantDetail, IParticipant, IParticipantEnvelope } from \"../models/participant\";\r\n\r\nexport default class ParticipantStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable participantDetail: IParticipantDetail | null = null;\r\n @observable selectedTabIndex: number = 0;\r\n @observable loadingParticipant = false;\r\n @observable submittingParticipant = false;\r\n @observable participantList : IParticipantEnvelope | null = null;\r\n\r\n @action setSelectedTab = (tabIndex: number) => {\r\n this.selectedTabIndex = tabIndex;\r\n };\r\n\r\n \r\n @action addNewParticipant = (participant: IParticipant ) => {\r\n this.participantList!.participants.push(participant);\r\n };\r\n\r\n @action loadParticipants = async () => {\r\n try {\r\n const params = new URLSearchParams();\r\n\r\n params.append(\"limit\", '1000');\r\n params.append(\"offset\", '0');\r\n\r\n var participants = await agent.Participant.list(params);\r\n runInAction(() => {\r\n this.participantList = participants;\r\n });\r\n } catch (error) {\r\n toast.error(\"Beim Laden der Teilnehmer ist ein Fehler aufgetreten.\");\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action loadParticipantDetails = async (id: string) => {\r\n this.loadingParticipant = true;\r\n this.participantDetail = null;\r\n try {\r\n var part = await agent.Participant.details(id);\r\n runInAction(() => {\r\n this.loadingParticipant = false;\r\n this.participantDetail = part;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loadingParticipant = false;\r\n this.participantDetail = null;\r\n });\r\n\r\n toast.error(\"Beim Laden des Teilnehmers ist ein Fehler aufgetreten.\");\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action updateParticipant = async (participant: Partial) => {\r\n this.submittingParticipant= true;\r\n try {\r\n await agent.Participant.edit(participant); \r\n \r\n runInAction(() => {\r\n this.submittingParticipant = false;\r\n\r\n this.participantDetail = {...this.participantDetail!, ...participant};\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submittingParticipant = false;\r\n });\r\n\r\n toast.error(\"Beim Aktualisieren des Teilnehmers ist ein Fehler aufgetreten.\");\r\n console.log(error);\r\n }\r\n }\r\n}\r\n","import { observable, action, runInAction } from \"mobx\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { toast } from \"react-toastify\";\r\nimport { ITeam } from \"../models/team\";\r\n\r\nexport default class TeamStore{\r\n rootStore: RootStore;\r\n constructor (rootStore: RootStore){\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable teamCache = new Map();\r\n @observable team: ITeam | null = null;\r\n @observable loading = false;\r\n\r\n @action getTeam = async (id: number) => {\r\n let cachedTeam = this.teamCache.get(id);\r\n if (cachedTeam){\r\n this.team = cachedTeam;\r\n } else{\r\n await this.loadTeam(id);\r\n }\r\n }\r\n\r\n @action loadTeam = async (id: number) => {\r\n this.loading = true;\r\n\r\n try {\r\n var team = await agent.Team.details(id);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.teamCache.set(id, team);\r\n this.team = team;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n })\r\n\r\n toast.error(\"Beim Laden des Teams ist ein Fehler aufgetreten.\"); \r\n }\r\n }\r\n}","import UserStore from \"./userStore\";\r\nimport { createContext } from \"react\";\r\nimport { configure } from \"mobx\";\r\nimport CommonStore from \"./commonStore\";\r\nimport ModalStore from \"./modalStore\";\r\nimport CompetitionStore from \"./competitionStore\";\r\nimport ParticipantStore from \"./participantStore\";\r\nimport TeamStore from \"./teamStore\";\r\n\r\nconfigure({ enforceActions: \"always\" });\r\n\r\nexport class RootStore { \r\n commonStore: CommonStore;\r\n userStore: UserStore;\r\n modalStore: ModalStore;\r\n competitionStore: CompetitionStore;\r\n participantStore: ParticipantStore;\r\n teamStore: TeamStore;\r\n\r\n constructor() {\r\n this.commonStore = new CommonStore(this);\r\n this.userStore = new UserStore(this);\r\n this.modalStore =new ModalStore(this);\r\n this.competitionStore = new CompetitionStore(this);\r\n this.participantStore = new ParticipantStore(this);\r\n this.teamStore = new TeamStore(this);\r\n }\r\n}\r\n\r\nexport const RootStoreContext = createContext(new RootStore());","import React from \"react\";\r\nimport { FieldRenderProps } from \"react-final-form\";\r\nimport { FormFieldProps, Form, Label } from \"semantic-ui-react\";\r\n\r\ninterface IProps\r\n extends FieldRenderProps,\r\n FormFieldProps {}\r\n\r\nexport const TextInput: React.FC = ({\r\n input,\r\n width,\r\n type,\r\n placeholder,\r\n meta: { touched, error },\r\n}) => {\r\n return (\r\n \r\n \r\n {touched && error && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { Message } from \"semantic-ui-react\";\r\n\r\ninterface IProps {\r\n error: AxiosResponse;\r\n text?: string;\r\n}\r\n\r\nexport const ErrorMessage: React.FC = ({ error, text }) => {\r\n return (\r\n \r\n {error.statusText}\r\n {error.data && Object.keys(error.data.errors).length > 0 && (\r\n //\r\n // {Object.values(error.data.errors).flat().map((err, i) => (\r\n // {err}\r\n // ))}\r\n //\r\n \r\n )}\r\n {text && }\r\n \r\n );\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { TextInput } from \"../../app/common/form/TextInput\";\r\nimport { Form, Button, Header } from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { IUserFormValues } from \"../../app/models/user\";\r\nimport { FORM_ERROR } from \"final-form\";\r\nimport { combineValidators, isRequired } from \"revalidate\";\r\nimport { ErrorMessage } from \"../../app/common/form/ErrorMessage\";\r\n\r\nconst validate = combineValidators({\r\n email: isRequired(\"email\"),\r\n password: isRequired(\"password\"),\r\n});\r\n\r\nexport const LoginForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { login } = rootStore.userStore;\r\n\r\n return (\r\n \r\n login(values).catch((error) => ({\r\n [FORM_ERROR]: error,\r\n }))\r\n }\r\n validate={validate}\r\n render={({\r\n handleSubmit,\r\n submitting,\r\n submitError,\r\n invalid,\r\n pristine,\r\n dirtySinceLastSubmit,\r\n }) => (\r\n
\r\n \r\n \r\n \r\n {submitError && !dirtySinceLastSubmit && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport {\r\n Menu,\r\n Container,\r\n Button,\r\n Dropdown,\r\n DropdownItem,\r\n Icon,\r\n} from \"semantic-ui-react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { NavLink, Link } from \"react-router-dom\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { LoginForm } from \"../user/LoginForm\";\r\nimport MediaQuery from 'react-responsive'\r\n\r\nconst NavBar: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { user, logout, isLoggedIn } = rootStore.userStore;\r\n const { openModal } = rootStore.modalStore;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Home\r\n Die Garage\r\n Teams\r\n Competition\r\n Einzel Liga\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Finnigan's Harp\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(!isLoggedIn || !user) ? (\r\n \r\n {\r\n openModal();\r\n }}\r\n size=\"huge\"\r\n >\r\n Login\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default observer(NavBar);\r\n","import React from \"react\";\r\nimport { Header, Image, Container, Segment } from \"semantic-ui-react\";\r\nimport MediaQuery from 'react-responsive'\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst HomePage = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n DSV Finnigans Harp Nürnberg e.V.
\r\n
\r\n
\r\n \r\n
DSV Finnigans Harp Nürnberg e.V.
\r\n \r\n
\r\n\r\n Herzlich willkommen beim Dartverein DSV Finnigan's Harp Nürnberg e. V., auch bekannt als Finnigan's Harp!\r\n Seit unserer Gründung im Jahr 1984 haben wir uns zu einer festen Größe in der Dartwelt entwickelt.\r\n Unser Verein erhielt seinen Namen aufgrund des damaligen Spielortes, der irischen Gaststätte \"Finnigan's Harp\" in der Nürnberger Innenstadt.\r\n In den Anfangsjahren fanden unsere Dartmatches in der gemütlichen Atmosphäre von Finnigan's Harp statt.\r\n Später wechselten alle Mannschaften für viele Jahre in den Heinrich VIII, Burgerstraße 42, wo wir unsere Leidenschaft für das Dartspiel weiter ausleben konnten.\r\n Zusätzlich hatten wir das Vergnügen, in der Sportgaststätte beim DJK Falke in Nürnberg unsere Dartsessions zu veranstalten.\r\n Inzwischen ist unser Zuhause, die Cafe & Bar Garage, die sich direkt an der Ubahn-Station Rennweg befindet.\r\n Hier treffen wir uns regelmäßig, um unsere Leidenschaft für den Dartsport zu teilen und spannende Wettkämpfe auszutragen.\r\n Die Cafe Bar Garage bietet eine einladende Atmosphäre und ist der ideale Ort, um gemeinsam mit Gleichgesinnten das Dartspiel zu genießen.\r\n

\r\n Unser Verein hat eine beeindruckende Entwicklung durchgemacht und ist heute ein fester Bestandteil der Dart-Community in Nürnberg.\r\n Wir haben uns kontinuierlich weiterentwickelt, hart trainiert und sind zu einer starken Einheit zusammengewachsen.\r\n Unsere Spielerinnen und Spieler sind mit Leidenschaft, Geschick und Hingabe dem Dartspiel verbunden und\r\n repräsentieren den DSV Finnigan's Harp Nürnberg e. V. mit Stolz.\r\n

\r\n Unsere erste Mannschaft spielt in der anspruchsvollen 2. Bundesliga und misst sich mit anderen talentierten Teams.\r\n Durch harte Arbeit und Teamgeist haben wir uns diesen Platz in der Liga erkämpft und sind bereit, unser Können zu demonstrieren.\r\n Für die kommende Saison 2023/2024 haben wir fünf Vollmannschaften gemeldet, die in verschiedenen Ligen und Wettbewerben antreten werden.\r\n Egal ob erfahrene Spieler oder Anfänger, bei uns findet jeder eine passende Spielgelegenheit, um sich weiterzuentwickeln und Spaß am Dartsport zu haben.\r\n

\r\n Ein wichtiger Bestandteil unserer Vereinsgeschichte sind unsere zahlreichen Erfolge. Als mehrfacher Bayernligameister haben wir uns in\r\n den Jahren 2023, 2014, 2008, 2007 und 1998 den begehrten Titel gesichert. Darüber hinaus sind wir Rekord-MOFDV-Pokal Sieger\r\n (in den Jahren 2023, 2018, 2015, 2014, 2010, 2009, 2001, 1999 und 1997). Auch den bayerischen 8er Cup konnten wir in den Jahren\r\n 2015, 2002, 2001 und 1996 zu uns nach Franken holen.\r\n Wir sind bestrebt, unsere Erfolgsgeschichte fortzusetzen und unseren Verein auf höchstem Niveau zu repräsentieren.\r\n Wir laden dich herzlich ein, Teil der Finnigan's Harp-Familie zu werden und gemeinsam die Faszination des Dartsports zu erleben.\r\n\r\n

Finnigan's Harp - Wo Legenden geboren werden, und Pfeile fliegen!

\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default HomePage;\r\n","import React from 'react';\r\nimport { Segment, Button, Header, Icon } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst NotFound = () => {\r\n return (\r\n \r\n
\r\n \r\n Oops - wir haben überall nachgeschaut, konnten das Gesuchte aber nicht finden...\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default NotFound;","import React from 'react';\r\nimport { Dimmer, Loader } from 'semantic-ui-react';\r\n\r\nexport const LoadingComponent: React.FC<{ inverted?: boolean; content?: string }> = ({\r\n inverted = true,\r\n content\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingComponent;\r\n","import React, { useContext } from \"react\";\r\nimport { Modal } from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../stores/rootStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\nconst ModalContainer = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { modal: {open, body}, closeModal } = rootStore.modalStore;\r\n\r\n return (\r\n \r\n {body}\r\n \r\n );\r\n};\r\n\r\nexport default observer(ModalContainer);","import React, { useContext } from \"react\";\r\nimport {\r\n RouteProps,\r\n RouteComponentProps,\r\n Route,\r\n Redirect,\r\n} from \"react-router-dom\";\r\nimport { RootStoreContext } from \"../stores/rootStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\ninterface IProps extends RouteProps {\r\n component: React.ComponentType>;\r\n}\r\n\r\nconst PrivateRoute: React.FC = ({\r\n component: Component,\r\n ...rest\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { isLoggedIn } = rootStore.userStore;\r\n\r\n return (\r\n \r\n isLoggedIn ? : \r\n }\r\n >\r\n );\r\n};\r\n\r\nexport default observer(PrivateRoute);","import React from \"react\";\r\nimport { ICompetitionInfo } from \"../../../app/models/competition\";\r\nimport { Segment, Item, Icon } from \"semantic-ui-react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { format, parseISO } from \"date-fns\";\r\n\r\nexport const CompetitionListItem: React.FC<{\r\n competitionInfo: ICompetitionInfo;\r\n}> = ({ competitionInfo }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* as={Link} to={`/competitions/${competitionInfo.id}`} */}\r\n \r\n {format(\r\n parseISO(competitionInfo.date.toString()), \"dd.MM.yyyy\"\r\n )}\r\n \r\n \r\n \r\n {competitionInfo.winnerName}\r\n
\r\n {competitionInfo.participantCount}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { List, Tab } from \"semantic-ui-react\";\r\nimport { CompetitionListItem } from \"./CompetitionListItem\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\ninterface IProps {\r\n year: number;\r\n}\r\n\r\nconst CompetitionList: React.FC = ({ year }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { competitions, loadCompetitions, loading, setPredicate } = rootStore.competitionStore;\r\n\r\n useEffect(() => {\r\n setPredicate('year', year.toString())\r\n loadCompetitions();\r\n }, [loadCompetitions, setPredicate, year]);\r\n\r\n return (\r\n \r\n \r\n {competitions && competitions.map((c) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(CompetitionList);","import React from \"react\";\r\nimport { Card, Grid } from \"semantic-ui-react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IRankingValue } from \"../../../app/models/ranking\";\r\n\r\nexport const MobileRankingListItem: React.FC<{\r\n rankingValue: IRankingValue;\r\n}> = ({ rankingValue }) => {\r\n return ( \r\n \r\n \r\n {rankingValue.name}\r\n {rankingValue.club}\r\n \r\n \r\n \r\n Platz\r\n {rankingValue.placing}\r\n \r\n \r\n Teilnahmen\r\n {rankingValue.participations}\r\n \r\n \r\n Punkteschnitt\r\n {rankingValue.average}\r\n \r\n \r\n Punkte\r\n {rankingValue.points}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { Fragment, useContext, useEffect } from \"react\";\r\nimport { Table, Tab, List, Label } from \"semantic-ui-react\";\r\nimport { format, parseISO } from \"date-fns\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport MediaQuery from \"react-responsive\"\r\nimport { MobileRankingListItem } from \"./MobileRankingListItem\";\r\n\r\ninterface IProps {\r\n year: number;\r\n}\r\n\r\nconst CompetitionRanking: React.FC = ({ year }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { ranking, loading, loadRanking } = rootStore.competitionStore;\r\n\r\n useEffect(() => {\r\n loadRanking(year.toString());\r\n }, [loadRanking, year])\r\n\r\n return (\r\n \r\n {ranking && (\r\n \r\n \r\n \r\n \r\n {ranking.jackpot > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n {ranking && ranking.values.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Rang\r\n Name\r\n Verein\r\n TN\r\n Ø\r\n Punkte\r\n \r\n \r\n \r\n {ranking.values.map((value) => (\r\n \r\n {value.placing}\r\n \r\n {value.name}\r\n \r\n {value.club}\r\n {value.participations}\r\n {value.average.toFixed(2)}\r\n {value.points}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default observer(CompetitionRanking)","import React, { useContext, useEffect, Fragment } from \"react\";\r\nimport { Table, Tab } from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { observer } from \"mobx-react-lite\";\r\n\r\ninterface IProps {\r\n year: number;\r\n}\r\n\r\nconst CompetitionHighlights: React.FC = ({ year }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { highlights, loading, loadHighlights } = rootStore.competitionStore;\r\n\r\n useEffect(() => {\r\n loadHighlights(year.toString());\r\n }, [loadHighlights, year]);\r\n\r\n return (\r\n \r\n {highlights && (\r\n \r\n \r\n \r\n Name\r\n Verein\r\n Anzahl\r\n {highlights.some((p) => p.oneHundredEighties > 0) && year >= 2024 && (\r\n 171+\r\n )}\r\n {highlights.some((p) => p.oneHundredEighties > 0) && year < 2024 && (\r\n 180\r\n )}\r\n {highlights.some((p) => p.bestleg9 > 0) && (\r\n 9\r\n )}\r\n {highlights.some((p) => p.bestleg10 > 0) && (\r\n 10\r\n )}\r\n {highlights.some((p) => p.bestleg11 > 0) && (\r\n 11\r\n )}\r\n {highlights.some((p) => p.bestleg12 > 0) && (\r\n 12\r\n )}\r\n {highlights.some((p) => p.bestleg13 > 0) && (\r\n 13\r\n )}\r\n {highlights.some((p) => p.bestleg14 > 0) && (\r\n 14\r\n )}\r\n {highlights.some((p) => p.bestleg15 > 0) && (\r\n 15\r\n )}\r\n {highlights.some((p) => p.bestleg16 > 0) && (\r\n 16\r\n )}\r\n {highlights.some((p) => p.bestleg17 > 0) && (\r\n 17\r\n )}\r\n {highlights.some((p) => p.bestleg18 > 0) && (\r\n 18\r\n )}\r\n {highlights.some((p) => p.bestleg19 > 0) && (\r\n 19\r\n )}\r\n \r\n \r\n\r\n \r\n {highlights.map((participant) => (\r\n \r\n \r\n \r\n \r\n {participant.participantName}\r\n \r\n \r\n \r\n {participant.participantClub}\r\n \r\n \r\n {participant.highlightCount}\r\n \r\n {highlights.some((p) => p.oneHundredEighties > 0) && (\r\n {participant.oneHundredEighties > 0 ? participant.oneHundredEighties : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg9 > 0) && (\r\n {participant.bestleg9 > 0 ? participant.bestleg9 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg10 > 0) && (\r\n {participant.bestleg10 > 0 ? participant.bestleg10 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg11 > 0) && (\r\n {participant.bestleg11 > 0 ? participant.bestleg11 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg12 > 0) && (\r\n {participant.bestleg12 > 0 ? participant.bestleg12 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg13 > 0) && (\r\n {participant.bestleg13 > 0 ? participant.bestleg13 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg14 > 0) && (\r\n {participant.bestleg14 > 0 ? participant.bestleg14 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg15 > 0) && (\r\n {participant.bestleg15 > 0 ? participant.bestleg15 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg16 > 0) && (\r\n {participant.bestleg16 > 0 ? participant.bestleg16 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg17 > 0) && (\r\n {participant.bestleg17 > 0 ? participant.bestleg17 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg18 > 0) && (\r\n {participant.bestleg18 > 0 ? participant.bestleg18 : '-'}\r\n )}\r\n {highlights.some((p) => p.bestleg19 > 0) && (\r\n {participant.bestleg19 > 0 ? participant.bestleg19 : '-'}\r\n )}\r\n \r\n \r\n High-Finishes\r\n {participant.highFinishes ?? '-'}\r\n \r\n \r\n ))}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default observer(CompetitionHighlights);\r\n","import React, { useContext, useEffect, useState, Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n Tab,\r\n TableBody,\r\n TableCell,\r\n Table,\r\n TableRow,\r\n TableFooter,\r\n} from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport LoadingComponent from \"../../../app/layout/LoadingComponent\";\r\nimport CompetitionList from \"./CompetitionList\";\r\nimport CompetitionRanking from \"./CompetitionRanking\";\r\nimport CompetitionHighlights from \"./CompetitionHighlights\";\r\nimport { Link } from \"react-router-dom\";\r\nimport MediaQuery from \"react-responsive\";\r\n\r\nconst CompetitionDashboard = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadingInitial,\r\n loadAvailableData,\r\n availableData,\r\n activeTabIndex,\r\n setActiveTab,\r\n } = rootStore.competitionStore;\r\n\r\n const [panes, setPanes] = useState([]);\r\n\r\n useEffect(() => {\r\n loadAvailableData();\r\n }, [loadAvailableData]);\r\n\r\n useEffect(() => {\r\n let temp: any[] = [];\r\n\r\n availableData.map((year) => {\r\n if (year === 20202021) {\r\n temp.push({\r\n menuItem: `Tabelle 2020/2021`,\r\n render: () => ,\r\n });\r\n }\r\n else {\r\n temp.push(\r\n {\r\n menuItem: `Tabelle ${year}`,\r\n render: () => ,\r\n },\r\n {\r\n menuItem: `Highlights ${year}`,\r\n render: () => ,\r\n },\r\n {\r\n menuItem: `Details ${year}`,\r\n render: () => ,\r\n }\r\n )\r\n }\r\n return temp;\r\n }\r\n );\r\n\r\n setPanes(temp);\r\n }, [availableData]);\r\n\r\n if (loadingInitial) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Spielort\r\n \r\n \r\n Cafe & Bar Garage, Rennweg 12-14, Nürnberg\r\n \r\n \r\n \r\n \r\n Tag\r\n jeden Donnerstag\r\n \r\n \r\n Beginn\r\n 19:00\r\n \r\n \r\n \r\n Anmeldung\r\n \r\n bis 5 Minuten vor Beginn vor Ort oder HIER ONLINE \r\n \r\n \r\n Boards\r\n 4 (geschrieben wird auf PC)\r\n \r\n \r\n Modus\r\n \r\n Doppel-KO, 501 Double Out, Gewinnerseite mind. B.o.5,\r\n Verliererseite mind. B.o.3\r\n \r\n \r\n \r\n Startgeld\r\n 3,00€\r\n \r\n \r\n Teilnahme\r\n Jeder Interessierte ist herzlich willkommen. Egal ob vereinloser Einsteiger oder langjähriger Spieler.\r\n Bei Fragen schreibt uns auf Facebook oder unter info@finnigans-harp.de\r\n \r\n \r\n Ewige Rangliste\r\n Seit der Saison 1998 erfassen wir alle Teilnahmen in unserer ewigen Rangliste\r\n \r\n \r\n \r\n \r\n \r\n Die Anzahl der ausgezahlten Plätze am Ende der Saison, richtet sich nach der durchschnittlichen Teilnehmerzahl.
\r\n Die Competition Saison 2024 startet am 04.01.2024.
\r\n Voraussichtlich letzter Spieltag ist der 12.12.2024.
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n setActiveTab(data.activeIndex)}\r\n >\r\n \r\n \r\n setActiveTab(data.activeIndex)}\r\n >\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(CompetitionDashboard);\r\n","import React from \"react\";\r\nimport { ICompetition } from \"../../../app/models/competition\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Grid, GridRow, Icon, GridColumn, Popup } from \"semantic-ui-react\";\r\nimport { format, parseISO } from \"date-fns\";\r\n\r\ninterface IProps {\r\n competition: ICompetition;\r\n}\r\n\r\nconst CompetitionDetailedHeader: React.FC = ({ competition }) => {\r\n return (\r\n \r\n \r\n \r\n

Competition vom {format(parseISO(competition.date.toString()), \"dd.MM.yyyy\")}

\r\n \r\n
\r\n \r\n \r\n \r\n }\r\n />{\" \"}\r\n {competition.participants.length}\r\n \r\n \r\n \r\n }\r\n />{\" \"}\r\n {competition.participants.reduce((highlightCount, part) => highlightCount + part.highlightCount, 0)}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(CompetitionDetailedHeader);\r\n","import React from \"react\";\r\nimport { ICompetitionParticipant } from \"../../../app/models/competition\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Table, Popup, Button, Icon } from \"semantic-ui-react\";\r\n\r\ninterface IProps {\r\n participants: ICompetitionParticipant[];\r\n handleParticipantEdit?: (participant: ICompetitionParticipant) => void;\r\n}\r\n\r\nconst CompetitionDetailedInfo: React.FC = ({ participants, handleParticipantEdit }) => {\r\n return (\r\n \r\n \r\n \r\n Platz\r\n Name\r\n Verein\r\n 171+\r\n {participants.some((p) => p.bestleg9 > 0) && (\r\n 9\r\n )}\r\n {participants.some((p) => p.bestleg10 > 0) && (\r\n 10\r\n )}\r\n {participants.some((p) => p.bestleg11 > 0) && (\r\n 11\r\n )}\r\n {participants.some((p) => p.bestleg12 > 0) && (\r\n 12\r\n )}\r\n {participants.some((p) => p.bestleg13 > 0) && (\r\n 13\r\n )}\r\n {participants.some((p) => p.bestleg14 > 0) && (\r\n 14\r\n )}\r\n {participants.some((p) => p.bestleg15 > 0) && (\r\n 15\r\n )}\r\n {participants.some((p) => p.bestleg16 > 0) && (\r\n 16\r\n )}\r\n {participants.some((p) => p.bestleg17 > 0) && (\r\n 17\r\n )}\r\n {participants.some((p) => p.bestleg18 > 0) && (\r\n 18\r\n )}\r\n {participants.some((p) => p.bestleg19 > 0) && (\r\n 19\r\n )}\r\n {participants.some((p) => p.highFinishes !== null) && (\r\n High-Finishes\r\n )}\r\n {handleParticipantEdit != null && ()}\r\n \r\n \r\n\r\n \r\n {participants.map((participant) => (\r\n \r\n {participant.placing}}\r\n />\r\n {participant.participant.name}\r\n {participant.participant.club}\r\n {participant.oneHundredEighties > 0 ? participant.oneHundredEighties : '-'}\r\n {participants.some((p) => p.bestleg9 > 0) && (\r\n {participant.bestleg9 > 0 ? participant.bestleg9 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg10 > 0) && (\r\n {participant.bestleg10 > 0 ? participant.bestleg10 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg11 > 0) && (\r\n {participant.bestleg11 > 0 ? participant.bestleg11 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg12 > 0) && (\r\n {participant.bestleg12 > 0 ? participant.bestleg12 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg13 > 0) && (\r\n {participant.bestleg13 > 0 ? participant.bestleg13 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg14 > 0) && (\r\n {participant.bestleg14 > 0 ? participant.bestleg14 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg15 > 0) && (\r\n {participant.bestleg15 > 0 ? participant.bestleg15 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg16 > 0) && (\r\n {participant.bestleg16 > 0 ? participant.bestleg16 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg17 > 0) && (\r\n {participant.bestleg17 > 0 ? participant.bestleg17 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg18 > 0) && (\r\n {participant.bestleg18 > 0 ? participant.bestleg18 : '-'}\r\n )}\r\n {participants.some((p) => p.bestleg19 > 0) && (\r\n {participant.bestleg19 > 0 ? participant.bestleg19 : '-'}\r\n )}\r\n {participants.some((p) => p.highFinishes !== null) && (\r\n {participant.highFinishes}\r\n )}\r\n {handleParticipantEdit != null && (\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(CompetitionDetailedInfo);\r\n","import { RouteComponentProps } from \"react-router-dom\";\r\nimport { useContext, useEffect } from \"react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport React from \"react\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport LoadingComponent from \"../../../app/layout/LoadingComponent\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport CompetitionDetailedHeader from \"./CompetitionDetailedHeader\";\r\nimport CompetitionDetailedInfo from \"./CompetitionDetailedInfo\";\r\n\r\ninterface DetailParams {\r\n id: string;\r\n}\r\n\r\nconst CompetitionDetails: React.FC> = ({\r\n match,\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { competition, loadCompetition, loading } = rootStore.competitionStore;\r\n\r\n useEffect(() => {\r\n loadCompetition(match.params.id);\r\n }, [loadCompetition, match.params.id]);\r\n\r\n if (loading || competition === null)\r\n return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(CompetitionDetails);\r\n","import React from \"react\";\r\nimport { IHighlights } from \"../../app/models/participant\";\r\nimport { Statistic, Item, Icon, Grid, Tab } from \"semantic-ui-react\";\r\n\r\ninterface IProps {\r\n highlights: IHighlights;\r\n}\r\n\r\nexport const ParticipantHighlights: React.FC = ({ highlights }) => {\r\n return (\r\n \r\n \r\n \r\n Highlights {highlights.year}\r\n \r\n \r\n \r\n \r\n {highlights.oneHundredEighties > 0\r\n ? highlights.oneHundredEighties\r\n : \"-\"}\r\n \r\n {highlights.year >= 2024 ? \"171+\" : \"180\"}\r\n \r\n \r\n \r\n {highlights.bestleg9 > 0 ? highlights.bestleg9 : \"-\"}\r\n \r\n BL9\r\n \r\n \r\n \r\n {highlights.bestleg10 > 0 ? highlights.bestleg10 : \"-\"}\r\n \r\n BL10\r\n \r\n \r\n \r\n {highlights.bestleg11 > 0 ? highlights.bestleg11 : \"-\"}\r\n \r\n BL11\r\n \r\n \r\n \r\n {highlights.bestleg12 > 0 ? highlights.bestleg12 : \"-\"}\r\n \r\n BL12\r\n \r\n \r\n \r\n {highlights.bestleg13 > 0 ? highlights.bestleg13 : \"-\"}\r\n \r\n BL13\r\n \r\n \r\n \r\n {highlights.bestleg14 > 0 ? highlights.bestleg14 : \"-\"}\r\n \r\n BL14\r\n \r\n \r\n \r\n {highlights.bestleg15 > 0 ? highlights.bestleg15 : \"-\"}\r\n \r\n BL15\r\n \r\n \r\n \r\n {highlights.bestleg16 > 0 ? highlights.bestleg16 : \"-\"}\r\n \r\n BL16\r\n \r\n \r\n \r\n {highlights.bestleg17 > 0 ? highlights.bestleg17 : \"-\"}\r\n \r\n BL17\r\n \r\n \r\n \r\n {highlights.bestleg18 > 0 ? highlights.bestleg18 : \"-\"}\r\n \r\n BL18\r\n \r\n \r\n \r\n {highlights.bestleg19 > 0 ? highlights.bestleg19 : \"-\"}\r\n \r\n BL19\r\n \r\n \r\n {highlights.highFinishes !== null &&\r\n \r\n \r\n \r\n \r\n \r\n

{highlights.highFinishes}

\r\n
\r\n
}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { ICompetitionSummary } from \"../../app/models/participant\";\r\nimport { Card, Item, Statistic, Tab } from \"semantic-ui-react\";\r\nimport { format, parseISO, getDayOfYear } from \"date-fns\";\r\n\r\ninterface IProps {\r\n competitions: ICompetitionSummary;\r\n}\r\n\r\nexport const ParticipantCompetitions: React.FC = ({ competitions }) => {\r\n return (\r\n \r\n \r\n \r\n Teilnahmen {competitions.year}\r\n \r\n \r\n {competitions.competitions.map((c) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { FieldRenderProps } from \"react-final-form\";\r\nimport { FormFieldProps, Form, Checkbox } from \"semantic-ui-react\";\r\n\r\ninterface IProps extends FieldRenderProps, FormFieldProps {\r\n falseLabel: string;\r\n}\r\n\r\nexport const CheckBoxInput: React.FC = ({\r\n input,\r\n label,\r\n falseLabel,\r\n meta: { touched, error },\r\n}) => {\r\n const [labelText, setLabelText] = useState(input.checked ? label : falseLabel);\r\n return (\r\n \r\n {\r\n checked ? setLabelText(label) : setLabelText(falseLabel);\r\n input.onChange(checked);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport { Tab, Form, Button } from \"semantic-ui-react\";\r\nimport { IParticipantDetail } from \"../../app/models/participant\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { combineValidators, isRequired } from \"revalidate\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { TextInput } from \"../../app/common/form/TextInput\";\r\nimport { CheckBoxInput } from \"../../app/common/form/CheckBoxInput\";\r\n\r\nconst validate = combineValidators({\r\n name: isRequired(\"name\"),\r\n club: isRequired(\"club\"),\r\n});\r\n\r\nexport const ParticipantEdit: React.FC<{ participantDetail: IParticipantDetail }> = ({\r\n participantDetail,\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n updateParticipant,\r\n } = rootStore.participantStore;\r\n\r\n return \r\n (\r\n
\r\n \r\n \r\n \r\n \r\n )}\r\n {hasNext && (\r\n \r\n Nächstes\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(ImageModalContainer);\r\n","import React, { useContext } from \"react\";\r\nimport IGalleryImage from \"../../app/common/util/imageGallery\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { Image } from \"semantic-ui-react\";\r\n\r\ninterface IProps {\r\n images: IGalleryImage[];\r\n}\r\n\r\nexport const ImageGallery: React.FC = ({ images }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { openImageModalWithActions } = rootStore.modalStore;\r\n\r\n let currentIndex = 0;\r\n\r\n const openImage = (imageIndex: number) => {\r\n currentIndex = imageIndex;\r\n openImageModalWithActions(\r\n images[imageIndex].title,\r\n images[imageIndex].url,\r\n images[imageIndex].caption,\r\n currentIndex > 0,\r\n currentIndex + 1 < images.length,\r\n loadNextImage,\r\n loadPreviousImage\r\n );\r\n };\r\n\r\n const loadNextImage = () => {\r\n if (currentIndex + 1 < images.length) {\r\n openImage(currentIndex + 1);\r\n }\r\n };\r\n\r\n const loadPreviousImage = () => {\r\n if (currentIndex > 0) {\r\n openImage(currentIndex - 1);\r\n }\r\n };\r\n\r\n const imgs: any[] = [];\r\n for (let i = 0; i < images.length; i++) {\r\n imgs.push(\r\n openImage(i)}\r\n />\r\n );\r\n }\r\n\r\n return ;\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n Segment,\r\n Header,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n TableHeader,\r\n Grid,\r\n TableBody,\r\n} from \"semantic-ui-react\";\r\nimport { ImageGallery } from \"../imageGallery/ImageGallery\";\r\nimport IGalleryImage from \"../../app/common/util/imageGallery\";\r\nimport agent from \"../../app/api/agent\";\r\nimport MediaQuery from \"react-responsive\"\r\n\r\nexport const Garage = () => {\r\n const [images, setImages] = useState(null);\r\n const [imgsLoaded, setLoaded] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!imgsLoaded) {\r\n setLoaded(true);\r\n\r\n agent.Image.garage().then((imgs) => {\r\n setImages(imgs);\r\n });\r\n\r\n }\r\n }, [imgsLoaded]);\r\n\r\n return (\r\n \r\n \r\n \r\n Seit der Saison 2016/17 bestreiten wir unsere Heimspiele in der{\" \"}\r\n \r\n Cafe & Bar Garage\r\n \r\n . Hier haben wir uns nach unseren Vorstellungen eine neue Boardanlage mit insgesamt 4 Dartboards\r\n konstruiert. Alle Boards verfügen über Computer um das Schreiben zu erleichtern.\r\n Zusätzlich können wir die Spiele auf den Boards 1 und 2 per Kamera auf die Leinwände im Lokal übertragen.\r\n
\r\n Wirt Ali und sein Team kümmern sich freundlich um alle gastronomischen Belange.\r\n
Adresse
\r\n Rennweg 12-14\r\n
\r\n 90489 Nürnberg\r\n
\r\n Direkt an der U-Bahn Haltstelle Rennweg der Linie U2\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

Öffnungszeiten

\r\n
\r\n
\r\n
\r\n \r\n \r\n Montag bis Donnerstag\r\n 16:00 - 02:00\r\n \r\n \r\n Freitag\r\n 16:00 - 03:00\r\n \r\n \r\n Samstag\r\n 14:00 - 03:00\r\n \r\n \r\n Sonntag\r\n 14:00 - 0:00\r\n \r\n \r\n Vor einem Feiertag\r\n 16:00 - 03:00\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {images !== null && }\r\n \r\n \r\n
\r\n \r\n \r\n {images !== null && }\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nexport const PayPalButton = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Card, Segment, Header, Image } from \"semantic-ui-react\";\r\nimport { PayPalButton } from \"./PayPalButton\";\r\n\r\n\r\nexport const Sponsors = () => {\r\n return (\r\n \r\n
Unsere Sponsoren
\r\n Dank zahlreicher Sponsoren konnte sich Finnigan's mit dem Aufstieg der\r\n Ersten Mannschaft in die Bundesliga einen Vereinsbus anschaffen.
\r\n Dieser ermöglicht es uns die Fahrtkosten bei Auswärtsfahrten zu reduzieren\r\n und gleichzeitig die Fahrt als Team durchzuführen.\r\n
\r\n
\r\n \r\n
\r\n Der DSV Finnigan's Harp bedankt sich bei seinen Sponsoren\r\n
\r\n \r\n \r\n \r\n Wickels\r\n \r\n \r\n
\r\n \r\n \r\n Jochen's Dartkiste\r\n \r\n \r\n \r\n \r\n \r\n Cafe & Bar Garage\r\n \r\n \r\n \r\n \r\n \r\n Happy Tops\r\n \r\n \r\n \r\n \r\n \r\n Bisloher Getränkeland\r\n \r\n \r\n \r\n \r\n \r\n Insutrend\r\n \r\n \r\n \r\n \r\n \r\n FTL Logistik\r\n \r\n \r\n \r\n \r\n \r\n Möchten Sie uns unterstützen und ebenfalls Sponsor werden?\r\n \r\n \r\n Schreiben Sie uns eine{\" \"}\r\n Nachricht.\r\n \r\n \r\n \r\n \r\n Alternativ können Sie uns auch mit einer Spende per Paypal\r\n unterstützen\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react'\r\n\r\nexport const Impress = () => {\r\n return (\r\n
\r\n

Impressum

\r\n

\r\n DSV Finnigan's Harp e.V.
\r\n Merianstraße 4
\r\n 90409 Nürnberg\r\n

\r\n

\r\n E-Mail: info@finnigans-harp.de
\r\n

\r\n

\r\n Vertreten durch:
1. Vorstand: Florian Ludwig
\r\n 2. Vorstand: Jonathan Lindert
\r\n Kassier: Alexander Haack\r\n

Registereintrag:
Eingetragen im Vereinsregister.
Registergericht: Amtsgericht Nürnberg
Registernummer: 3879

Umsatzsteuer-ID:
Umsatzsteuer-Identifikationsnummer nach §27a Umsatzsteuergesetz:
241/107/80504

Quelle: Impressumsgenerator von juraforum.de

\r\n\r\n

\r\n

Datenschutzerklärung:

\r\n Datenschutz
Nachfolgend möchten wir Sie über unsere Datenschutzerklärung informieren. Sie finden hier Informationen über die Erhebung und Verwendung persönlicher Daten bei der Nutzung unserer Webseite. Wir beachten dabei das für Deutschland geltende Datenschutzrecht. Sie können diese Erklärung jederzeit auf unserer Webseite abrufen.\r\n

\r\n Wir weisen ausdrücklich darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen und nicht lückenlos vor dem Zugriff durch Dritte geschützt werden kann.\r\n

\r\n Die Verwendung der Kontaktdaten unseres Impressums zur gewerblichen Werbung ist ausdrücklich nicht erwünscht, es sei denn wir hatten zuvor unsere schriftliche Einwilligung erteilt oder es besteht bereits eine Geschäftsbeziehung. Der Anbieter und alle auf dieser Website genannten Personen widersprechen hiermit jeder kommerziellen Verwendung und Weitergabe ihrer Daten.\r\n

\r\n Personenbezogene Daten\r\n
\r\n Sie können unsere Webseite ohne Angabe personenbezogener Daten besuchen. Soweit auf unseren Seiten personenbezogene Daten (wie Name, Anschrift oder E-Mail Adresse) erhoben werden, erfolgt dies, soweit möglich, auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben. Sofern zwischen Ihnen und uns ein Vertragsverhältnis begründet, inhaltlich ausgestaltet oder geändert werden soll oder Sie an uns eine Anfrage stellen, erheben und verwenden wir personenbezogene Daten von Ihnen, soweit dies zu diesen Zwecken erforderlich ist (Bestandsdaten). Wir erheben, verarbeiten und nutzen personenbezogene Daten soweit dies erforderlich ist, um Ihnen die Inanspruchnahme des Webangebots zu ermöglichen (Nutzungsdaten). Sämtliche personenbezogenen Daten werden nur solange gespeichert wie dies für den genannten Zweck (Bearbeitung Ihrer Anfrage oder Abwicklung eines Vertrags) erforderlich ist. Hierbei werden steuer- und handelsrechtliche Aufbewahrungsfristen berücksichtigt. Auf Anordnung der zuständigen Stellen dürfen wir im Einzelfall Auskunft über diese Daten (Bestandsdaten) erteilen, soweit dies für Zwecke der Strafverfolgung, zur Gefahrenabwehr, zur Erfüllung der gesetzlichen Aufgaben der Verfassungsschutzbehörden oder des Militärischen Abschirmdienstes oder zur Durchsetzung der Rechte am geistigen Eigentum erforderlich ist.\r\n

Auskunftsrecht
Sie haben das jederzeitige Recht, sich unentgeltlich und unverzüglich über die zu Ihrer Person erhobenen Daten zu erkundigen. Sie haben das jederzeitige Recht, Ihre Zustimmung zur Verwendung Ihrer angegeben persönlichen Daten mit Wirkung für die Zukunft zu widerrufen. Zur Auskunftserteilung wenden Sie sich bitte an den Anbieter unter den Kontaktdaten im Impressum.

Quelle: www.juraforum.de

\r\n
\r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Icon, Container } from \"semantic-ui-react\";\r\n\r\nexport const Footer = () => {\r\n return (\r\n {new Date().getFullYear()} - Finnigan's Harp Nürnberg e.V.\r\n Impressum\r\n )\r\n}","import React from \"react\";\r\nimport { FieldRenderProps } from \"react-final-form\";\r\nimport { FormFieldProps, Form, Label } from \"semantic-ui-react\";\r\nimport { DateTimePicker } from \"react-widgets\";\r\n\r\ninterface IProps extends FieldRenderProps, FormFieldProps {}\r\n\r\nexport const DateInput: React.FC = ({\r\n input,\r\n width,\r\n id = null,\r\n placeholder,\r\n date = false,\r\n time = false,\r\n meta: { touched, error },\r\n ...rest\r\n}) => {\r\n return (\r\n \r\n input.onBlur}\r\n onKeyDown={(e : any) => e.preventDefault()}\r\n date={date}\r\n time={time}\r\n {...rest}\r\n />\r\n {touched && error && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { getPointsFromPlacing } from \"../common/util/util\";\r\nimport { ICompetition, ICompetitionParticipant } from \"./competition\";\r\nimport { IParticipant } from \"./participant\";\r\nimport { IUser } from \"./user\";\r\n\r\nexport class Competition implements ICompetition {\r\n creatorUser: IUser;\r\n creator: string = \"\";\r\n date: Date;\r\n id: number;\r\n participants: ICompetitionParticipant[];\r\n constructor(creator: IUser, date: Date) {\r\n this.creatorUser = creator;\r\n this.date = date;\r\n this.id = -1;\r\n this.participants = [];\r\n }\r\n}\r\n\r\nexport class CompetitionParticipantFormValues {\r\n participant: IParticipant | null = null;\r\n placing: number;\r\n points: number;\r\n bestleg9?: string = undefined;\r\n bestleg10?: string = undefined;\r\n bestleg11?: string = undefined;\r\n bestleg12?: string = undefined;\r\n bestleg13?: string = undefined;\r\n bestleg14?: string = undefined;\r\n bestleg15?: string = undefined;\r\n bestleg16?: string = undefined;\r\n bestleg17?: string = undefined;\r\n bestleg18?: string = undefined;\r\n bestleg19?: string = undefined;\r\n oneHundredEighties?: string = undefined;\r\n highFinishes: string = \"\";\r\n\r\n constructor(placing: number) {\r\n this.placing = placing;\r\n this.points = getPointsFromPlacing(placing);\r\n // this.participant = { name: '', anonymize: false, club: '', id: -1 };\r\n }\r\n\r\n static fromCompetitionParticipant = (competitionParticipant: ICompetitionParticipant) => {\r\n let values = new CompetitionParticipantFormValues(competitionParticipant.placing);\r\n\r\n values.bestleg9 = competitionParticipant.bestleg9 ? competitionParticipant.bestleg9.toString() : undefined;\r\n values.bestleg10 = competitionParticipant.bestleg10 ? competitionParticipant.bestleg10.toString() : undefined;\r\n values.bestleg11 = competitionParticipant.bestleg11 ? competitionParticipant.bestleg11.toString() : undefined;\r\n values.bestleg12 = competitionParticipant.bestleg12 ? competitionParticipant.bestleg12.toString() : undefined;\r\n values.bestleg13 = competitionParticipant.bestleg13 ? competitionParticipant.bestleg13.toString() : undefined;\r\n values.bestleg14 = competitionParticipant.bestleg14 ? competitionParticipant.bestleg14.toString() : undefined;\r\n values.bestleg15 = competitionParticipant.bestleg15 ? competitionParticipant.bestleg15.toString() : undefined;\r\n values.bestleg16 = competitionParticipant.bestleg16 ? competitionParticipant.bestleg16.toString() : undefined;\r\n values.bestleg17 = competitionParticipant.bestleg17 ? competitionParticipant.bestleg17.toString() : undefined;\r\n values.bestleg18 = competitionParticipant.bestleg18 ? competitionParticipant.bestleg18.toString() : undefined;\r\n values.bestleg19 = competitionParticipant.bestleg19 ? competitionParticipant.bestleg19.toString() : undefined;\r\n values.highFinishes = competitionParticipant.highFinishes;\r\n values.oneHundredEighties = competitionParticipant.oneHundredEighties ? competitionParticipant.oneHundredEighties.toString() : undefined;\r\n values.participant = competitionParticipant.participant;\r\n\r\n return values;\r\n }\r\n\r\n static toICompetitionParticipant = (participantFormValues: CompetitionParticipantFormValues) => {\r\n let part: ICompetitionParticipant = {\r\n participant: participantFormValues.participant!,\r\n placing: participantFormValues.placing,\r\n competitionId: -1,\r\n points: participantFormValues.points,\r\n highlightCount: 0,\r\n year: 0,\r\n bestleg9: participantFormValues.bestleg9 ? parseInt(participantFormValues.bestleg9) : 0,\r\n bestleg10: participantFormValues.bestleg10 ? parseInt(participantFormValues.bestleg10) : 0,\r\n bestleg11: participantFormValues.bestleg11 ? parseInt(participantFormValues.bestleg11) : 0,\r\n bestleg12: participantFormValues.bestleg12 ? parseInt(participantFormValues.bestleg12) : 0,\r\n bestleg13: participantFormValues.bestleg13 ? parseInt(participantFormValues.bestleg13) : 0,\r\n bestleg14: participantFormValues.bestleg14 ? parseInt(participantFormValues.bestleg14) : 0,\r\n bestleg15: participantFormValues.bestleg15 ? parseInt(participantFormValues.bestleg15) : 0,\r\n bestleg16: participantFormValues.bestleg16 ? parseInt(participantFormValues.bestleg16) : 0,\r\n bestleg17: participantFormValues.bestleg17 ? parseInt(participantFormValues.bestleg17) : 0,\r\n bestleg18: participantFormValues.bestleg18 ? parseInt(participantFormValues.bestleg18) : 0,\r\n bestleg19: participantFormValues.bestleg19 ? parseInt(participantFormValues.bestleg19) : 0,\r\n oneHundredEighties: participantFormValues.oneHundredEighties ? parseInt(participantFormValues.oneHundredEighties) : 0,\r\n highFinishes: participantFormValues.highFinishes,\r\n };\r\n\r\n return part;\r\n };\r\n}\r\n","export const combineDateAndTime = (date: Date, time: Date) => {\r\n const timeString = time.getHours() + \":\" + time.getMinutes() + \":00\";\r\n const year = date.getFullYear;\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const dateString = `${year}-${month}-${day}`;\r\n\r\n return new Date(dateString + \" \" + timeString);\r\n};\r\n\r\n\r\nexport const getPointsFromPlacing = (placing: number) => {\r\n switch (placing) {\r\n case 1:\r\n return 10;\r\n case 2:\r\n return 9;\r\n case 3:\r\n return 8;\r\n case 4:\r\n return 7;\r\n case 5:\r\n case 6:\r\n return 6;\r\n case 7:\r\n case 8:\r\n return 5;\r\n case 9:\r\n case 10:\r\n case 11:\r\n case 12:\r\n return 4;\r\n case 13:\r\n case 14:\r\n case 15:\r\n case 16:\r\n return 3;\r\n case 17:\r\n case 18:\r\n case 19:\r\n case 20:\r\n case 21:\r\n case 22:\r\n case 23:\r\n case 24:\r\n return 2;\r\n default:\r\n return 1;\r\n }\r\n};","import React from \"react\";\r\nimport { FieldRenderProps } from \"react-final-form\";\r\nimport { FormFieldProps, Form, Label } from \"semantic-ui-react\";\r\n\r\ninterface IProps extends FieldRenderProps, FormFieldProps {}\r\n\r\nexport const NumberInput: React.FC = ({\r\n input,\r\n width,\r\n type,\r\n placeholder,\r\n meta: { touched, error }\r\n}) => {\r\n return (\r\n \r\n {\r\n input.onChange(e);\r\n }} /> \r\n {/* style={{ paddingLeft: \"7px\", paddingRight: \"5px\" }} */}\r\n {touched && error && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { TextInput } from \"../../app/common/form/TextInput\";\r\nimport { Form, Button, Header } from \"semantic-ui-react\";\r\nimport { combineValidators, isRequired } from \"revalidate\";\r\nimport { CheckBoxInput } from \"../../app/common/form/CheckBoxInput\";\r\nimport { IParticipant } from \"../../app/models/participant\";\r\n\r\nconst validate = combineValidators({\r\n name: isRequired(\"name\"),\r\n club: isRequired(\"club\"),\r\n});\r\n\r\ninterface IProps {\r\n handleSubmit: (values: IParticipant) => void;\r\n name: string;\r\n}\r\n\r\nexport const NewParticipantForm: React.FC = ({ handleSubmit, name }) => {\r\n return (\r\n (\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport {\r\n IParticipant,\r\n} from \"../../../app/models/participant\";\r\nimport { CompetitionParticipantFormValues } from \"../../../app/models/competitionForm\";\r\nimport { Form, Icon, Dropdown, Button, DropdownProps } from \"semantic-ui-react\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { TextInput } from \"../../../app/common/form/TextInput\";\r\nimport { NumberInput } from \"../../../app/common/form/NumberInput\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { NewParticipantForm } from \"../../participant/NewParticipantForm\";\r\nimport { ICompetitionParticipant } from \"../../../app/models/competition\";\r\n\r\ninterface IProps {\r\n placing: number;\r\n handleParticipantSubmit: (\r\n participant: CompetitionParticipantFormValues\r\n ) => void;\r\n existingParticipant?: ICompetitionParticipant;\r\n}\r\n\r\nconst CompetitionParticipantForm: React.FC = ({\r\n placing,\r\n handleParticipantSubmit,\r\n existingParticipant\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { participantList, addNewParticipant } = rootStore.participantStore;\r\n const { openModal, closeModal } = rootStore.modalStore;\r\n\r\n const [participantFormValues, setParticipant] = useState(\r\n new CompetitionParticipantFormValues(placing)\r\n );\r\n const [options, setOptions] = useState([]);\r\n const [newPartId, setNewPartId] = useState(-1);\r\n const [selectPart, setSelectPart] = useState(undefined)\r\n\r\n useEffect(() => {\r\n let temp: any[] = [];\r\n participantList!.participants.map((p) =>\r\n temp.push({ key: p.id, text: p.name, value: p.id })\r\n );\r\n\r\n setOptions(temp);\r\n\r\n if (existingParticipant !== undefined) {\r\n setParticipant(CompetitionParticipantFormValues.fromCompetitionParticipant(existingParticipant));\r\n setSelectPart(existingParticipant.participant.id);\r\n }\r\n else {\r\n setParticipant(new CompetitionParticipantFormValues(placing));\r\n }\r\n }, [participantList, placing, existingParticipant]);\r\n\r\n const AddNewParticipant = (newParticipant: IParticipant) => {\r\n newParticipant.id = newPartId;\r\n\r\n addNewParticipant(newParticipant);\r\n\r\n let newOptions = [...options];\r\n newOptions.push({ key: newParticipant.id, text: newParticipant.name, value: newParticipant.id })\r\n setOptions(newOptions);\r\n setNewPartId(newPartId - 1);\r\n\r\n participantFormValues.participant = newParticipant;\r\n setSelectPart(newParticipant.id);\r\n\r\n closeModal();\r\n };\r\n\r\n const onAddParticipant = (event: any, data: DropdownProps) => {\r\n openModal();\r\n };\r\n\r\n return (\r\n {\r\n if (values.participant !== null) {\r\n setSelectPart(-1000);\r\n handleParticipantSubmit(values);\r\n }\r\n }}\r\n render={({ handleSubmit, form, invalid, pristine }) => (\r\n
\r\n \r\n \r\n (\r\n {\r\n participantFormValues.participant = participantList!.participants.filter(\r\n (p) => p.id === data.value\r\n )[0];\r\n\r\n setSelectPart(participantFormValues.participant?.id);\r\n }}\r\n onAddItem={onAddParticipant}\r\n placeholder=\"Teilnehmer\"\r\n options={options}\r\n value={selectPart}\r\n />\r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default observer(CompetitionParticipantForm);\r\n","import React, { useContext, useEffect, Fragment, useState } from \"react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { Header, Form, Button } from \"semantic-ui-react\";\r\nimport { DateInput } from \"../../../app/common/form/DateInput\";\r\nimport { Field, Form as FinalForm } from \"react-final-form\";\r\nimport {\r\n Competition,\r\n CompetitionParticipantFormValues,\r\n} from \"../../../app/models/competitionForm\";\r\nimport { FilterType } from \"../../../app/models/enums\";\r\nimport { IRanking } from \"../../../app/models/ranking\";\r\nimport LoadingComponent from \"../../../app/layout/LoadingComponent\";\r\nimport { addDays } from \"date-fns\";\r\nimport CompetitionDetailedInfo from \"../Details/CompetitionDetailedInfo\";\r\nimport CompetitionParticipantForm from \"./CompetitionParticipantForm\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { ICompetitionParticipant } from \"../../../app/models/competition\";\r\n\r\nconst CreatePage = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { participantList, loadParticipants } = rootStore.participantStore;\r\n const { competitionCache, createCompetition } = rootStore.competitionStore;\r\n const { user } = rootStore.userStore;\r\n\r\n const [competition, setCompetition] = useState(null);\r\n const [tableKey, setTableKey] = useState(0);\r\n\r\n const [placing, setPlacing] = useState(1);\r\n const [participantToEdit, setParticipantToEdit] = useState(undefined);\r\n\r\n useEffect(() => {\r\n loadParticipants();\r\n\r\n let date = new Date();\r\n let key = FilterType.Ranking + \"_\" + date.getFullYear();\r\n let cachedRanking = competitionCache.get(key);\r\n if (cachedRanking !== undefined) {\r\n date = addDays(\r\n new Date((cachedRanking as IRanking).lastCompetitionDate),\r\n 7\r\n );\r\n }\r\n\r\n let comp = new Competition(user!, date);\r\n setCompetition(comp);\r\n }, [loadParticipants, competitionCache, user]);\r\n\r\n if (competition === null || participantList === null)\r\n return ;\r\n\r\n const handleParticipantSubmit = (\r\n participantFormValues: CompetitionParticipantFormValues\r\n ) => {\r\n console.log('hallo welt');\r\n if (participantFormValues.placing === placing) {\r\n let part: ICompetitionParticipant = CompetitionParticipantFormValues.toICompetitionParticipant(participantFormValues);\r\n competition.participants.push(part);\r\n\r\n setTableKey(competition.participants.length);\r\n setPlacing(placing + 1);\r\n }\r\n else {\r\n let existingParticipants = competition.participants.filter(cp => cp.participant.id === participantFormValues.participant!.id)\r\n if (existingParticipants.length > 0)\r\n {\r\n var index = competition.participants.indexOf(existingParticipants[0]);\r\n competition.participants[index]= CompetitionParticipantFormValues.toICompetitionParticipant(participantFormValues);\r\n\r\n var maxPlacing = Math.max.apply(Math, competition.participants.map(p => p.placing));\r\n\r\n setTableKey(Math.random() * 1000);\r\n setPlacing(maxPlacing + 1);\r\n setParticipantToEdit(undefined);\r\n }\r\n }\r\n\r\n setCompetition(competition);\r\n };\r\n\r\n const submitCompetition = (comp: Competition) => {\r\n createCompetition(comp);\r\n };\r\n\r\n const handleParticipantEdit = (participant: ICompetitionParticipant) => {\r\n setParticipantToEdit(participant);\r\n };\r\n\r\n return (\r\n \r\n
Competitionerfassung
\r\n\r\n {\r\n competition.date = values.date;\r\n console.log(competition);\r\n submitCompetition(competition);\r\n }}\r\n render={({ handleSubmit, invalid, pristine }) => (\r\n
\r\n \r\n \r\n \r\n )}\r\n />\r\n\r\n \r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(CreatePage);\r\n","import React, { useContext } from \"react\";\r\nimport { Form as FinalForm, Field } from \"react-final-form\";\r\nimport { TextInput } from \"../../app/common/form/TextInput\";\r\nimport { Form, Button, Header } from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../app/stores/rootStore\";\r\nimport { IUserFormValues } from \"../../app/models/user\";\r\nimport { FORM_ERROR } from \"final-form\";\r\nimport { combineValidators, isRequired } from \"revalidate\";\r\nimport { ErrorMessage } from \"../../app/common/form/ErrorMessage\";\r\n\r\nconst validate = combineValidators({\r\n userName: isRequired(\"userName\"),\r\n displayName: isRequired(\"display name\"),\r\n email: isRequired(\"email\"),\r\n password: isRequired(\"password\"),\r\n});\r\n\r\nexport const RegisterForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { register } = rootStore.userStore;\r\n\r\n return (\r\n \r\n register(values).catch(error => ({\r\n [FORM_ERROR]: error,\r\n }))\r\n }\r\n validate={validate}\r\n render={({\r\n handleSubmit,\r\n submitting,\r\n submitError,\r\n invalid,\r\n pristine,\r\n dirtySinceLastSubmit,\r\n }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {submitError && !dirtySinceLastSubmit && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Header, Segment } from 'semantic-ui-react'; \r\nimport { ImageGallery } from \"../imageGallery/ImageGallery\";\r\nimport IGalleryImage from \"../../app/common/util/imageGallery\";\r\nimport agent from \"../../app/api/agent\";\r\n\r\nexport const Tournament = () => {\r\n const [images, setImages] = useState(null);\r\n const [imgsLoaded, setLoaded] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!imgsLoaded) {\r\n setLoaded(true);\r\n\r\n agent.Image.tournament().then((imgs) => {\r\n setImages(imgs);\r\n });\r\n\r\n }\r\n }, [imgsLoaded]);\r\n \r\n return (\r\n \r\n
Turniere
\r\n Bereits seit vielen Jahren veranstalten wir erfolgreich Dartturniere. Angefangen mit Stadtmeisterschaften in Nürnberg,\r\n über bayerische Ranglistenturniere bis zum DDV Ranglistenturnier. Über die Jahre ist unsere Ausstattung massiv gewachsen,\r\n so dass wir heute über eine 50 Boards Dartanlage verfügen, sowie alles weitere Equipment um ein großes Dartturnier zu veranstalten.\r\n

\r\n In diesem Jahr finden die Nürnberg Steeldart Open vom 24.-26.11.2023 statt. \r\n
\r\n \"Plakat\r\n\r\n

Hier gehts zur Anmeldung

\r\n\r\n

\r\n\r\n {images !== null && images.length > 0 && }\r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react'\r\nimport { Header, Segment } from 'semantic-ui-react'; \r\nimport { ImageGallery } from \"../imageGallery/ImageGallery\";\r\nimport IGalleryImage from \"../../app/common/util/imageGallery\";\r\nimport agent from \"../../app/api/agent\";\r\n\r\nexport const Event = () => {\r\n const [images, setImages] = useState(null);\r\n const [imgsLoaded, setLoaded] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!imgsLoaded) {\r\n setLoaded(true);\r\n\r\n agent.Image.exhibition().then((imgs) => {\r\n setImages(imgs);\r\n });\r\n\r\n }\r\n }, [imgsLoaded]);\r\n \r\n return (\r\n \r\n
Messen und Firmenevents
\r\n 2019 wurden wir von der AFAG angesprochen, ob wir Interesse haben den Dartsport und unseren Verein im Bereich \r\n der Men's Corner zu präsentieren. Das Ergebnis war ein voller Erfolg. Pausenlos Besucher am Stand, von denen \r\n heute einige Mitglied bei Finnigan's Harp und anderen Dartvereinen der Region geworden sind. Auch zukünftig\r\n werden wir auf Messen vertreten sein und den Dartsport präsentieren.\r\n
\r\n Weiterhin arbeiten wir zusammen mit Mazani Die Eventgestalter um den Dartsport\r\n auf Firmenveranstaltungen, Mitarbeiterfesten, Teambuilding Events und anderen Anlässen zu präsentieren und für Spaß und Unterhaltung zu sorgen. \r\n

\r\n {images !== null && }\r\n
\r\n );\r\n}","import React, { useContext, useEffect, Fragment } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport {\r\n TableBody,\r\n TableCell,\r\n Table,\r\n TableRow,\r\n TableHeader,\r\n TableHeaderCell,\r\n} from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport LoadingComponent from \"../../../app/layout/LoadingComponent\";\r\n\r\nconst EternalRanking = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadEternalRanking,\r\n loading,\r\n eternalRanking\r\n } = rootStore.competitionStore;\r\n\r\n useEffect(() => {\r\n loadEternalRanking();\r\n }, [loadEternalRanking]);\r\n\r\n if (loading) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Platz\r\n Name\r\n Punkte\r\n Teilnahmen\r\n Durchschnitt\r\n 180s\r\n Bestlegs\r\n Highfinishes\r\n \r\n \r\n \r\n {eternalRanking && eternalRanking.map((c) => (\r\n \r\n {eternalRanking.indexOf(c) + 1}\r\n {c.name}\r\n {c.points}\r\n {c.participations}\r\n {(c.points / c.participations).toFixed(2)}\r\n {c.oneEighties}\r\n {c.bestLegs}\r\n {c.highFinishes}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default observer(EternalRanking);","import React from 'react'\r\nimport { Header, Segment } from 'semantic-ui-react';\r\n\r\nexport const SingleLeague = () => {\r\n return (\r\n \r\n
Einzel Liga
\r\n Auf Reaktion der vielen Anfragen möchten wir eine Einzel Liga starten.
\r\n Die Liga verkörpert eine einzigartige Gelegenheit, dein Darts-Spiel auf ein höheres Niveau zu bringen.\r\n Unser Konzept für die Liga ist klar: Es handelt sich um eine Trainingsliga, in der jeder Spieltag die gleiche Anzahl an Legs bietet, um sicherzustellen,\r\n dass du jede Woche genug Spielzeit und Gelegenheit zum Üben hast. Unsere Startgebühr sorgt dafür,\r\n dass ein gewisser Wettbewerbsdruck vorhanden ist und deine Konzentration immer auf höchstem Niveau bleibt.

\r\n\r\n In dieser Liga zählt jedes Leg, da die Rangliste nach der Leg-Differenz erstellt wird. Das bedeutet,\r\n dass jedes Spiel wichtig ist und du über längere Distanzen trainiert wirst.\r\n Mit 9 Spielern pro Liga und 8 Spieltagen, die jeweils innerhalb von zwei Wochen gespielt werden müssen, bieten wir dir eine spannende Saison über 16 Wochen.

\r\n\r\n Unsere Spielstätte, die Cafe Bar Garage, bietet die perfekte Atmosphäre für ein aufregendes Darts-Erlebnis,\r\n unterstützt von 2K-Software. In der ersten Liga spielst du 12 Legs (501 D.O.),\r\n während die Anzahl der Legs in anderen Ligen je nach Spielstärke variiert.

\r\n\r\n Die Liga fördert Fairness und Wettbewerb, und die besten Spieler haben die Möglichkeit aufzusteigen.\r\n Die Ligazusammensetzung erfolgt nach Spielstärke, um für spannende und ausgeglichene Spiele zu sorgen.

\r\n\r\n Mit einem Startgeld von nur 25 € pro Person und attraktiven Auszahlungen für die besten Spieler - 1. Platz: 75 €, 2. Platz: 60 €, 3. Platz: 50 € -\r\n ist die Teilnahme erschwinglich und belohnend.

\r\n\r\n Bitte beachte, dass nur diejenigen spielberechtigt sind, die bis zum Anmeldeschluss die 25 € überwiesen haben.\r\n Außerdem gehen 40 € an den Verein, um die 2K-Gebühren und die Ausstattung der Spielorte zu decken.

\r\n\r\n Die 1. Saison der Finnigan's Harp Einzel Liga hat begonnen. Insgesamt 27 Teilnehmer spielen in drei, nach Spielstärke gestaffelten, Ligen ihre Position aus.
\r\n Spieltage, Ergebnisse und Statistiken findest du in der 2k Software:
\r\n Premier League
\r\n Challenger League
\r\n Rookie League\r\n
\r\n );\r\n}","import React, { Fragment, useContext, useEffect } from \"react\";\r\nimport { Container } from \"semantic-ui-react\";\r\nimport NavBar from \"../../features/nav/NavBar\";\r\nimport {\r\n Route,\r\n withRouter,\r\n RouteComponentProps,\r\n Switch,\r\n} from \"react-router-dom\";\r\nimport HomePage from \"../../features/home/HomePage\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport NotFound from \"./NotFound\";\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport { RootStoreContext } from \"../stores/rootStore\";\r\nimport LoadingComponent from \"./LoadingComponent\";\r\nimport ModalContainer from \"../common/modals/ModalContainer\";\r\nimport PrivateRoute from \"./PrivateRoute\";\r\nimport CompetitionDashboard from \"../../features/competition/Dashboard/CompetitionDashboard\";\r\nimport CompetitionDetails from \"../../features/competition/Details/CompetitionDetails\";\r\nimport ParticipantPage from \"../../features/participant/ParticipantPage\";\r\nimport TeamDashboard from \"../../features/team/TeamDashboard\";\r\nimport ImageModalContainer from \"../common/modals/ImageModalContainer\";\r\nimport { Garage } from \"../../features/staticcontent/Garage\";\r\nimport { Sponsors } from \"../../features/staticcontent/Sponsors\";\r\nimport { Impress } from \"../../features/staticcontent/Impress\";\r\nimport { Footer } from \"../../features/staticcontent/Footer\";\r\nimport CreatePage from \"../../features/competition/Create/CreatePage\";\r\nimport { RegisterForm } from \"../../features/user/RegisterForm\";\r\nimport { Tournament } from \"../../features/staticcontent/Tournament\";\r\nimport { Event } from \"../../features/staticcontent/Event\";\r\nimport EternalRanking from \"../../features/competition/EternalRanking/EternalRanking\";\r\nimport { SingleLeague } from \"../../features/staticcontent/SingleLeague\";\r\n\r\nconst App: React.FC = ({ location }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { setAppLoaded, token, appLoaded } = rootStore.commonStore;\r\n const { getUser } = rootStore.userStore;\r\n\r\n useEffect(() => {\r\n if (token) { \r\n getUser().finally(() => setAppLoaded());\r\n } else {\r\n setAppLoaded();\r\n }\r\n }, [getUser, setAppLoaded, token]);\r\n\r\n if (!appLoaded) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n */}\r\n \r\n \r\n \r\n