Skip to content

Commit c6f9892

Browse files
committed
♻️ refactor : Modify functions to use material state
- Modify to send API requests using material state - Fix to get token from localStorage in api request via fetch Related issue: YJU-OKURA#93
1 parent b022290 commit c6f9892

File tree

6 files changed

+24
-20
lines changed

6 files changed

+24
-20
lines changed

src/api/feedback/getFeedback.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import BASE_URLS from '../baseUrl';
2+
3+
const token = localStorage.getItem('access_token');
4+
15
const myHeaders = new Headers();
2-
myHeaders.append(
3-
'Authorization',
4-
'Bearer eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MiwiZXhwIjoxOTY5OTAxMDIyfQ.U0k1q2oTrp3JwsIpem16o2W77tpVGiwylwc5cTFaZgU'
5-
);
6+
if (token) myHeaders.append('Authorization', token);
67

78
const requestOptions = {
89
method: 'GET',
@@ -16,7 +17,7 @@ const getFeedback = async (
1617
) => {
1718
try {
1819
const response = await fetch(
19-
`http://3.38.86.236:3000/api/nest/class/${cId}/feedback/materials/${mId}/get-feedback`,
20+
`${BASE_URLS.nest}/class/${cId}/feedback/materials/${mId}/get-feedback`,
2021
requestOptions
2122
);
2223
console.log('res:', response);

src/app/[className]/[materialName]/components/FeedbackContainer.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
import {useEffect, useState} from 'react';
2+
import {useRecoilValue} from 'recoil';
23
import FeedbackForm from './FeedbackForm';
34
import FeedbackList from './FeedbackList';
45
import FeedbackKeywordList from './FeedbackKeywordList';
56
import getFeedbacks from '@/src/api/feedback/getFeedbacks';
7+
import materialState from '@/src/recoil/atoms/materialState';
68
import {feedback} from '@/src/interfaces/feedback';
79
import '@/src/styles/variable.css';
810

911
const FeedbackContainer = () => {
12+
const material = useRecoilValue(materialState);
1013
const [feedbacks, setFeedbacks] = useState<feedback[]>([]);
1114
useEffect(() => {
12-
getFeedbacks(1, 1, 1, 5).then(res => {
15+
if (!material) return;
16+
getFeedbacks(4, parseInt(material.id), 1, 5).then(res => {
1317
console.log(res);
1418
setFeedbacks(res);
1519
});
@@ -19,7 +23,7 @@ const FeedbackContainer = () => {
1923
<div className="">
2024
<div className="flex justify-between items-center p-4">
2125
<div className="text-gray-500 text-lg">Request feedback</div>
22-
<FeedbackForm />
26+
{material ? <FeedbackForm mId={parseInt(material?.id)} /> : null}
2327
</div>
2428
<div className="text-center w-full feedbackContainer box-border">
2529
{/* 資料のFeedback */}
@@ -49,7 +53,7 @@ const FeedbackContainer = () => {
4953
<div className="text-2xl font-semibold p-5">
5054
✅ Pages most relevant to the question users were asking
5155
</div>
52-
<FeedbackKeywordList />
56+
{material ? <FeedbackKeywordList mId={material?.id} /> : null}
5357
</div>
5458
</div>
5559
</div>

src/app/[className]/[materialName]/components/FeedbackForm.tsx

+6-7
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,35 @@ import {useState} from 'react';
33
import getFeedback from '@/src/api/feedback/getFeedback';
44
import postFeedback from '@/src/api/feedback/postFeedback';
55

6-
const FeedbackForm = () => {
6+
const FeedbackForm = ({mId}: {mId: number}) => {
77
const [isOpen, setIsOpen] = useState(false);
88
const [feedback, setFeedback] = useState('');
99

1010
const handleClickFeedback = () => {
1111
if (feedback !== '') setFeedback('');
12-
getFeedback(1, 1, chat);
12+
getFeedback(4, mId, chat);
1313
setFeedback(feedback.replace(/AI|:|"/g, ''));
1414
};
1515

1616
const handleClickSave = () => {
1717
const data = feedback.replace(/AI|:|"/g, '');
18-
postFeedback(1, 1, data).then(res => {
18+
postFeedback(4, mId, data).then(res => {
1919
console.log(res);
2020
setIsOpen(false);
2121
});
2222
};
2323

2424
const chat = async (reader: ReadableStreamDefaultReader) => {
25-
let feedbackData = '';
25+
// let feedbackData = '';
2626
try {
2727
while (reader) {
2828
const {done, value} = await reader.read();
2929
const decodedValue = new TextDecoder().decode(value);
30-
feedbackData += decodedValue;
31-
console.log(feedbackData);
30+
// feedbackData += decodedValue;
3231
setFeedback(promptRes => promptRes + decodedValue);
3332

3433
if (feedback.includes(' ')) {
35-
feedbackData = '';
34+
// feedbackData = '';
3635
}
3736
if (done) {
3837
break;

src/app/[className]/[materialName]/components/FeedbackKeywordList.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import Image from 'next/image';
44
import getKeywords from '@/src/api/feedback/getKeywords';
55
import {keyword} from '@/src/interfaces/feedback';
66

7-
const FeedbackKeywordList = () => {
7+
const FeedbackKeywordList = ({mId}: {mId: string}) => {
88
const [keywords, setKeywords] = useState<keyword[]>([]);
99
const [loading, setLoading] = useState(true);
1010
useEffect(() => {
11-
getKeywords(1, 1).then(res => {
11+
getKeywords(4, parseInt(mId)).then(res => {
1212
console.log(res);
1313
setKeywords(res);
1414
setLoading(false);

src/app/[className]/[materialName]/components/FeedbackList.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const FeedbackList = ({feedbacks}: {feedbacks: feedback[]}) => {
1212
SwiperCore.use([Navigation, Scrollbar, Autoplay]);
1313

1414
const handleClickDelete = (fId: number) => {
15-
deleteFeedback(1, fId).then(res => {
15+
deleteFeedback(4, fId).then(res => {
1616
console.log(res);
1717
});
1818
};

src/app/[className]/[materialName]/components/ManageContainer.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import FeedbackContainer from './FeedbackContainer';
77
// import AttendanceContainer from './AttendanceContainer';
88
import '@/src/styles/variable.css';
99

10-
const UserContainer = () => {
10+
const ManageContainer = () => {
1111
const tabs = ['Material', 'Quiz', 'Feedback', 'Attendance'];
1212
const [activeTab, setActiveTab] = useState(tabs[0]);
1313
const tabMapping = {
@@ -29,4 +29,4 @@ const UserContainer = () => {
2929
);
3030
};
3131

32-
export default UserContainer;
32+
export default ManageContainer;

0 commit comments

Comments
 (0)