@@ -7,14 +7,18 @@ import { modifyPostRepresentativeStatusApi, deletePostApi } from '@apis/post';
77import { isPostRepresentativeAtom , postIdAtom , userAtom } from '@recoil/Post/PostAtom' ;
88import { getCurrentUserId } from '@utils/getCurrentUserId' ;
99
10+ import back from '@assets/arrow/left.svg' ;
1011import Delete from '@assets/default/delete.svg' ;
1112import Edit from '@assets/default/edit.svg' ;
1213import Pin from '@assets/default/pin.svg' ;
1314
1415import BottomSheet from '@components/BottomSheet' ;
1516import BottomSheetMenu from '@components/BottomSheet/BottomSheetMenu' ;
1617import OptionsBottomSheet from '@components/BottomSheet/OptionsBottomSheet' ;
18+ import { OODDFrame } from '@components/Frame/Frame' ;
1719import Modal from '@components/Modal' ;
20+ import Skeleton from '@components/Skeleton' ;
21+ import TopBar from '@components/TopBar/index' ;
1822
1923import type { BottomSheetMenuProps } from '@components/BottomSheet/BottomSheetMenu/dto' ;
2024import type { BottomSheetProps } from '@components/BottomSheet/dto' ;
@@ -23,6 +27,8 @@ import type { ModalProps } from '@components/Modal/dto';
2327
2428import PostBase from './PostBase/index' ;
2529
30+ import { PicWrapper , NameWrapper , InfoWrapper , PostWrapper } from './styles' ;
31+
2632const Post : React . FC = ( ) => {
2733 const user = useRecoilValue ( userAtom ) ;
2834 const postId = useRecoilValue ( postIdAtom ) ;
@@ -37,6 +43,8 @@ const Post: React.FC = () => {
3743 const [ modalContent , setModalContent ] = useState ( '' ) ;
3844 const [ postPinStatus , setPostPinStatus ] = useState < '지정' | '해제' > ( '지정' ) ;
3945
46+ const [ isLoading , setIsLoading ] = useState ( true ) ;
47+
4048 const navigate = useNavigate ( ) ;
4149 const currentUserId = getCurrentUserId ( ) ;
4250
@@ -87,6 +95,10 @@ const Post: React.FC = () => {
8795 } ;
8896
8997 useEffect ( ( ) => {
98+ setTimeout ( ( ) => {
99+ setIsLoading ( false ) ;
100+ } , 1000 ) ;
101+
90102 // 현재 게시글이 내 게시글인지 확인
91103 if ( user ?. id && postId ) {
92104 setIsMyPost ( currentUserId === user . id ) ;
@@ -163,6 +175,25 @@ const Post: React.FC = () => {
163175 content : modalContent ,
164176 } ;
165177
178+ if ( isLoading ) {
179+ return (
180+ < OODDFrame >
181+ < TopBar LeftButtonSrc = { back } onClickLeftButton = { ( ) => navigate ( - 1 ) } />
182+ < InfoWrapper >
183+ < PicWrapper >
184+ < Skeleton width = { 2.5 } height = { 2.5 } borderRadius = { 2.5 } />
185+ </ PicWrapper >
186+ < NameWrapper >
187+ < Skeleton width = { 6.25 } height = { 1.25 } />
188+ </ NameWrapper >
189+ </ InfoWrapper >
190+ < PostWrapper >
191+ < Skeleton width = "100%" height = { 50 } />
192+ </ PostWrapper >
193+ </ OODDFrame >
194+ ) ;
195+ }
196+
166197 return (
167198 < >
168199 < PostBase onClickMenu = { handleMenuOpen } />
0 commit comments