diff --git a/index.html b/index.html
index 7bc4c1c..9895267 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,10 @@
-
+
{
- if (e.target === modalBackdrop.current)
- setModalStatus(false);
+ if (e.target === modalBackdrop.current) onShow(0);
}}
>
-
+
onShow(0)} />
-
+
+ -
+
-
+
+ -
+
+
+ 오늘 점심 메뉴
+
+
+ -
+
+
+ 오늘 저녁 메뉴
+
-
+
-
+
{children}
diff --git a/src/components/MallangMap.jsx b/src/components/MallangMap.jsx
index 83974a9..cbb93e9 100644
--- a/src/components/MallangMap.jsx
+++ b/src/components/MallangMap.jsx
@@ -1,14 +1,11 @@
-import { useKakaoLoader, Map, MapMarker } from 'react-kakao-maps-sdk';
-import MainModal from './MainModal';
+import { Map, MapMarker } from 'react-kakao-maps-sdk';
+import MarkerCategory from './layout/MarkerCategory';
const MallangMap = () => {
- useKakaoLoader({
- appkey: import.meta.env.VITE_KAKAO_APP_KEY,
- libraries: ['drawing'],
- });
-
return (
);
};
diff --git a/src/components/common/ArticleItem.jsx b/src/components/common/ArticleItem.jsx
new file mode 100644
index 0000000..690a52d
--- /dev/null
+++ b/src/components/common/ArticleItem.jsx
@@ -0,0 +1,59 @@
+import Remix from './Remix';
+import dateFormat from '../../utils/dateFormat';
+import hourFormat from '../../utils/hourFormat';
+
+const ArticleItem = ({
+ index = 0,
+ articleTitle = '제목 없음',
+ repliesCount = 0,
+ boardFrom = '게시판 없음',
+ categoryFrom = '분류 없음',
+ writtenDate = '1970-01-01',
+ isEditMode = false,
+}) => {
+ return (
+
+ {isEditMode && (
+
+ )}
+
+
+ -
+
+ {articleTitle}
+
+
+
+ [{repliesCount.toLocaleString('ko-KR')}]
+
+
+
+ -
+ {boardFrom}
+
+ ·
+
+ {categoryFrom}
+
+
+ -
+ {dateFormat(writtenDate)}
+
+ ·
+
+ {hourFormat(writtenDate)}
+
+
+
+ );
+};
+
+export default ArticleItem;
diff --git a/src/components/common/ChatItem.jsx b/src/components/common/ChatItem.jsx
new file mode 100644
index 0000000..3b6a961
--- /dev/null
+++ b/src/components/common/ChatItem.jsx
@@ -0,0 +1,77 @@
+import Remix from './Remix';
+import dateFormat from '../../utils/dateFormat';
+import hourFormat from '../../utils/hourFormat';
+
+const ChatItem = ({
+ chatFrom = 'my',
+ chatUser = { userID: 0, userImage: null, userName: '대화 상대' },
+ chatContent = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas laboriosam, debitis veniam nobis eligendi sequi modi deleniti repellat harum aliquid possimus, repellendus, quisquam voluptatem! Exercitationem voluptas dolorem natus architecto laborum.',
+ dateTime = '1970-01-01',
+ isRead = true,
+}) => {
+ return (
+
+ {chatFrom === 'opposite' && (
+
+ {chatUser.userImage ? (
+

+ ) : (
+
+ )}
+
+ )}
+
+
+ {chatFrom === 'opposite' && (
+ -
+ {chatUser.userName}
+
+ )}
+
+ -
+ {chatContent}
+
+
+ -
+ {dateFormat(dateTime)}
+
+ ·
+
+ {hourFormat(dateTime)}
+
+ {chatFrom === 'my' && (
+ <>
+ ·
+
+ {isRead ? (
+ 읽음
+ ) : (
+ <>
+ 읽지 않음
+
+
+ >
+ )}
+ >
+ )}
+
+
+
+ );
+};
+
+export default ChatItem;
diff --git a/src/components/common/EmptyList.jsx b/src/components/common/EmptyList.jsx
index ad5a09b..5d47c53 100644
--- a/src/components/common/EmptyList.jsx
+++ b/src/components/common/EmptyList.jsx
@@ -11,7 +11,7 @@ const EmptyList = ({ placeHolderText = '아직은 표시할 내용이 없어요.
{
+const MainModalCover = ({ onClose }) => {
return (
@@ -27,11 +27,22 @@ const MainModalCover = () => {
-
+