Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: add next lint and prettier workflow #307

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
29 changes: 29 additions & 0 deletions .github/workflows/next-lint-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Next.js Linting Check

on:
pull_request:
branches:
- master
push:
branches:
- master

jobs:
lint:
name: Linting with Next.js
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Use Node.js
uses: actions/setup-node@v3
ashmit-coder marked this conversation as resolved.
Show resolved Hide resolved
with:
node-version: '20'

- name: Install Dependencies
run: npm install

- name: Run Linting
run: npm run lint
9 changes: 8 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
**
.next
node_modules
.nvmrc
CODE_OF_CONDUCT.md
CODEOWNERS
CONTRIBUTING.md
README.md
.github
128 changes: 74 additions & 54 deletions components/About/about.js
Original file line number Diff line number Diff line change
@@ -1,58 +1,78 @@
/* eslint-disable react/no-unescaped-entities */
import React from 'react'
import Heading from '../Typography/heading';
import Paragraph from '../Typography/paragraph';
import Button from '../Buttons/button';
import Image from 'next/image';
import React from "react";
import Heading from "../Typography/heading";
import Paragraph from "../Typography/paragraph";
import Button from "../Buttons/button";
import Image from "next/image";
function About() {
return (
<div className='p-24 container flex items-center justify-center w-full'>
<div className='w-[1120px] lg:w-full flex lg:flex-col-reverse items-center justify-between'>
<div style={{'--image-url': `url('/img/about.jpeg')`}} className='lg:mt-16 bg-[image:var(--image-url)] bg-center bg-cover w-[450px] h-[550px] sm:w-[100%] sm:h-[500px] rounded-[30px]' >
</div>
<div className='w-[600px] ml-10 lg:ml-0 lg:w-full lg:text-center'>
<div className='flex items-center lg:justify-center'>
<div className='w-[40px] h-[3px] bg-blue-400' />
<div className='ml-4 text-lg sm:text-sm text-white font-semi-bold'>About The Event</div>
</div>
<Heading typeStyle='heading-md' className='text-gradient lg:mt-10'>
AACoT'24
</Heading>
<Paragraph typeStyle='body-lg' className="mt-6" textColor='text-gray-200' >
The AsyncAPI Conf on Tour is an official event created by the AsyncAPI
Initiative. This conference is aimed primarily at the community to share and
exchange experiences between existing users and new members. We plan to
integrate new members into the community and expand their knowledge about
the project.
</Paragraph>
<Paragraph typeStyle='body-lg' className="mt-6" textColor='text-gray-200'>
We are currently looking for sponsors, for more details please read our Sponsorship Prospectus.
</Paragraph>
<div className='mt-10 flex gap-4 sm:flex-col lg:justify-center'>
<a
href='https://opencollective.com/asyncapi/events/asyncapi-conference-on-tour-6b3c0aa1'
target='_blank'
rel='noreferrer'
>
<Button className='w-[200px]'>Become a sponsor now</Button>
</a>
<a href='/pdf/conf-2024.pdf' download= {`conf ${new Date().getFullYear()}.pdf`} >
<Button overlay={true} className='w-[240px] border'>
<div className='flex gap-2 justify-center'>
<div>
<Image src="/img/Download_icon.png" height={20} width={20} alt='Download-icon' objectFit='contain'/>
</div>
<div>
Sponsorship prospectus
</div>
</div>
</Button>
</a>
</div>
</div>
</div>
</div>
);
return (
<div className="p-24 container flex items-center justify-center w-full">
<div className="w-[1120px] lg:w-full flex lg:flex-col-reverse items-center justify-between">
<div
style={{ "--image-url": `url('/img/about.jpeg')` }}
className="lg:mt-16 bg-[image:var(--image-url)] bg-center bg-cover w-[450px] h-[550px] sm:w-[100%] sm:h-[500px] rounded-[30px]"
></div>
<div className="w-[600px] ml-10 lg:ml-0 lg:w-full lg:text-center">
<div className="flex items-center lg:justify-center">
<div className="w-[40px] h-[3px] bg-blue-400" />
<div className="ml-4 text-lg sm:text-sm text-white font-semi-bold">
About The Event
</div>
</div>
<Heading typeStyle="heading-md" className="text-gradient lg:mt-10">
AACoT'24
</Heading>
<Paragraph
typeStyle="body-lg"
className="mt-6"
textColor="text-gray-200"
>
The AsyncAPI Conf on Tour is an official event created by the
AsyncAPI Initiative. This conference is aimed primarily at the
community to share and exchange experiences between existing users
and new members. We plan to integrate new members into the community
and expand their knowledge about the project.
</Paragraph>
<Paragraph
typeStyle="body-lg"
className="mt-6"
textColor="text-gray-200"
>
We are currently looking for sponsors, for more details please read
our Sponsorship Prospectus.
</Paragraph>
<div className="mt-10 flex gap-4 sm:flex-col lg:justify-center">
<a
href="https://opencollective.com/asyncapi/events/asyncapi-conference-on-tour-6b3c0aa1"
target="_blank"
rel="noreferrer"
>
<Button className="w-[200px]">Become a sponsor now</Button>
</a>
<a
href="/pdf/conf-2024.pdf"
download={`conf ${new Date().getFullYear()}.pdf`}
>
<Button overlay={true} className="w-[240px] border">
<div className="flex gap-2 justify-center">
<div>
<Image
src="/img/Download_icon.png"
height={20}
width={20}
alt="Download-icon"
objectFit="contain"
/>
</div>
<div>Sponsorship prospectus</div>
</div>
</Button>
</a>
</div>
</div>
</div>
</div>
);
}

export default About
export default About;
192 changes: 113 additions & 79 deletions components/Agenda/agenda.js
Original file line number Diff line number Diff line change
@@ -1,84 +1,118 @@
import React from 'react'
import Heading from '../Typography/heading'
import Paragraph from '../Typography/paragraph'
import Image from 'next/image'
import React from "react";
import Heading from "../Typography/heading";
import Paragraph from "../Typography/paragraph";
import Image from "next/image";

function Agenda({ city }) {
return (
<div className=''>
<div className='flex flex-col justify-center items-center'>

<Heading className='text-[30px] text-white'>
Agenda
</Heading>
{!city.agenda && <div className='w-[720px] lg:w-full mt-[140px] text-center'>
<Heading typeStyle='lg' className='text-white text-[30px]'>
Agenda Coming Soon - Stay Tuned!
</Heading>
</div>}
</div>

{city.agenda && <div className='mt-[40px]'>
<Heading
typeStyle='heading-md'
className='text-gradient text-2xl'
level='h3'>
{city.date}
</Heading>

<div className='mt-[40px]'>
{city.agenda.map((talk) => {
return <div key={talk.session} className={`flex sm:flex-col justify-between mt-[50px] ${!talk.speaker && 'countdown-text-gradient'}`}>
<Paragraph typeStyle='body-md'>
{talk.time}
</Paragraph>
<div className='flex justify-between lg:flex-col w-[75%] lg:w-full'>
<div className='w-[50%] lg:w-full'>
<Paragraph typeStyle='body-sm' className=''>
{talk.type}
</Paragraph>
<Heading level='h3' typeStyle='heading-md-semibold' className='mt-[23px] text-white text-[20px] sm:text-[18px]'>
{talk.session}
</Heading>
</div>
{talk.speaker && typeof talk.speaker === 'number' ? <div className='flex items-center lg:mt-4'>
<div className='w-[94px] h-[94px]'>
<Image src={city.speakers[talk.speaker - 1].img} alt={city.speakers[talk.speaker -1].name} className='object-cover rounded-full' height={'100%'} width={'100%'} />
</div>
<div className='ml-4 w-[300px] sm:w-[250px]'>
<Heading typeStyle='heading-sm-semibold' className='text-white'>
{city.speakers[talk.speaker-1].name}
</Heading>
<Paragraph typeStyle='body-sm' className="mt-2">
{city.speakers[talk.speaker-1].title}
</Paragraph>
</div>
</div> : <div></div>}
{talk.speaker && typeof talk.speaker === 'object' && <div className='flex flex-col'>
{talk.speaker.map((speak, i) => <div key={i} className='mt-6'>
<div className='flex items-center lg:mt-4'>
<div className='w-[94px] h-[94px]'>
<Image src={city.speakers[speak - 1].img} alt={city.speakers[speak - 1].name} className='object-cover rounded-full' height={'100%'} width={'100%'} />
</div>
<div className='ml-4 w-[300px] sm:w-[250px]'>
<Heading typeStyle='heading-sm-semibold' className='text-white'>
{city.speakers[speak-1].name}
</Heading>
<Paragraph typeStyle='body-sm' className="mt-2">
{city.speakers[speak-1].title}
</Paragraph>
</div>
</div>
</div> )
}
</div>}
</div>
</div>
})}
</div>
</div>}
</div>
);
<div className="">
<div className="flex flex-col justify-center items-center">
<Heading className="text-[30px] text-white">Agenda</Heading>
{!city.agenda && (
<div className="w-[720px] lg:w-full mt-[140px] text-center">
<Heading typeStyle="lg" className="text-white text-[30px]">
Agenda Coming Soon - Stay Tuned!
</Heading>
</div>
)}
</div>

{city.agenda && (
<div className="mt-[40px]">
<Heading
typeStyle="heading-md"
className="text-gradient text-2xl"
level="h3"
>
{city.date}
</Heading>

<div className="mt-[40px]">
{city.agenda.map((talk) => {
return (
<div
key={talk.session}
className={`flex sm:flex-col justify-between mt-[50px] ${!talk.speaker && "countdown-text-gradient"}`}
>
<Paragraph typeStyle="body-md">{talk.time}</Paragraph>
<div className="flex justify-between lg:flex-col w-[75%] lg:w-full">
<div className="w-[50%] lg:w-full">
<Paragraph typeStyle="body-sm" className="">
{talk.type}
</Paragraph>
<Heading
level="h3"
typeStyle="heading-md-semibold"
className="mt-[23px] text-white text-[20px] sm:text-[18px]"
>
{talk.session}
</Heading>
</div>
{talk.speaker && typeof talk.speaker === "number" ? (
<div className="flex items-center lg:mt-4">
<div className="w-[94px] h-[94px]">
<Image
src={city.speakers[talk.speaker - 1].img}
alt={city.speakers[talk.speaker - 1].name}
className="object-cover rounded-full"
height={"100%"}
width={"100%"}
/>
</div>
<div className="ml-4 w-[300px] sm:w-[250px]">
<Heading
typeStyle="heading-sm-semibold"
className="text-white"
>
{city.speakers[talk.speaker - 1].name}
</Heading>
<Paragraph typeStyle="body-sm" className="mt-2">
{city.speakers[talk.speaker - 1].title}
</Paragraph>
</div>
</div>
) : (
<div></div>
)}
{talk.speaker && typeof talk.speaker === "object" && (
<div className="flex flex-col">
{talk.speaker.map((speak, i) => (
<div key={i} className="mt-6">
<div className="flex items-center lg:mt-4">
<div className="w-[94px] h-[94px]">
<Image
src={city.speakers[speak - 1].img}
alt={city.speakers[speak - 1].name}
className="object-cover rounded-full"
height={"100%"}
width={"100%"}
/>
</div>
<div className="ml-4 w-[300px] sm:w-[250px]">
<Heading
typeStyle="heading-sm-semibold"
className="text-white"
>
{city.speakers[speak - 1].name}
</Heading>
<Paragraph typeStyle="body-sm" className="mt-2">
{city.speakers[speak - 1].title}
</Paragraph>
</div>
</div>
</div>
))}
</div>
)}
</div>
</div>
);
})}
</div>
</div>
)}
</div>
);
}

export default Agenda
export default Agenda;
Loading
Loading