export function FeaturedProjects()

in frontend/src/components/homepage/featuredProjects.js [53:130]


export function FeaturedProjects() {
  const initialData = {
    mapResults: {
      features: [],
      type: 'FeatureCollection',
    },
    results: [],
    pagination: { hasNext: false, hasPrev: false, page: 1 },
  };
  const [state, dispatch] = useFeaturedProjectAPI(initialData);

  const apiResults = state.projects && state.projects.results;
  const pagedProjs = projectPaginate(apiResults);
  const pagedProjsMobile = projectPaginateMobile(apiResults);

  if (apiResults.length) {
    return (
      <section className="pb4 pl5-l pr1-l pl3 black">
        <div className="cf">
          <div className="w-75-l w-60 fl">
            <h3 className="f2 mb0 ttu barlow-condensed fw8">
              <FormattedMessage {...messages.featuredProjects} />
            </h3>
          </div>
          <div className="fl w-25-l pa3 mw6 dn db-l">
            {!state.isLoading && (
              <FeaturedProjectPaginateArrows
                pages={pagedProjs}
                activeProjectCardPage={state.activeProjectCardPage}
                mobile={false}
                dispatch={dispatch}
              />
            )}
          </div>
          <div className="fl w-40 pa3 mb4 mw6 db dn-l">
            {!state.isLoading && (
              <FeaturedProjectPaginateArrows
                pages={pagedProjsMobile}
                mobile={true}
                activeProjectCardPage={state.activeProjectCardPageMobile}
                dispatch={dispatch}
              />
            )}
          </div>
        </div>
        {state.isError ? (
          <div className="bg-tan pa4">
            <FormattedMessage
              {...messages.errorLoadingTheX}
              values={{
                xWord: <FormattedMessage {...messages.featuredProjects} />,
              }}
            />
          </div>
        ) : null}
        <div className="cf dn db-l">
          <ReactPlaceholder customPlaceholder={nCardPlaceholders(4)} ready={!state.isLoading}>
            <FeaturedProjectCards
              pageOfCards={pagedProjs}
              pageNum={state.activeProjectCardPage}
              ready={!state.isLoading}
            />
          </ReactPlaceholder>
        </div>
        <div className="cf db dn-l">
          <ReactPlaceholder type="media" rows={10} ready={!state.isLoading}>
            <FeaturedProjectCards
              pageOfCards={pagedProjsMobile}
              pageNum={state.activeProjectCardPageMobile}
            />
          </ReactPlaceholder>
        </div>
      </section>
    );
  } else {
    return <></>;
  }
}