Skip to content

Commit

Permalink
fix: bug regarding creating twice jobInstance
Browse files Browse the repository at this point in the history
  • Loading branch information
goto-eof committed May 23, 2023
1 parent e8ad277 commit 1354d96
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 34 deletions.
19 changes: 6 additions & 13 deletions src/components/job/panels/UserJobItemPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ import JobInstanceConst from '../../../consts/JobInstanceConst';
interface UserJobItemPanelProps {
job: Job;
workerId: number;
jobInstanceProp: JobInstance;
}
export default function UserJobItemPanel({
job,
workerId,
jobInstanceProp,
}: UserJobItemPanelProps) {
const [acceptJobButtonLabel] = useState<string>(
JobService.calulateAcceptButtonLabel(job)
Expand All @@ -24,19 +26,10 @@ export default function UserJobItemPanel({
const [showJobInstanceStatus, setShowJobInstanceStatus] = useState<boolean>();

useEffect(() => {
const jobId = job.id;
GenericApiService.get<JobInstance>(
`api/v1/jobInstance/private/jobId/${jobId}/workerId/${workerId}`
).then((jobInstance: JobInstance) => {
if (jobInstance === null) {
// it's ok
return;
}
setJobInstance(jobInstance);
setJobInstanceStatus(
JobInstanceService.retrieveHumanableStatus(jobInstance.status)
);
});
setJobInstance(jobInstanceProp);
setJobInstanceStatus(
JobInstanceService.retrieveHumanableStatus(jobInstanceProp.status)
);
}, []);

useEffect(() => {
Expand Down
23 changes: 19 additions & 4 deletions src/components/message/JobInfoSidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import Title from '../job/Header';
import UserJobItemPanel from '../job/panels/UserJobItemPanel';
import RateUser from '../rateUser';
import UserService from '../../service/UserService';
import JobInstance from '../../dto/JobInstance';

export default function JobInfoSidebar() {
const { roomId } = useParams();
Expand Down Expand Up @@ -89,6 +90,15 @@ const SidebarContent = ({
const [targetUserId] = useState<number | undefined>(
UserService.getUser().id === job?.author?.id ? workerId : job?.author?.id
);
const [jobInstance, setJobInstance] = useState<JobInstance>();

useEffect(() => {
GenericApiService.get<JobInstance>(
`api/v1/jobInstance/private/jobId/${job?.id}/workerId/${workerId}`
).then((jobInstance: JobInstance) => {
setJobInstance(jobInstance);
});
}, []);

return (
<Box w={{ base: 'full', md: 60 }} mt={4} p={3} pos={'absolute'} {...rest}>
Expand All @@ -102,12 +112,17 @@ const SidebarContent = ({
{job?.author?.username}]
</Text>
<Text>{job?.description}</Text>
{job && <UserJobItemPanel workerId={workerId} job={job} />}
{jobInstance && job && (
<UserJobItemPanel
jobInstanceProp={jobInstance}
workerId={workerId}
job={job}
/>
)}
<Text>Rate user:</Text>
{job && job.id && job.author && job.author.id && targetUserId && (
{jobInstance && targetUserId && (
<RateUser
workerId={workerId}
jobId={job?.id}
jobInstanceProp={jobInstance}
raterUserId={raterId}
targetUserId={targetUserId}
/>
Expand Down
28 changes: 11 additions & 17 deletions src/components/rateUser.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ import Rating from '../dto/Rating';
import JobInstance from '../dto/JobInstance';

export default function RateUser({
jobId,
targetUserId,
raterUserId,
workerId,
jobInstanceProp,
}: {
workerId: number;
jobId: number;
raterUserId: number;
targetUserId: number;
jobInstanceProp: JobInstance;
}) {
const [enabled, setEnabled] = useState<Array<boolean>>(
Array.from(Array(5).keys()).map(() => false)
Expand All @@ -27,19 +25,15 @@ export default function RateUser({
const [jobInstance, setJobInstance] = useState<JobInstance>();

useEffect(() => {
GenericApiService.get<JobInstance>(
`api/v1/jobInstance/private/jobId/${jobId}/workerId/${workerId}`
).then((jobInstance: JobInstance) => {
setJobInstance(jobInstance);
GenericApiService.get<Rating>(
`api/v1/rating/jobInstanceId/${jobInstance.id}/targetUserId/${targetUserId}`
).then((rating: Rating | null) => {
setRating(rating);
if (rating) {
setRatingValue(rating?.rating - 1);
updateColors(rating?.rating - 1);
}
});
setJobInstance(jobInstanceProp);
GenericApiService.get<Rating>(
`api/v1/rating/jobInstanceId/${jobInstanceProp.id}/targetUserId/${targetUserId}`
).then((rating: Rating | null) => {
setRating(rating);
if (rating) {
setRatingValue(rating?.rating - 1);
updateColors(rating?.rating - 1);
}
});
}, []);

Expand Down

0 comments on commit 1354d96

Please sign in to comment.