Skip to content

Instantly share code, notes, and snippets.

@dschinkel
Last active October 5, 2020 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dschinkel/da966ea183090e67f36d244297bbe141 to your computer and use it in GitHub Desktop.
Save dschinkel/da966ea183090e67f36d244297bbe141 to your computer and use it in GitHub Desktop.
Attempt #1 - Invert Business Logic
import React, { useEffect, useState } from 'react';
import { Company } from '../../Interfaces/Interfaces.Company';
// this doesn't work with brackes for some reason:
// const FeaturedCompanies = ({findFeaturedCompanies: () => Promise<Array<Company>>}) => {
const FeaturedCompanies = (findFeaturedCompanies: () => Promise<Array<Company>>) => {
const [featuredCompanies, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const companies: Array<Company> = await findFeaturedCompanies();
setData(companies);
};
fetchData();
}, [featuredCompanies]);
return (
<span>
<div className="padding-bottom-50">
<div className="section-heading bold padding-top-10 font-22">New Companies</div>
featuredCompanies && <PresentableFeaturedCompanies companies={featuredCompanies} />
</div>
</span>
);
};
function PresentableFeaturedCompanies({ companies }) {
return (<>
<div className="margin-top-20">
{companies.map((company) => (
<div
className="all-20"
data-testid="company"
key={`${company.name}`}>
{company.name}
</div>
</div>
</>);
}
export default ({ findFeaturedCompanies }) => FeaturedCompanies;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment