text: /**
   * Copyright (c) 2017-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  const React = require('react');
  
  const CompLibrary = require('../../core/CompLibrary.js');
  
  const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
  const Container = CompLibrary.Container;
  const GridBlock = CompLibrary.GridBlock;
  
  class HomeSplash extends React.Component {
    render() {
      const {siteConfig, language = ''} = this.props;
      const {baseUrl, docsUrl} = siteConfig;
      const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
      const langPart = `${language ? `${language}/` : ''}`;
      const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`;
  
      const SplashContainer = props => (
        <div className="homeContainer">
          <div className="homeSplashFade">
            <div className="wrapper homeWrapper">{props.children}</div>
          </div>
        </div>
      );
  
      const Logo = props => (
        <div className="projectLogo">
          <img src={props.img_src} alt="Project Logo" />
        </div>
      );
  
      const ProjectTitle = () => (
        <h2 className="projectTitle">
          {siteConfig.title}
          <small>{siteConfig.tagline}</small>
        </h2>
      );
  
      const PromoSection = props => (
        <div className="section promoSection">
          <div className="promoRow">
            <div className="pluginRowBlock">{props.children}</div>
          </div>
        </div>
      );
  
      const Button = props => (
        <div className="pluginWrapper buttonWrapper">
          <a className="button" href={props.href} target={props.target}>
            {props.children}
          </a>
        </div>
      );
  
      return (
        <SplashContainer>
          <Logo img_src={`${baseUrl}img/darkroom-logo.png`} />
          <div className="inner">
            <ProjectTitle siteConfig={siteConfig} />
            <PromoSection>
              <Button href="./docs/getting-started">Try It Out</Button>
              <Button href={siteConfig.githubUrl}>Github</Button>
            </PromoSection>
          </div>
        </SplashContainer>
      );
    }
  }
  
  class Index extends React.Component {
    render() {
      const {config: siteConfig, language = ''} = this.props;
      const {baseUrl} = siteConfig;
  
      const Block = props => (
        <Container
          padding={['bottom', 'top']}
          id={props.id}
          background={props.background}>
          <GridBlock
            align="center"
            contents={props.children}
            layout={props.layout}
          />
        </Container>
      );
  
  
      const Features = () => (
        <div>
        <Block layout="twoColumn">
          {[
            {
              content: 'Works without a Database',
              image: `${baseUrl}img/undraw_stateless.svg`,
              imageAlign: 'top',
              title: 'Stateless',
            },
            {
              content: 'Can use multiple storage backends',
              image: `${baseUrl}img/undraw_storage.svg`,
              imageAlign: 'top',
              title: 'Storage',
            },
          ]}
        </Block>
        <Block>
        {[
          {
            title: "Customizable",
            content: "Implement your own `Storage` and `Processor` interfaces to gain custom functionality while still keeping other Darkroom Server functionality",
            image: `${baseUrl}img/undraw_customizable.svg`,
            imageAlign: 'top'
          },
        ]}
        </Block>
        </div>
      );
  
      const Showcase = () => {
        if ((siteConfig.users || []).length === 0) {
          return null;
        }
  
        const showcase = siteConfig.users
          .filter(user => user.pinned)
          .map(user => (
            <a href={user.infoLink} key={user.infoLink}>
              <img src={baseUrl + user.image} alt={user.caption} title={user.caption} />
            </a>
          ));
  
        const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page;
  
        return (
          <div className="productShowcaseSection paddingBottom">
            <h2>Who is Using This?</h2>
            <div className="logos">{showcase}</div>
            <div className="more-users">
              <a className="button" href={pageUrl('users.html')}>
                More {siteConfig.title} Users
              </a>
            </div>
          </div>
        );
      };
  
      return (
        <div>
          <HomeSplash siteConfig={siteConfig} language={language} />
          <div className="mainContainer">
            <Features />
            <Showcase />
          </div>
        </div>
      );
    }
  }
  
  module.exports = Index;
  