Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/components/memuButton.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as React from 'react';
import { Box } from '@mui/material';
import Button from '@mui/material/Button';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import { Box } from '@mui/material';
import * as React from 'react';

export default function BasicMenu({items}) {
export default function BasicMenu({ items }) {
const [anchorEl, setAnchorEl] = React.useState(null);
const open = Boolean(anchorEl);
const handleClick = (event) => {
Expand All @@ -23,7 +23,7 @@ export default function BasicMenu({items}) {
aria-expanded={open ? 'true' : undefined}
onClick={handleClick}
>
<img src={'/assets/Menu_gray.png'}/>
<img src={'/assets/Menu_gray.png'} />
</Button>
<Menu
id="basic-menu"
Expand All @@ -32,8 +32,8 @@ export default function BasicMenu({items}) {
onClose={handleClose}
>
{
items.map(item =>{
return <MenuItem key={`memu-item-${item.label}`} onClick={()=>{
items.map(item => {
return <MenuItem key={`memu-item-${item.label}`} onClick={() => {
item.onClick();
handleClose();
}} disabled={item.disabled}>{item.label}</MenuItem>;
Expand Down
23 changes: 12 additions & 11 deletions src/components/reviewList.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React, { useCallback, useContext, useEffect, useState } from 'react';
import '../styles/components/reviewList.css';
import useReq from '../hooks/useReq.js';
import List from '@mui/material/List';
import Divider from '@mui/material/Divider';
import { Box } from '@mui/material';
import EditModeInput from './editModeInput.js';
import Divider from '@mui/material/Divider';
import List from '@mui/material/List';
import React, { useCallback } from 'react';
import useReq from '../hooks/useReq.js';
import '../styles/components/reviewList.css';
import { changeTimeFormat } from '../utils/datetime.js';
import EditModeInput from './editModeInput.js';

export default function ReviewList({ reviews, styles, doGetReviewRequest, noEdit = false, showMovieTitle = true }) {
const { data: editReviewResponse, isLoading: isReviewEditLoading, error: editReviewsError, doRequest: doEditReviewRequest } = useReq(null, null);
Expand All @@ -25,24 +25,24 @@ export default function ReviewList({ reviews, styles, doGetReviewRequest, noEdit
}
});
getReviewHandler(movieId);
},[])
}, [])
const deleteReviewHandler = useCallback(async (review) => {
await doDeleteReviewRequest(process.env.REACT_APP_REVIEW_API + `/${review.reviewId}`, {
method: 'GET'
});
getReviewHandler(review.movieId);
},[])
}, [])
const getReviewHandler = useCallback((movieId) => {
doGetReviewRequest(process.env.REACT_APP_MOVIE_API + `/${movieId}/reviews`, {
method: 'GET'
});
},[])
}, [])

return (
<List sx={Object.assign({ width: '100%', maxWidth: 360, bgcolor: 'background.paper' }, styles)}>
{
reviews && reviews.map(review => {
return <Box
return <Box
key={`reviewBox${review.reviewId}`}
id={`reviewBox${review.reviewId}`}
className='mb-10'>
Expand All @@ -62,7 +62,8 @@ export default function ReviewList({ reviews, styles, doGetReviewRequest, noEdit
edit: (content, rating) => editReviewHandler(content, rating, review),
remove: () => deleteReviewHandler(review)
}}
noEdit={noEdit}
//noEdit={noEdit}
noEdit={noEdit || !context.userId || review.userId !== context.userId} // userId가 없으면 수정 불가능
/>
</Box>
<Divider variant="inset" component="li" sx={{ marginLeft: 0, marginBottom: 1 }} />
Expand Down
50 changes: 25 additions & 25 deletions src/pages/admin/auditoriumForm.js
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
import React, { useState, useEffect, useContext, useCallback } from 'react';
import useReq from '../../hooks/useReq.js';
import { Box } from '@mui/material';
import React, { useCallback, useEffect } from 'react';
import InputFormBox from '../../components/inputFormBox.js';
import useReq from '../../hooks/useReq.js';
import { showToast } from '../../utils/toast.js';

const AuditoriumForm = ({setShowModal, data=null}) => {
const AuditoriumForm = ({ setShowModal, data = null }) => {
const { data: addAuditoriumRes, isLoading: isAddAuditoriumLoading, error: addAuditoriumError, doRequest: doAddAuditoriumRequest } = useReq(null, null);
const { data: updateAuditoriumRes, isLoading: isUpdateAuditoriumLoading, error: updateAuditoriumError, doRequest: doUpdateAuditoriumRequest } = useReq(null, null);

const inputs = [{
id: 'auditoriumName',
label : '상영관',
value : data && data.auditoriumName,
label: '상영관',
value: data && data.auditoriumName,
}].concat(data ? [{
id: 'capacity',
label : '좌석수',
value : data && data.capacity,
label: '좌석수',
value: data && data.capacity,
disabled: data
}] : [{
id: 'row',
label : '행',
label: '행',
placeholder: 'A ~ Z'
},{
}, {
id: 'column',
label : '열',
label: '열',
placeholder: '1 ~ 30'
}]);

const add = useCallback(()=>{
const name = document.querySelector('#auditoriumName').value;
const add = useCallback(() => {
const auditoriumName = document.querySelector('#auditoriumName').value;
const row = document.querySelector('#row').value;
const column = Number.parseInt(document.querySelector('#column').value);

doAddAuditoriumRequest(process.env.REACT_APP_AUDITORIUM_API, {
method: 'POST',
data: {
name: name,
auditoriumName: auditoriumName,
row: row,
column: column
}
});
},[])
const update = useCallback(()=>{
}, [])
const update = useCallback(() => {
const auditoriumName = document.querySelector('#auditoriumName').value;

doUpdateAuditoriumRequest(process.env.REACT_APP_AUDITORIUM_API + `/${data.auditoriumId}`, {
Expand All @@ -50,23 +50,23 @@ const AuditoriumForm = ({setShowModal, data=null}) => {
auditoriumName: auditoriumName
}
});
},[data])
}, [data])

useEffect(()=>{
if(addAuditoriumRes != null){
useEffect(() => {
if (addAuditoriumRes != null) {
document.querySelector('#auditoriumName').value = '';
document.querySelector('#row').value = '';
document.querySelector('#column').value = '';

showToast('성공적으로 상영관이 추가되었습니다.', 'success');
}
},[addAuditoriumRes])
useEffect(()=>{
if(updateAuditoriumRes != null){
}, [addAuditoriumRes])
useEffect(() => {
if (updateAuditoriumRes != null) {
showToast('성공적으로 정보가 변경되었습니다.', 'success');
window.location.reload ()
window.location.reload()
}
},[updateAuditoriumRes])
}, [updateAuditoriumRes])
useEffect(() => {
if (addAuditoriumError || updateAuditoriumError) {
showToast('입력 값을 다시 확인해 주세요.', 'warn');
Expand All @@ -76,7 +76,7 @@ const AuditoriumForm = ({setShowModal, data=null}) => {
return <>
<h2 className='mb-14'>{data ? '상영관 수정' : '상영관 등록'}</h2>
<Box className='form mb-44'>
<InputFormBox inputs={inputs} style={{width: '75%'}}/>
<InputFormBox inputs={inputs} style={{ width: '75%' }} />
</Box>
<Box className='controlBox mt-18'>
<button id="save" type="button" className="button-sm mr-6" onClick={data != null ? update : add}>저장</button>
Expand Down
Loading