You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							67 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							67 lines
						
					
					
						
							2.7 KiB
						
					
					
				| import { format, parseISO } from 'date-fns';
 | |
| import { GetStaticProps } from 'next';
 | |
| import Link from 'next/link';
 | |
| import React from 'react';
 | |
| import Layout from '../components/Layout';
 | |
| import { getAllPosts } from '../lib/api';
 | |
| import { PostType } from '../types/post';
 | |
| 
 | |
| type IndexProps = {
 | |
|   posts: PostType[];
 | |
| };
 | |
| 
 | |
| export const Index = ({ posts }: IndexProps): JSX.Element => {
 | |
|   return (
 | |
|     <Layout>
 | |
|       <h1>Робототехнический фестиваль RobotTop</h1>
 | |
|       <p>RobotTop – это робототехнические соревнования, в которых могут принять участие молодые любители  робототехники, объединившись в команды.</p>
 | |
|       <ul className="list-disc pl-4 my-6">
 | |
|         <li className="mt-2"><b>Дата проведения </b> с 16 января по 20 января 2023 года</li>
 | |
|         <li className="mt-2"><b>Место проведения </b> г. Краснодар ул. Байбакова 17 (МАОУ СОШ 103)</li>
 | |
|         <li className="mt-2">Любая робототехническая платформа</li>
 | |
|         <li className="mt-2">Отдельная возрастная группа для LEGO WEDO 1-2 класс</li>
 | |
|         <li className="mt-2">Команда от 2 до 3 человек</li>
 | |
|         <li className="mt-2">11 возрастных групп</li>
 | |
|         <li className="mt-2">Свобода в творчестве</li>
 | |
|       </ul>
 | |
|       <Link href={`/registration`}>
 | |
|       <a
 | |
|         className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white"
 | |
|       >
 | |
|         Регистрация команды
 | |
|       </a>
 | |
|       </Link>
 | |
| 
 | |
|       {posts.map((post) => (
 | |
|         <article key={post.slug} className="mt-12">
 | |
|           <p className="mb-1 text-sm text-gray-500 dark:text-gray-400">
 | |
|             {format(parseISO(post.date), 'MMMM dd, yyyy')}
 | |
|           </p>
 | |
|           <h1 className="mb-2 text-xl">
 | |
|             <Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}>
 | |
|               <a className="text-gray-900 dark:text-white dark:hover:text-blue-400">
 | |
|                 {post.title}
 | |
|               </a>
 | |
|             </Link>
 | |
|           </h1>
 | |
|           <p className="mb-3">{post.description}</p>
 | |
|           <p>
 | |
|             <Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}>
 | |
|               <a>Подробнее...</a>
 | |
|             </Link>
 | |
|           </p>
 | |
|         </article>
 | |
|       ))}
 | |
|     </Layout>
 | |
|   );
 | |
| };
 | |
| 
 | |
| export const getStaticProps: GetStaticProps = async () => {
 | |
|   const posts = getAllPosts(['date', 'description', 'slug', 'title']);
 | |
| 
 | |
|   return {
 | |
|     props: { posts },
 | |
|   };
 | |
| };
 | |
| 
 | |
| export default Index;
 | |
| 
 |