mirror of
https://github.com/rjNemo/meal_planner
synced 2026-06-06 02:26:49 +00:00
* use tsx * compile * refactor Router * refactor layout * refactor home container * refactor meal container * refactor categories container * refactor category container * refactor search and profile container * refactor
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { FC, useState } from "react";
|
|
import { PreLoader } from "./components/PreLoader";
|
|
import "./index.css";
|
|
import MainLayout from "./layouts/MainLayout";
|
|
import { AppRouter } from "./router";
|
|
import { Router } from "./router/Router";
|
|
import { getData } from "./services/api";
|
|
import { useAuth0 } from "./utils/auth0-spa";
|
|
|
|
export const App: FC = () => {
|
|
const { loading } = useAuth0();
|
|
const [searchString, setSearchString] = useState("");
|
|
const [searchResults, setSearchResults] = useState({ meals: [] });
|
|
const [meal, setMeal] = useState(null);
|
|
const buttonUrl = "/random";
|
|
|
|
const getRandomMeal = () => {
|
|
getData("random", setMeal);
|
|
};
|
|
|
|
const getSearchResults = (e) => {
|
|
searchString === ""
|
|
? e.preventDefault()
|
|
: getData(searchString, setSearchResults, "search");
|
|
};
|
|
|
|
const handleChange = (e) => {
|
|
const { value } = e.target;
|
|
setSearchString(value);
|
|
};
|
|
|
|
return loading ? (
|
|
<div className="container center-align valign-wrapper">
|
|
<PreLoader />
|
|
</div>
|
|
) : (
|
|
<Router>
|
|
<MainLayout
|
|
buttonUrl={buttonUrl}
|
|
getRandomMeal={getRandomMeal}
|
|
searchString={searchString}
|
|
setSearchResults={setSearchResults}
|
|
handleChange={handleChange}
|
|
setSearchString={setSearchString}
|
|
getSearchResults={getSearchResults}
|
|
>
|
|
<AppRouter
|
|
getRandomMeal={getRandomMeal}
|
|
searchString={searchString}
|
|
searchResults={searchResults}
|
|
/>
|
|
</MainLayout>
|
|
</Router>
|
|
);
|
|
};
|