Build a job board that fetches postings and loads more on demand. The shape is paginated fetching: keep the jobs loaded so far, and a "Load more" button that requests the next slice and appends it. While a request is in flight, show a loading state; when everything's loaded, retire the button.
type Job = { id: number; title: string; company: string };
function fetchJobs(offset: number, limit: number): Promise<Job[]>;
// A self-contained component. No props.
function App(): JSX.Element;
mount → fetchJobs(0, 5) → first 5 jobs, loading shown meanwhile
"Load more" → fetchJobs(5, 5) → next 5 appended below the first 5
when fewer than `limit` come back (or total reached) → no more pages → hide the button
[...jobs, ...more].