Skip to content

Commit

Permalink
Merge branch 'dev' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
realsnoopso committed Jun 2, 2023
2 parents e35f6d9 + 8c2c840 commit 1d8b48a
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 32 deletions.
9 changes: 9 additions & 0 deletions frontend/src/components/Empty/Empty.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import styles from './Empty.module.css';
import classNames from 'classnames/bind';

const cx = classNames.bind(styles);

export const Empty = ({ children }) => {
const emptyClassNames = cx('empty');
return <div className={emptyClassNames}>{children}</div>;
};
9 changes: 9 additions & 0 deletions frontend/src/components/Empty/Empty.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.empty {
background-color: var(--color-light-neutral-background-strong);
padding: 36px 0;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0px 0px 16px 16px;
border-top: 1px solid var(--color-light-neutral-border);
}
2 changes: 2 additions & 0 deletions frontend/src/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { TextInput } from './TextInput/TextInput';
import { TextInputNormal } from './TextInputNormal/TextInputNormal';
import { Progress } from './Progress/Progress';
import { FileButton } from './FileButton/FileButton';
import { Empty } from './Empty/Empty';

export {
Dropdown,
Expand All @@ -32,4 +33,5 @@ export {
TextInputNormal,
Progress,
FileButton,
Empty,
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
width: 100%;
display: flex;
flex-direction: column;
border-bottom: 1px solid var(--color-light-neutral-text-weak);
border-bottom: 1px solid var(--color-light-neutral-border);
padding: 0px 0px 25px 0px;
}
.issue-element {
Expand Down
57 changes: 29 additions & 28 deletions frontend/src/containers/IssuePage/IssueList/IssueList.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
IssueListCheckingHeader,
IssueListHeader,
} from '@containers/index';
import { Empty } from '@components/index';
import { useEffect, useState } from 'react';
import { checkContext } from '@src/services/issue';

Expand All @@ -16,11 +17,11 @@ export const IssueList = ({
milestoneList,
labelList,
issueCount,
loading,
}) => {
const cx = classNames.bind(styles);
const containerClassNames = cx('container');
const contentsClassNames = cx('contents');
const emptyClassNames = cx('empty');

const [checkStateObject, setCheckStateObject] = useState([]);

Expand All @@ -33,9 +34,8 @@ export const IssueList = ({
setCheckStateObject(initialCheckState);
}, [issueData]);

const isCheckedStateNumber = checkStateObject?.filter(
(item) => item.isChecked === true
).length;
const isCheckedStateNumber =
checkStateObject?.filter((item) => item.isChecked === true).length ?? 0;

const [isCheckedHeader, setIsCheckedHeader] = useState(false);

Expand All @@ -52,31 +52,34 @@ export const IssueList = ({
setIsCheckedHeader(false);
}, [issueData]);

const isReusltEmpty = issueData?.length !== 0;

return (
<checkContext.Provider value={[checkStateObject, setCheckStateObject]}>
<div className={containerClassNames}>
{issueData &&
(isCheckedStateNumber === 0 ? (
<IssueListHeader
userList={userList}
assigneeList={assigneeList}
milestoneList={milestoneList}
issueCount={issueCount}
labelList={labelList}
isCheckedHeader={isCheckedHeader}
handleHeaderCheckState={handleHeaderCheckState}
></IssueListHeader>
) : (
<IssueListCheckingHeader
isCheckedStateNumber={isCheckedStateNumber}
isCheckedHeader={isCheckedHeader}
handleHeaderCheckState={handleHeaderCheckState}
setIssueData={setIssueData}
checkStateObject={checkStateObject}
></IssueListCheckingHeader>
))}
{isCheckedStateNumber === 0 ? (
<IssueListHeader
userList={userList}
assigneeList={assigneeList}
milestoneList={milestoneList}
issueCount={issueCount}
labelList={labelList}
isCheckedHeader={isCheckedHeader}
handleHeaderCheckState={handleHeaderCheckState}
></IssueListHeader>
) : (
<IssueListCheckingHeader
isCheckedStateNumber={isCheckedStateNumber}
isCheckedHeader={isCheckedHeader}
handleHeaderCheckState={handleHeaderCheckState}
setIssueData={setIssueData}
checkStateObject={checkStateObject}
></IssueListCheckingHeader>
)}
<ul className={contentsClassNames}>
{issueData?.length !== 0 ? (
{loading ? (
<Empty>로딩중</Empty>
) : isReusltEmpty ? (
issueData?.map((issue) => {
const title = issue.title;
const label = issue.labelList[0];
Expand Down Expand Up @@ -104,9 +107,7 @@ export const IssueList = ({
);
})
) : (
<div className={emptyClassNames}>
검색과 일치하는 결과가 없습니다.
</div>
<Empty>검색 결과가 없습니다.</Empty>
)}
</ul>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export const IssueListCheckingHeader = ({
</div>
<div className={cx('header-right')}>
<span className={cx('checked-issue')}>
{isCheckedStateNumber}개 이슈 선택
{isCheckedStateNumber ?? 0}개 이슈 선택
</span>
<Dropdown
width={dropdownWidth}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export const IssueElement = ({
const [checkStateObject, setCheckStateObject] = useContext(checkContext);

const isCheckedValue =
checkStateObject.find((item) => item.issueId === issueId)?.isChecked ||
checkStateObject?.find((item) => item.issueId === issueId)?.isChecked ||
false;

const handleElementChecked = () => {
Expand Down
6 changes: 5 additions & 1 deletion frontend/src/containers/IssuePage/IssuePage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,14 @@ export const IssuePage = () => {
const CTAbtn = '이슈 작성';

const [filters, setFilters] = useState(initialFilter);
const [issueData, setIssueData] = useState([]);
const [issueData, setIssueData] = useState(null);
const [assigneeList, setAssigneeList] = useState([]);
const [labelList, setLabelList] = useState([]);
const [userList, setUserList] = useState([]);
const [milestoneList, setMilestoneList] = useState([]);
const [labelAndMilestoneInfo, setLabelAndMilestoneInfo] = useState(tabDatas);
const [issueCount, setIssueCounts] = useState({ open: 0, closed: 0 });
const [loading, setLoading] = useState(true);

const navigate = useNavigate();

Expand Down Expand Up @@ -74,6 +75,7 @@ export const IssuePage = () => {
};

(async () => {
setLoading(true);
const queries = {
...filters,
};
Expand Down Expand Up @@ -107,6 +109,7 @@ export const IssuePage = () => {
milestoneList.length
)
);
setLoading(false);
})();
}, [filters]);

Expand Down Expand Up @@ -156,6 +159,7 @@ export const IssuePage = () => {
milestoneList={milestoneList}
labelList={labelList}
issueCount={issueCount}
loading={loading}
></IssueList>
</div>
</div>
Expand Down

0 comments on commit 1d8b48a

Please sign in to comment.