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