Jeux JAV
diff --git a/src/pages/UserInfo/UserInfo.tsx b/src/pages/UserInfo/UserInfo.tsx
index 0becb0e..f3a795a 100755
--- a/src/pages/UserInfo/UserInfo.tsx
+++ b/src/pages/UserInfo/UserInfo.tsx
@@ -4,15 +4,15 @@ import { useDispatch, useSelector, shallowEqual } from "react-redux"
import { Helmet } from "react-helmet"
import { AppState, AppThunk } from "../../store"
-import { User } from "../../services/jsonPlaceholder"
import { fetchUserDataIfNeed } from "../../store/userData"
import { Info } from "../../components"
import styles from "./styles.module.scss"
-export type Props = RouteComponentProps<{ id: string }>
+export type Props = RouteComponentProps<{ memberId: string }>
const UserInfo = ({ match }: Props): JSX.Element => {
- const { id } = match.params
+ const { memberId: rawId } = match.params
+ const id = +rawId
const dispatch = useDispatch()
const userData = useSelector((state: AppState) => state.userData, shallowEqual)
@@ -21,13 +21,14 @@ const UserInfo = ({ match }: Props): JSX.Element => {
}, [dispatch, id])
const renderInfo = () => {
- const userInfo = userData[id]
+ const userInfo = userData
if (!userInfo || userInfo.readyStatus === "request") return
Loading...
- if (userInfo.readyStatus === "failure") return
Oops! Failed to load data.
+ if (userInfo.readyStatus === "failure" || !userInfo.entity)
+ return
Oops! Failed to load data.
- return
+ return
}
return (
@@ -39,7 +40,7 @@ const UserInfo = ({ match }: Props): JSX.Element => {
}
interface LoadDataArgs {
- params: { id: string }
+ params: { id: number }
}
export const loadData = ({ params }: LoadDataArgs): AppThunk[] => [fetchUserDataIfNeed(params.id)]
diff --git a/src/pages/UserInfo/__tests__/UserInfo.tsx b/src/pages/UserInfo/__tests__/UserInfo.tsx
index c346f3b..84b07df 100755
--- a/src/pages/UserInfo/__tests__/UserInfo.tsx
+++ b/src/pages/UserInfo/__tests__/UserInfo.tsx
@@ -4,19 +4,18 @@
import { render } from "@testing-library/react"
import { MemoryRouter } from "react-router-dom"
-import { fetchUserDataIfNeed } from "../../../store/userData"
import mockStore from "../../../utils/mockStore"
import UserInfo from "../UserInfo"
describe("
", () => {
const mockData = {
- id: "1",
+ memberId: 1,
name: "PeL",
phone: "+886 0970...",
email: "forceoranj@gmail.com",
website: "https://www.parisestludique.fr",
}
- const { id } = mockData
+ const { memberId } = mockData
const renderHelper = (reducer = {}) => {
const { dispatch, ProviderWithStore } = mockStore({ userData: reducer })
@@ -25,7 +24,7 @@ describe("
", () => {
{/*
@ts-expect-error */}
-
+
)
@@ -33,33 +32,24 @@ describe("
", () => {
return { dispatch, firstChild: container.firstChild }
}
- it("should fetch data when page loaded", () => {
- const { dispatch } = renderHelper()
-
- expect(dispatch).toHaveBeenCalledTimes(1)
- expect(dispatch.mock.calls[0][0].toString()).toBe(
- fetchUserDataIfNeed(id.toString()).toString()
- )
- })
-
it("renders the loading status if data invalid", () => {
expect(renderHelper().firstChild).toMatchSnapshot()
})
it("renders the loading status if requesting data", () => {
- const reducer = { [id]: { readyStatus: "request" } }
+ const reducer = { readyStatus: "request" }
expect(renderHelper(reducer).firstChild).toMatchSnapshot()
})
it("renders an error if loading failed", () => {
- const reducer = { [id]: { readyStatus: "failure" } }
+ const reducer = { readyStatus: "failure" }
expect(renderHelper(reducer).firstChild).toMatchSnapshot()
})
it("renders the
if loading was successful", () => {
- const reducer = { [id]: { readyStatus: "success", item: mockData } }
+ const reducer = { readyStatus: "success", entity: mockData }
expect(renderHelper(reducer).firstChild).toMatchSnapshot()
})
diff --git a/src/pages/UserInfo/__tests__/__snapshots__/UserInfo.tsx.snap b/src/pages/UserInfo/__tests__/__snapshots__/UserInfo.tsx.snap
index 809b288..6116bd8 100644
--- a/src/pages/UserInfo/__tests__/__snapshots__/UserInfo.tsx.snap
+++ b/src/pages/UserInfo/__tests__/__snapshots__/UserInfo.tsx.snap
@@ -47,7 +47,7 @@ exports[`
renders the loading status if data invalid 1`] = `
class="UserInfo"
>
- Loading...
+ Oops! Failed to load data.
`;
diff --git a/src/server/index.ts b/src/server/index.ts
index 9ac044c..7f33eb6 100755
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -10,7 +10,7 @@ import chalk from "chalk"
import devServer from "./devServer"
import ssr from "./ssr"
-import { getJeuxJavList } from "../gsheets/jeuxJav"
+import { getJeuJavList } from "../gsheets/jeuJav"
import { getEnvieList, addEnvie } from "../gsheets/envies"
import config from "../config"
@@ -33,7 +33,7 @@ if (__DEV__) devServer(app)
// Google Sheets requests
app.use(express.json())
-app.get("/JeuxJav", getJeuxJavList)
+app.get("/JeuJav", getJeuJavList)
app.get("/GetEnvieList", getEnvieList)
app.post("/AddEnvie", addEnvie)
diff --git a/src/services/jeuxJav.ts b/src/services/jeuJav.ts
similarity index 65%
rename from src/services/jeuxJav.ts
rename to src/services/jeuJav.ts
index 8a89ea9..1d9499a 100644
--- a/src/services/jeuxJav.ts
+++ b/src/services/jeuJav.ts
@@ -2,8 +2,8 @@ import axios from "axios"
import config from "../config"
-export class JeuxJav {
- id = 0
+export class JeuJav {
+ jeuId = 0
titre = ""
@@ -34,26 +34,26 @@ export class JeuxJav {
bggPhoto = ""
}
-export interface JeuxJavList {
- data?: JeuxJav[]
+export interface JeuJavList {
+ data?: JeuJav[]
error?: Error
}
-export interface JeuxJavData {
- data?: JeuxJav
+export interface JeuJavData {
+ data?: JeuJav
error?: Error
}
-export const getJeuxJavList = async (): Promise