parent
c979223672
commit
c96083362a
@ -0,0 +1,3 @@ |
|||||||
|
**/node_modules/* |
||||||
|
**/out/* |
||||||
|
**/.next/* |
@ -0,0 +1,47 @@ |
|||||||
|
{ |
||||||
|
"parser": "@typescript-eslint/parser", |
||||||
|
"plugins": ["@typescript-eslint"], |
||||||
|
"extends": [ |
||||||
|
"eslint:recommended", |
||||||
|
"plugin:react/recommended", |
||||||
|
"plugin:@typescript-eslint/recommended" |
||||||
|
// Uncomment the following lines to enable eslint-config-prettier |
||||||
|
// Is not enabled right now to avoid issues with the Next.js repo |
||||||
|
// "prettier", |
||||||
|
], |
||||||
|
"env": { |
||||||
|
"es6": true, |
||||||
|
"browser": true, |
||||||
|
"jest": true, |
||||||
|
"node": true |
||||||
|
}, |
||||||
|
"settings": { |
||||||
|
"react": { |
||||||
|
"version": "detect" |
||||||
|
} |
||||||
|
}, |
||||||
|
"rules": { |
||||||
|
"react/react-in-jsx-scope": 0, |
||||||
|
"react/display-name": 0, |
||||||
|
"react/prop-types": 0, |
||||||
|
"@typescript-eslint/explicit-function-return-type": 0, |
||||||
|
"@typescript-eslint/explicit-member-accessibility": 0, |
||||||
|
"@typescript-eslint/indent": 0, |
||||||
|
"@typescript-eslint/member-delimiter-style": 0, |
||||||
|
"@typescript-eslint/no-explicit-any": 0, |
||||||
|
"@typescript-eslint/no-var-requires": 0, |
||||||
|
"@typescript-eslint/no-use-before-define": 0, |
||||||
|
"@typescript-eslint/no-unused-vars": [ |
||||||
|
2, |
||||||
|
{ |
||||||
|
"argsIgnorePattern": "^_" |
||||||
|
} |
||||||
|
], |
||||||
|
"no-console": [ |
||||||
|
2, |
||||||
|
{ |
||||||
|
"allow": ["warn", "error"] |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. |
||||||
|
|
||||||
|
# dependencies |
||||||
|
/node_modules |
||||||
|
/.pnp |
||||||
|
.pnp.js |
||||||
|
|
||||||
|
# testing |
||||||
|
/coverage |
||||||
|
|
||||||
|
# next.js |
||||||
|
/.next/ |
||||||
|
/out/ |
||||||
|
|
||||||
|
# production |
||||||
|
/build |
||||||
|
|
||||||
|
# misc |
||||||
|
.DS_Store |
||||||
|
*.pem |
||||||
|
|
||||||
|
# debug |
||||||
|
npm-debug.log* |
||||||
|
yarn-debug.log* |
||||||
|
yarn-error.log* |
||||||
|
|
||||||
|
# local env files |
||||||
|
.env.local |
||||||
|
.env.development.local |
||||||
|
.env.test.local |
||||||
|
.env.production.local |
||||||
|
|
||||||
|
# vercel |
||||||
|
.vercel |
@ -0,0 +1,12 @@ |
|||||||
|
// .env.local |
||||||
|
|
||||||
|
USER_="crapshr6_robotop" |
||||||
|
HOST="crapshr6.beget.tech" |
||||||
|
DATABASE="crapshr6_pizza" |
||||||
|
PASSWORD="M2PJD&wG" |
||||||
|
|
||||||
|
MAILSERVER="smtp.beget.com" |
||||||
|
MAILNAME="service@vsst.su" |
||||||
|
MAILPASS = "&ekS0NPD" |
||||||
|
|
||||||
|
SITE="http://localhost:3000/api/" |
@ -0,0 +1,12 @@ |
|||||||
|
// .env.local |
||||||
|
|
||||||
|
USER_="crapshr6_robotop" |
||||||
|
HOST="crapshr6.beget.tech" |
||||||
|
DATABASE="crapshr6_robotop" |
||||||
|
PASSWORD="5NC*%v0v" |
||||||
|
|
||||||
|
MAILSERVER="smtp.beget.com" |
||||||
|
MAILNAME="service@vsst.su" |
||||||
|
MAILPASS = "&ekS0NPD" |
||||||
|
|
||||||
|
SITE="http://localhost:3000/api/" |
@ -0,0 +1,12 @@ |
|||||||
|
// .env.local |
||||||
|
|
||||||
|
USER_="crapshr6_robotop" |
||||||
|
HOST="crapshr6.beget.tech" |
||||||
|
DATABASE="crapshr6_robotop" |
||||||
|
PASSWORD="5NC*%v0v" |
||||||
|
|
||||||
|
MAILSERVER="smtp.beget.com" |
||||||
|
MAILNAME="service@vsst.su" |
||||||
|
MAILPASS = "&ekS0NPD" |
||||||
|
|
||||||
|
SITE="http://localhost:3000/api/" |
@ -0,0 +1,12 @@ |
|||||||
|
// .env.local |
||||||
|
|
||||||
|
USER_="crapshr6_robotop" |
||||||
|
HOST="crapshr6.beget.tech" |
||||||
|
DATABASE="crapshr6_robotop" |
||||||
|
PASSWORD="sJ9&alNk" |
||||||
|
|
||||||
|
MAILSERVER="smtp.beget.com" |
||||||
|
MAILNAME="service@vsst.su" |
||||||
|
MAILPASS = "&ekS0NPD" |
||||||
|
|
||||||
|
SITE="http://localhost:3000/api/" |
@ -0,0 +1,32 @@ |
|||||||
|
# NextJS - Typescript - MDX - Blog |
||||||
|
|
||||||
|
A Next.js starter for your next blog or personal site. Built with: |
||||||
|
|
||||||
|
- [Typescript](https://www.typescriptlang.org/) |
||||||
|
- Write posts with [MDX](https://mdxjs.com/) |
||||||
|
- Style with [Tailwind CSS](https://tailwindcss.com/) |
||||||
|
- Linting with [ESLint](https://eslint.org/) |
||||||
|
- Formatting with [Prettier](https://prettier.io/) |
||||||
|
- Linting, typechecking and formatting on by default using [`husky`](https://github.com/typicode/husky) for commit hooks |
||||||
|
- Testing with [Jest](https://jestjs.io/) and [`react-testing-library`](https://testing-library.com/docs/react-testing-library/intro) |
||||||
|
|
||||||
|
This Starter is **heavily** inspired by [Lee Robinson](https://github.com/leerob/leerob.io) and [Anson Lichtfuss](https://github.com/ansonlichtfuss/website). |
||||||
|
|
||||||
|
👀 [View the Live Demo](https://nextjs-typescript-mdx-blog.vercel.app/) |
||||||
|
|
||||||
|
## Getting Started |
||||||
|
|
||||||
|
```bash |
||||||
|
git clone https://github.com/ChangoMan/nextjs-typescript-mdx-blog.git |
||||||
|
cd nextjs-typescript-mdx-blog |
||||||
|
|
||||||
|
yarn install |
||||||
|
# or |
||||||
|
npm install |
||||||
|
|
||||||
|
yarn dev |
||||||
|
# or |
||||||
|
npm run dev |
||||||
|
``` |
||||||
|
|
||||||
|
Your new site will be up at http://localhost:3000/ |
@ -0,0 +1,3 @@ |
|||||||
|
# NextJS - Typescript - MDX - Blog |
||||||
|
|
||||||
|
A Next.js starter for your next blog or personal site. Built with: |
@ -0,0 +1,3 @@ |
|||||||
|
# RoboTop - Сайт для робототехнического фестиваля |
||||||
|
|
||||||
|
Next.js |
@ -0,0 +1,42 @@ |
|||||||
|
import NextHead from 'next/head'; |
||||||
|
import { useRouter } from 'next/router'; |
||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Head = ({ customMeta }: { customMeta?: MetaProps }): JSX.Element => { |
||||||
|
const router = useRouter(); |
||||||
|
const meta: MetaProps = { |
||||||
|
title: 'Hunter Chang - Website', |
||||||
|
description: |
||||||
|
'Sleep Deprived Father. Senior Web Developer. Lover of all things Ramen and Kpop.', |
||||||
|
image: `${WEBSITE_HOST_URL}/images/site-preview.png`, |
||||||
|
type: 'website', |
||||||
|
...customMeta, |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<NextHead> |
||||||
|
<title>{meta.title}</title> |
||||||
|
<meta content={meta.description} name="description" /> |
||||||
|
<meta property="og:url" content={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<link rel="canonical" href={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<meta property="og:type" content={meta.type} /> |
||||||
|
<meta property="og:site_name" content="Hunter Chang - Website" /> |
||||||
|
<meta property="og:description" content={meta.description} /> |
||||||
|
<meta property="og:title" content={meta.title} /> |
||||||
|
<meta property="og:image" content={meta.image} /> |
||||||
|
<meta name="twitter:card" content="summary_large_image" /> |
||||||
|
<meta name="twitter:site" content="@huntarosan" /> |
||||||
|
<meta name="twitter:title" content={meta.title} /> |
||||||
|
<meta name="twitter:description" content={meta.description} /> |
||||||
|
<meta name="twitter:image" content={meta.image} /> |
||||||
|
{meta.date && ( |
||||||
|
<meta property="article:published_time" content={meta.date} /> |
||||||
|
)} |
||||||
|
</NextHead> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Head; |
@ -0,0 +1,42 @@ |
|||||||
|
import NextHead from 'next/head'; |
||||||
|
import { useRouter } from 'next/router'; |
||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Head = ({ customMeta }: { customMeta?: MetaProps }): JSX.Element => { |
||||||
|
const router = useRouter(); |
||||||
|
const meta: MetaProps = { |
||||||
|
title: 'РоботТоп - робототехнический фестиваль', |
||||||
|
description: |
||||||
|
'Sleep Deprived Father. Senior Web Developer. Lover of all things Ramen and Kpop.', |
||||||
|
image: `${WEBSITE_HOST_URL}/images/site-preview.png`, |
||||||
|
type: 'website', |
||||||
|
...customMeta, |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<NextHead> |
||||||
|
<title>{meta.title}</title> |
||||||
|
<meta content={meta.description} name="description" /> |
||||||
|
<meta property="og:url" content={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<link rel="canonical" href={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<meta property="og:type" content={meta.type} /> |
||||||
|
<meta property="og:site_name" content="Hunter Chang - Website" /> |
||||||
|
<meta property="og:description" content={meta.description} /> |
||||||
|
<meta property="og:title" content={meta.title} /> |
||||||
|
<meta property="og:image" content={meta.image} /> |
||||||
|
<meta name="twitter:card" content="summary_large_image" /> |
||||||
|
<meta name="twitter:site" content="@huntarosan" /> |
||||||
|
<meta name="twitter:title" content={meta.title} /> |
||||||
|
<meta name="twitter:description" content={meta.description} /> |
||||||
|
<meta name="twitter:image" content={meta.image} /> |
||||||
|
{meta.date && ( |
||||||
|
<meta property="article:published_time" content={meta.date} /> |
||||||
|
)} |
||||||
|
</NextHead> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Head; |
@ -0,0 +1,42 @@ |
|||||||
|
import NextHead from 'next/head'; |
||||||
|
import { useRouter } from 'next/router'; |
||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Head = ({ customMeta }: { customMeta?: MetaProps }): JSX.Element => { |
||||||
|
const router = useRouter(); |
||||||
|
const meta: MetaProps = { |
||||||
|
title: 'РоботТоп - робототехнический фестиваль', |
||||||
|
description: |
||||||
|
'РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.', |
||||||
|
image: `${WEBSITE_HOST_URL}/images/site-preview.png`, |
||||||
|
type: 'website', |
||||||
|
...customMeta, |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<NextHead> |
||||||
|
<title>{meta.title}</title> |
||||||
|
<meta content={meta.description} name="РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды." /> |
||||||
|
<meta property="og:url" content={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<link rel="canonical" href={`${WEBSITE_HOST_URL}${router.asPath}`} /> |
||||||
|
<meta property="og:type" content={meta.type} /> |
||||||
|
<meta property="og:site_name" content="РоботТоп - робототехнический фестиваль" /> |
||||||
|
<meta property="og:description" content={meta.description} /> |
||||||
|
<meta property="og:title" content={meta.title} /> |
||||||
|
<meta property="og:image" content={meta.image} /> |
||||||
|
<meta name="twitter:card" content="summary_large_image" /> |
||||||
|
<meta name="twitter:site" content="@huntarosan" /> |
||||||
|
<meta name="twitter:title" content={meta.title} /> |
||||||
|
<meta name="twitter:description" content={meta.description} /> |
||||||
|
<meta name="twitter:image" content={meta.image} /> |
||||||
|
{meta.date && ( |
||||||
|
<meta property="article:published_time" content={meta.date} /> |
||||||
|
)} |
||||||
|
</NextHead> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Head; |
@ -0,0 +1,12 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const RegistrationForm = (): JSX.Element => { |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
|
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default RegistrationForm; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Built by{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://twitter.com/huntarosan" |
||||||
|
> |
||||||
|
Hunter Chang |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://twitter.com/huntarosan" |
||||||
|
> |
||||||
|
Pavel Krasnikov |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Pavel Krasnikov |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="p-4 w-full"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="p-4 w-full">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w-md">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto ">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-2xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-3xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-4xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-6xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-7xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-1x2 px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-1x5 px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5x5 px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-3xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className=" px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,44 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { MetaProps } from '../types/layout'; |
||||||
|
import Head from './Head'; |
||||||
|
import Navigation from './Navigation'; |
||||||
|
import ThemeSwitch from './ThemeSwitch'; |
||||||
|
|
||||||
|
type LayoutProps = { |
||||||
|
children: React.ReactNode; |
||||||
|
customMeta?: MetaProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export const WEBSITE_HOST_URL = 'https://nextjs-typescript-mdx-blog.vercel.app'; |
||||||
|
|
||||||
|
const Layout = ({ children, customMeta }: LayoutProps): JSX.Element => { |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Head customMeta={customMeta} /> |
||||||
|
<header> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
<div className="flex items-center justify-between py-6"> |
||||||
|
<Navigation /> |
||||||
|
<ThemeSwitch /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</header> |
||||||
|
<main> |
||||||
|
<div className="max-w-5xl px-8 py-4 mx-auto max-w">{children}</div> |
||||||
|
</main> |
||||||
|
<footer className="py-8"> |
||||||
|
<div className="max-w-5xl px-8 mx-auto"> |
||||||
|
Разработано{' '} |
||||||
|
<a |
||||||
|
className="text-gray-900 dark:text-white" |
||||||
|
href="https://krasnikov.pro" |
||||||
|
> |
||||||
|
Krasnikov.pro |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</footer> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default Layout; |
@ -0,0 +1,12 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const RegistrationForm = (): JSX.Element => { |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
|
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default RegistrationForm; |
@ -0,0 +1,12 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
|
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,45 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,47 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => console.log(json.user)) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,47 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => console.log(json.user)) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,47 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => console.log(res)) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,47 @@ |
|||||||
|
import React from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => console.log(json)) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,50 @@ |
|||||||
|
import React, {useState} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json.user)) |
||||||
|
|
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,50 @@ |
|||||||
|
import React, {useState} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
|
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,51 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
useEffect(() => {
|
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json))
|
||||||
|
}); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,51 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
useEffect(() => {
|
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json))
|
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,51 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
Фиксики |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
МАОУ СОШ 103 |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,55 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState(0); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows) => { |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
} |
||||||
|
)} |
||||||
|
|
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,55 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows) => { |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
} |
||||||
|
)} |
||||||
|
|
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,55 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700"> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
|
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,55 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
|
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,54 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,60 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
Иван, Петр, Дмитрий |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,60 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +' ' + rows.name_second_participant + ' ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,60 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,60 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', /n' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,60 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,82 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<><div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,65 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<><div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,65 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<><div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
|
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,67 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<><div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) |
||||||
|
)} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
</> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Класс |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
1 |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
|
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.class} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(...rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows,count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min([rows.class])} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,61 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class[0])} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(parseInt(rows.class, 10))} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(parseInt(rows.class))} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min([4,5,7]} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min((4,5,7)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(4,5,7)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(5,4,7)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.class} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,62 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user) |
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(user[3].class) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(Math.min(user[3].class)) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(Math.min(user[2].class)) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(Math.min(5,2,6)) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(Math.min(5,6,8)) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
@ -0,0 +1,63 @@ |
|||||||
|
import React, {useState, useEffect} from 'react'; |
||||||
|
|
||||||
|
export const LoadingTeamsForm = (): JSX.Element => { |
||||||
|
const [user, setUser] = useState([]); |
||||||
|
useEffect(() => { |
||||||
|
fetch('/api/loadingLegisteredCommands', { method: 'POST'}) |
||||||
|
.then(res => res.json()) |
||||||
|
.then(json => setUser(json)) |
||||||
|
},[1]); |
||||||
|
console.log(Math.min(8,6,8)) |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="relative overflow-x-auto shadow-md sm:rounded-lg"> |
||||||
|
<div className="px-4 sm:px-2 m-4 block"> |
||||||
|
<h3 className="text-lg font-medium leading-6">Зарегистрированные команды</h3> |
||||||
|
</div> |
||||||
|
<table className="w-full text-sm text-left text-gray-500 dark:text-gray-400"> |
||||||
|
<thead className="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400"> |
||||||
|
<tr> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Название команды |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО тренера |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Учебное заведение |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
ФИО участников |
||||||
|
</th> |
||||||
|
<th scope="col" className="px-6 py-3"> |
||||||
|
Возрастная группа |
||||||
|
</th> |
||||||
|
</tr> |
||||||
|
</thead> |
||||||
|
<tbody> |
||||||
|
{user.map((rows, count) => ( |
||||||
|
<tr className="bg-white border-b dark:bg-gray-800 dark:border-gray-700" key={count}> |
||||||
|
<th scope="row" className="px-6 py-4 font-medium text-gray-900 dark:text-white whitespace-nowrap"> |
||||||
|
{rows.team_name} |
||||||
|
</th> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_team_coach} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.training_institution_team} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{rows.name_first_participant +', ' + rows.name_second_participant + ', ' + rows.name_third_party} |
||||||
|
</td> |
||||||
|
<td className="px-6 py-4"> |
||||||
|
{Math.min(rows.class)} |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
) )} |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
export default LoadingTeamsForm; |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue