Skip to content

Commit

Permalink
Merge pull request #92 from MurakawaTakuya/create-my-content
Browse files Browse the repository at this point in the history
mycontentページを作成
  • Loading branch information
MurakawaTakuya authored Dec 12, 2024
2 parents f09bec8 + 948a33c commit 5af353b
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 13 deletions.
31 changes: 22 additions & 9 deletions src/Components/DashBoard/DashBoard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,36 @@ import Progress from "../Progress/Progress";
import styles from "./DashBoard.module.scss";

// 投稿を取得してPostCardに渡す
export default function DashBoard() {
export default function DashBoard({
userId = "",
success = true,
failed = true,
pending = true,
}: {
userId?: string;
success?: boolean;
failed?: boolean;
pending?: boolean;
} = {}) {
const [successResults, setSuccessResults] = useState<SuccessResult[]>([]);
const [failedResults, setFailedResults] = useState<GoalWithId[]>([]);
const [pendingResults, setPendingResults] = useState<GoalWithId[]>([]);
const [noResult, setNoResult] = useState<boolean>(false);

useEffect(() => {
fetchResult()
fetchResult({ userId })
.then((data) => {
console.log(data);
if (
data.successResults.length === 0 &&
data.failedResults.length === 0
data.failedResults.length === 0 &&
data.pendingResults.length === 0
) {
setNoResult(true);
} else {
console.log(data);
setSuccessResults(data.successResults);
setFailedResults(data.failedResults);
}
setSuccessResults(data.successResults);
setFailedResults(data.failedResults);
setPendingResults(data.pendingResults);
})
.catch((error) => {
if (error instanceof Response && error.status === 404) {
Expand All @@ -41,8 +53,9 @@ export default function DashBoard() {
) : (
<div className={styles.postsContainer}>
<Progress
successResults={successResults}
failedResults={failedResults}
successResults={success ? successResults : []}
failedResults={failed ? failedResults : []}
pendingResults={pending ? pendingResults : []}
/>
</div>
)}
Expand Down
47 changes: 47 additions & 0 deletions src/app/mycontent/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
"use client";
import DashBoard from "@/Components/DashBoard/DashBoard";
import { useUser } from "@/utils/UserContext";
import { styled } from "@mui/material/styles";
import ToggleButton from "@mui/material/ToggleButton";
import ToggleButtonGroup from "@mui/material/ToggleButtonGroup";
import { useState } from "react";

const CenteredToggleButtonGroup = styled(ToggleButtonGroup)({
display: "flex",
justifyContent: "center",
marginBottom: "16px",
});

export default function MyContent() {
const { user } = useUser();
const [value, setValue] = useState<"pending" | "finished" | null>("pending");

return (
<>
<div
style={{
display: "flex",
justifyContent: "space-evenly",
}}
>
<CenteredToggleButtonGroup
value={value}
exclusive
onChange={(event, newValue) => {
setValue(newValue);
}}
aria-label="Loading button group"
>
<ToggleButton value="pending">未完了</ToggleButton>
<ToggleButton value="finished">完了済み</ToggleButton>
</CenteredToggleButtonGroup>
</div>

{value == "pending" ? (
<DashBoard userId={user?.uid} success={false} failed={false} />
) : (
<DashBoard userId={user?.uid} pending={false} />
)}
</>
);
}
2 changes: 1 addition & 1 deletion src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import GoalModal from "@/Components/GoalModal/GoalModal";
export default function Top() {
return (
<>
<DashBoard />
<DashBoard pending={false} />
<GoalModal />
</>
);
Expand Down
8 changes: 5 additions & 3 deletions src/utils/API/fetchResult.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import { appCheckToken, functionsEndpoint } from "@/app/firebase";
/**
* Cloud FunctionsのAPIを呼び出して、結果の一覧を取得する
*
* @para
* @param {string} uid
* @return {*}
*/
export const fetchResult = async () => {
const response = await fetch(`${functionsEndpoint}/result/`, {
export const fetchResult = async ({
userId = "",
}: { userId?: string } = {}) => {
const response = await fetch(`${functionsEndpoint}/result/${userId}`, {
method: "GET",
headers: {
"X-Firebase-AppCheck": appCheckToken,
Expand Down

0 comments on commit 5af353b

Please sign in to comment.