Factoring gsheet read

This commit is contained in:
forceoranj
2021-10-18 20:46:32 +02:00
parent 40640ef544
commit 3398f4f42d
21 changed files with 2414 additions and 212 deletions

View File

@@ -4,8 +4,8 @@ import { useDispatch, useSelector, shallowEqual } from "react-redux"
import { Helmet } from "react-helmet"
import { AppState, AppThunk } from "../../store"
import { fetchJavGameListIfNeed } from "../../store/javGameList"
import { JavGameList } from "../../components"
import { fetchJeuxJavListIfNeed } from "../../store/jeuxJavList"
import { JeuxJavList } from "../../components"
import styles from "./styles.module.scss"
export type Props = RouteComponentProps
@@ -26,20 +26,20 @@ function useList(stateToProp: (state: AppState) => any, fetchDataIfNeed: () => A
if (readyStatus === "failure") return <p>Oops, Failed to load list!</p>
return <JavGameList items={items} />
return <JeuxJavList items={items} />
}
}
const Home: FC<Props> = (): JSX.Element => (
<div className={styles.Home}>
<Helmet title="Home" />
{useList((state: AppState) => state.javGameList, fetchJavGameListIfNeed)()}
{useList((state: AppState) => state.jeuxJavList, fetchJeuxJavListIfNeed)()}
</div>
)
// Fetch server-side data here
export const loadData = (): AppThunk[] => [
fetchJavGameListIfNeed(),
fetchJeuxJavListIfNeed(),
// More pre-fetched actions...
]

View File

@@ -4,13 +4,13 @@
import { render } from "@testing-library/react"
import { MemoryRouter } from "react-router-dom"
import { fetchJavGameListIfNeed } from "../../../store/javGameList"
import { fetchJeuxJavListIfNeed } from "../../../store/jeuxJavList"
import mockStore from "../../../utils/mockStore"
import Home from "../Home"
describe("<Home />", () => {
const renderHelper = (reducer = { readyStatus: "invalid" }) => {
const { dispatch, ProviderWithStore } = mockStore({ javGameList: reducer })
const { dispatch, ProviderWithStore } = mockStore({ jeuxJavList: reducer })
const { container } = render(
<ProviderWithStore>
<MemoryRouter>
@@ -28,7 +28,7 @@ describe("<Home />", () => {
const { dispatch } = renderHelper()
expect(dispatch).toHaveBeenCalledTimes(1)
expect(dispatch.mock.calls[0][0].toString()).toBe(fetchJavGameListIfNeed().toString())
expect(dispatch.mock.calls[0][0].toString()).toBe(fetchJeuxJavListIfNeed().toString())
})
it("renders the loading status if data invalid", () => {

View File

@@ -15,18 +15,17 @@ exports[`<Home /> renders the <List /> if loading was successful 1`] = `
class="Home"
>
<div
class="JavGameList"
class="JeuxJavList"
>
<h4>
JAV Games
Jeux JAV
</h4>
<ul>
<li>
<a
href="/UserInfo/5"
>
6 qui prend!
</a>
6 qui prend!
- [
432
]
</li>
</ul>
</div>