diff --git a/src/components/main/StudyGroups.jsx b/src/components/main/StudyGroups.jsx
index f608ea2..53eb1d1 100644
--- a/src/components/main/StudyGroups.jsx
+++ b/src/components/main/StudyGroups.jsx
@@ -11,12 +11,13 @@ const StudyGroupsWrapper = styled.div`
align-content: space-between;
`;
-const StudyGroups = ({ groups }) => (
+const StudyGroups = ({ groups, realTime }) => (
{groups.map((group) => (
))}
diff --git a/src/containers/groups/StudyGroupsContainer.jsx b/src/containers/groups/StudyGroupsContainer.jsx
index e9f5730..d6c1ae6 100644
--- a/src/containers/groups/StudyGroupsContainer.jsx
+++ b/src/containers/groups/StudyGroupsContainer.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, useState } from 'react';
import { useLocation } from 'react-router-dom';
import { useSelector, useDispatch } from 'react-redux';
@@ -6,15 +6,23 @@ import { useSelector, useDispatch } from 'react-redux';
import qs from 'qs';
import { get } from '../../util/utils';
+import useInterval from '../../util/useInterval';
import { loadStudyGroups } from '../../reducers/slice';
+
import StudyGroups from '../../components/main/StudyGroups';
const StudyGroupsContainer = () => {
const { search } = useLocation();
+ const [realTime, setRealTime] = useState(Date.now());
const dispatch = useDispatch();
+
const groups = useSelector(get('groups'));
+ useInterval(() => {
+ setRealTime(Date.now());
+ }, 1000);
+
useEffect(() => {
const { tag } = qs.parse(search, {
ignoreQueryPrefix: true,
@@ -28,7 +36,10 @@ const StudyGroupsContainer = () => {
}
return (
-
+
);
};
diff --git a/src/containers/introduce/IntroduceContainer.jsx b/src/containers/introduce/IntroduceContainer.jsx
index a6bc7d6..d17c8a9 100644
--- a/src/containers/introduce/IntroduceContainer.jsx
+++ b/src/containers/introduce/IntroduceContainer.jsx
@@ -1,13 +1,16 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { get } from '../../util/utils';
+import useInterval from '../../util/useInterval';
import { loadStudyGroup } from '../../reducers/slice';
import StudyIntroduceForm from '../../components/introduce/StudyIntroduceForm';
const IntroduceContainer = ({ groupId }) => {
+ const [realTime, setRealTime] = useState(Date.now());
+
const dispatch = useDispatch();
useEffect(() => {
@@ -16,6 +19,10 @@ const IntroduceContainer = ({ groupId }) => {
const group = useSelector(get('group'));
+ useInterval(() => {
+ setRealTime(Date.now());
+ }, 1000);
+
if (!group) {
return (
로딩중..
@@ -23,7 +30,10 @@ const IntroduceContainer = ({ groupId }) => {
}
return (
-
+
);
};
diff --git a/src/util/utils.js b/src/util/utils.js
index bdb0a13..748c582 100644
--- a/src/util/utils.js
+++ b/src/util/utils.js
@@ -5,3 +5,7 @@ export function get(key) {
export function equal(key, value) {
return (obj) => obj[key] === value;
}
+
+export const isCheckedTimeStatus = ({
+ time, applyEndTime, participants, personnel,
+}) => (!!((time - applyEndTime >= 0 || participants.length === personnel)));