import Card from '../Components/Card'
import TileRow from '../Components/TileRow'
import Header from '../Components/Header'
import AutoSpacing from '../Components/AutoSpacing'
import SectionHeading from '../Components/SectionHeading'
import Paragraph from '../Components/Paragraph'
import CardRow from '../Components/CardRow'

export default function Home() {
  return (
    <>
      <Header
        name="ClicksForms"
        subtext="Custom forms on Discord"
        gradient={["71AFE5", "6576CC"]}
        wave="CF"
        buttons={[
          {color: "6576CC", buttonText: "FFFFFF", link: "#features", text: "Features"},
          {color: "6576CC", buttonText: "FFFFFF", link: "#commands", text: "Commands"},
          {color: "6576CC", buttonText: "FFFFFF", link: "#services", text: "Services"},
          {color: "775EBF", buttonText: "FFFFFF", link: "#invite", text: "Invite"}
        ]}
        hideArrow={true}
      />
      <AutoSpacing>
        <SectionHeading id="features">Features</SectionHeading>
          <TileRow divless={true}>
            <img alt="Anonymous forms"       src="/Features/ClicksForms/Anonymous.svg" />
            <img alt="Discord buttons"       src="/Features/ClicksForms/Buttons.svg" />
            <img alt="Export formats"        src="/Features/ClicksForms/Export.svg" />
            <img alt="Up to 25 Forms"        src="/Features/ClicksForms/Forms.svg" />
            <img alt="Multiple Choice"       src="/Features/ClicksForms/Multichoice.svg" />
            <img alt="Up to 25 questions"    src="/Features/ClicksForms/Questions.svg" />
            <img alt="Many question types"   src="/Features/ClicksForms/Types.svg" />
            <img alt="Easily view responses" src="/Features/ClicksForms/Responses.svg" />
          </TileRow>
            <SectionHeading id="commands">Commands</SectionHeading>
            <Paragraph><code>/accept</code>: Completes a form you are asked to fill in</Paragraph>
            <Paragraph><code>/apply</code>: Apply to a form</Paragraph>
            <Paragraph><code>/create</code>: Creates a new form</Paragraph>
            <Paragraph><code>/download</code>: Downloads a form from a service e.g. Google Forms</Paragraph>
            <Paragraph><code>/help</code>: Lists all commands</Paragraph>
            <Paragraph><code>/responses</code>: Lets you view responses to your servers form</Paragraph>
            <Paragraph><code>/manage</code>: Lets you manage your servers forms</Paragraph>
            <SectionHeading id="services">Services</SectionHeading>
            <Paragraph>ClicksForms support services like <a href="https://forms.google.com">Google Forms</a> through our Add-on</Paragraph>
            <Paragraph>Our API is public. You can view it on <a href="https://clicksminuteper.github.io/docs/clicksforms">GitHub</a></Paragraph>
            <SectionHeading id="invite">Invite</SectionHeading>
            <CardRow>
            <Card
            wave="CF"
            buttonText={"FFFFFF"} gradient={["71AFE5", "6576CC"]}
            title="Invite"
            subtext="Invite ClicksForms to your server"
            buttons={[
              {color: "775EBF", link: "https://discord.com/api/oauth2/authorize?client_id=805392054678192169&permissions=2416307200&scope=bot%20applications.commands", text: "Invite"}
            ]}
          />
        </CardRow>
        <SectionHeading>Legal</SectionHeading>
        <Paragraph>Our privacy policy can be viewed on <a href="https://clicksminuteper.net/clicksforms/privacy">GitHub</a></Paragraph>
      </AutoSpacing>
    </>
  )
}
