Skip to content

Commit

Permalink
๐Ÿ’„ Style: ์ˆ˜์ • - BackwardsHeader๋ฅผ ํฌํ•จํ•œ body ์ƒ๋‹จ padding๊ฐ’ ์™ธ 8 (#39)
Browse files Browse the repository at this point in the history
* ๐ŸŽจ Design: ์ˆ˜์ • -  ์ถ”์ฒœ์žฅ์†Œ swiper autoplayํ•ด์ œ

Fixes: #6

* โœจ Feat: ์ถ”๊ฐ€ - ๋”๋ณด๊ธฐ๋ฒ„ํŠผ์ด ํฌํ•จ๋œ ํƒ€์ดํ‹€ ์ปดํฌ๋„ŒํŠธ

Fixes: #2

* โœจ Feat: ์ถ”๊ฐ€ - ์• ๊ฐœ์œก์•„์ •๋ณด ์ธ๊ธฐ๊ธ€ ์ปดํฌ๋„ŒํŠธ

Related to : #32

* โœจ Feat: ์ถ”๊ฐ€ - ์• ๊ฐœ๋งค๊ฑฐ์ง„

Related to: #15

* โœจ Feat: ์ถ”๊ฐ€ - ์• ๊ฐœ์Šคํ† ๋ฆฌ

Related to: #17

* ๐Ÿ’„ Style: ๋ณ€๊ฒฝ - footer์˜ z-index

fixes: #2

* โœจ Feat: ์ถ”๊ฐ€ - homeํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ ์กฐํ•ฉ ๋ฐ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ

Fixes: #23

* ๐Ÿ’„ Style: ์ˆ˜์ • - BackwardsHeader๋ฅผ ํฌํ•จํ•œ body ์ƒ๋‹จ padding๊ฐ’

Fixes: #2

* โœจ Feat: ์ˆ˜์ • - ์ปดํฌ๋„ŒํŠธ์˜ ํƒ€์ดํ‹€ ๋ถ€๋ถ„ moretitle ์ปดํฌ๋„ŒํŠธ๋กœ ์ˆ˜์ •

Fixes: #2

* โœจ Feat: ์ถ”๊ฐ€ - ๋งˆ์ดํŽ˜์ด์ง€์˜  ์ตœ๊ทผ ๋ณธ ์žฅ์†Œ

Related to: #34

* โœจ Feat: ์ถ”๊ฐ€ - ๋งˆ์ดํŽ˜์ด์ง€์˜  ๋‚˜๋งŒ์˜ ๋ถ๋งˆํฌ

Fixes: #35

* โ™ป๏ธ Refactor:์ˆ˜์ • - ๋กœ๊ทธ์ธ ์ƒํƒœ ๊ด€๋ฆฌ ๋กœ์ง์„ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™

Fixes: #9

* โœจ Feat: ์ถ”๊ฐ€ - ๋งˆ์ดํŽ˜์ด์ง€ userinfo์— ๋กœ๊ทธ์ธ ์ƒํƒœ ์ „๋‹ฌ ๋ฐ ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

Fixes: #9

* โœจ Feat: ์ถ”๊ฐ€ - ๊ธ€์ž ๋ง์ค„์ž„ ์ฒ˜๋ฆฌ ์ปค์Šคํ…€ํ›…

Fixes: #2

* โœจ Feat: ์ถ”๊ฐ€ - ํ›„๊ธฐ๊ธ€ ์ปค์Šคํ…€ํ›… ์‚ฌ์šฉํ•˜์—ฌ ๋ง์ค„์ž„์ฒ˜๋ฆฌ, ๋ณ„์ ํ›„๊ธฐ
DetailRating ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€

Fixes: #10

* โœจ Feat: ์ถ”๊ฐ€ - ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€ ํ…์ŠคํŠธ ์ปค์Šคํ…€ํ›… ์‚ฌ์šฉํ•˜์—ฌ ๋ง์ค„์ž„์ฒ˜๋ฆฌ

Fixes: #36
  • Loading branch information
sobinibani authored Aug 20, 2024
1 parent 134c18e commit f177b97
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 51 deletions.
12 changes: 7 additions & 5 deletions src/components/Mypage/UserInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import React, { useState } from 'react';
import defaultProfile from '../../assets/DefaultProfile.svg';

const UserInfo: React.FC = () => {
const [isLoggedIn, setIsLoggedIn] = useState(false);
interface UserInfoProps {
isLoggedIn: boolean;
}

const UserInfo: React.FC<UserInfoProps> = ({ isLoggedIn }) => {
return (
<div className='bg-white flex justify-center'>
<div className='flex justify-center bg-white py-[20px]'>
{isLoggedIn ? (
//๋กœ๊ทธ์ธ์ƒํƒœ
<div className='rounded-10px flex h-[119px] w-[360px] items-center border-[0.5px] border-[#b3b3b3] px-[15px] py-[20px]'>
<div className='flex h-[119px] items-center rounded-[10px] border-[0.5px] border-[#b3b3b3] px-[15px] py-[20px]'>
<div className='mr-[18px] flex h-[78px] w-[79px] flex-col items-center justify-center'>
<img
className='mb-[5px] h-[66px] w-[66px]'
Expand Down
17 changes: 17 additions & 0 deletions src/hooks/useTruncatedText.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { useState, useEffect } from 'react';

const useTruncatedText = (text: string, maxLength: number) => {
const [truncatedText, setTruncatedText] = useState('');

useEffect(() => {
if (text.length > maxLength) {
setTruncatedText(text.slice(0, maxLength) + '...');
} else {
setTruncatedText(text);
}
}, [text, maxLength]);

return truncatedText;
};

export default useTruncatedText;
2 changes: 1 addition & 1 deletion src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ body:has(footer) {
padding-bottom: 46px;
}
body:has(.BackwardsHeader) {
padding-top: 46px;
padding-top: 48px;
}

html {
Expand Down
17 changes: 17 additions & 0 deletions src/page/MyPage/MyBookmark.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import MoreTitle from '../../components/layout/MoreTitle';
import Place from '../../components/BDPlace/Place';

const MyBookmark = () => {
return (
<div className='card card2'>
<MoreTitle title='๋‚˜๋งŒ์˜ ๋ถ๋งˆํฌ' />
<div className='gap-4px flex justify-between pb-[30px]'>
<Place />
<Place />
<Place />
</div>
</div>
);
};

export default MyBookmark;
24 changes: 22 additions & 2 deletions src/page/MyPage/MyPage.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,37 @@
import React from 'react';
import { useState } from 'react';
import UserInfo from '../../components/Mypage/UserInfo';
import MyBookmark from './MyBookmark';
import RecentPlace from './RecentPlace';
import BackwardsHeader from '../../components/BackwardsHeader';
import ReviewList from './ReviewList';
import WritingList from './WritingList';
import FeaturedBanner from './FeaturedBanner';

const MyPage = () => {
const [isLoggedIn, setIsLoggedIn] = useState(true);
return (
<div>
<BackwardsHeader title='๋งˆ์ดํŽ˜์ด์ง€' />
<UserInfo isLoggedIn={isLoggedIn} />
{isLoggedIn ? <UserDashboard /> : null}
</div>
);
};

const UserDashboard = () => {
return (
<>
{/* ๋‚˜๋งŒ์˜ ๋ถ๋งˆํฌ */}
<MyBookmark />
{/* ์ตœ๊ทผ ๋ณธ ์žฅ์†Œ */}
<RecentPlace />
{/* ์ž‘์„ฑ ํ›„๊ธฐ */}
<ReviewList />
{/* ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€ */}
<WritingList />
{/* ๋ฐฐ๋„ˆ */}
<FeaturedBanner />
</div>
</>
);
};

Expand Down
17 changes: 17 additions & 0 deletions src/page/MyPage/RecentPlace.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import MoreTitle from '../../components/layout/MoreTitle';
import Place from '../../components/BDPlace/Place';

const RecentPlace = () => {
return (
<div className='card card2'>
<MoreTitle title='์ตœ๊ทผ ๋ณธ ์žฅ์†Œ' />
<div className='gap-4px flex justify-between pb-[30px]'>
<Place />
<Place />
<Place />
</div>
</div>
);
};

export default RecentPlace;
18 changes: 10 additions & 8 deletions src/page/MyPage/ReviewList.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
import ReviewListItem from './ReviewListItem';
import more from '../../assets/More.svg';
import MoreTitle from '../../components/layout/MoreTitle';

const ReviewList = () => {
const reviewItemCount = 3;
const reviewItems = Array.from({ length: reviewItemCount });

const reviewText =
'์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š” ์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜๋งŽ์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜๋งŽ์•„์š”';

return (
<>
<div className='card card2'>
<div className='cardTitle flex items-center justify-between'>
<p className='font-semibold'>์ž‘์„ฑํ›„๊ธฐ</p>
<button type='button' aria-label='์ž‘์„ฑํ›„๊ธฐ ๋”๋ณด๊ธฐ'>
<img src={more} alt='๋”๋ณด๊ธฐ ์•„์ด์ฝ˜' aria-hidden />
</button>
</div>
<MoreTitle title='์ž‘์„ฑ ํ›„๊ธฐ' />
{reviewItems.map((_, index) => (
<ReviewListItem key={index} className={index === 0 ? 'first' : ''} />
<ReviewListItem
key={index}
className={index === 0 ? 'first' : ''}
reviewText={reviewText}
/>
))}
</div>
</>
Expand Down
29 changes: 13 additions & 16 deletions src/page/MyPage/ReviewListItem.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
import classNames from 'classnames';
import { GoStarFill } from 'react-icons/go';
import useTruncatedText from '../../hooks/useTruncatedText';
import DetailRating from '../Detail/DetailRating';

interface ReviewListItemProps {
className?: string;
reviewText: string;
}

const ReviewListItem: React.FC<ReviewListItemProps> = ({ className }) => {
const ReviewListItem: React.FC<ReviewListItemProps> = ({
className,
reviewText,
}) => {
// ์ฒซ๋ฒˆ์งธ ์•„์ดํ…œ์˜ ๊ฒฝ์šฐ ์ƒ๋‹จ border ์—†์•ฐ
const borderClass = classNames({
'border-t border-border': className !== 'first',
'items-center py-[10px] flex': true,
});

// useTruncatedText ํ›… ์‚ฌ์šฉ
const truncatedText = useTruncatedText(reviewText, 210);

return (
<div>
<div className={borderClass}>
Expand All @@ -20,23 +30,10 @@ const ReviewListItem: React.FC<ReviewListItemProps> = ({ className }) => {
</p>
</div>
<div className='mb-[15px] flex'>
<div className='flex gap-[4px]'>
<GoStarFill className='font-[12px] text-[#fddf02]' />
<GoStarFill className='font-[12px] text-[#fddf02]' />
<GoStarFill className='font-[12px] text-[#fddf02]' />
<GoStarFill className='font-[12px] text-[#fddf02]' />
</div>
<DetailRating initialRating={5} />
<span className='ml-[8px] text-[12px] text-caption'>2024.01.01</span>
</div>
<p className='pb-[15px] text-[12px]'>
์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š” ์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”
</p>
<p className='pb-[15px] text-[12px]'>{truncatedText}</p>
{/* <div className='imgList flex flex-wrap gap-[12px] pb-[40px]'>
<div className='imgWrap h-[50px] w-[50px] rounded-[10px] border-2 border-border bg-background'></div>
<div className='imgWrap h-[50px] w-[50px] rounded-[10px] border-2 border-border bg-background'></div>
Expand Down
18 changes: 10 additions & 8 deletions src/page/MyPage/WritingList.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
import WritingListItem from './WritingListItem';
import more from '../../assets/More.svg';
import MoreTitle from '../../components/layout/MoreTitle';

const WritingList = () => {
const reviewItemCount = 2;
const reviewItems = Array.from({ length: reviewItemCount });

const boardText =
'์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š” ์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜๋งŽ์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜๋งŽ์•„์š”';

return (
<>
<div className='last card card2'>
<div className='cardTitle flex items-center justify-between'>
<p className='font-semibold'>๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€</p>
<button type='button' aria-label='๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€ ๋”๋ณด๊ธฐ'>
<img src={more} alt='๋”๋ณด๊ธฐ ์•„์ด์ฝ˜' aria-hidden />
</button>
</div>
<MoreTitle title='๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€' />
{reviewItems.map((_, index) => (
<WritingListItem key={index} className={index === 0 ? 'first' : ''} />
<WritingListItem
key={index}
className={index === 0 ? 'first' : ''}
boardText={boardText}
/>
))}
</div>
</>
Expand Down
22 changes: 11 additions & 11 deletions src/page/MyPage/WritingListItem.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
import classNames from 'classnames';
import { GoStarFill } from 'react-icons/go';
import useTruncatedText from '../../hooks/useTruncatedText';

interface WritingListItemProps {
className?: string;
boardText: string;
}

const WritingListItem: React.FC<WritingListItemProps> = ({ className }) => {
const WritingListItem: React.FC<WritingListItemProps> = ({
className,
boardText,
}) => {
// ์ฒซ๋ฒˆ์งธ ์•„์ดํ…œ์˜ ๊ฒฝ์šฐ ์ƒ๋‹จ border ์—†์•ฐ
const borderClass = classNames({
'border-t border-border': className !== 'first',
'items-center py-[10px] flex': true,
});

// useTruncatedText ํ›… ์‚ฌ์šฉ
const truncatedText = useTruncatedText(boardText, 210);

return (
<div>
<div className={borderClass}>
Expand All @@ -19,15 +27,7 @@ const WritingListItem: React.FC<WritingListItemProps> = ({ className }) => {
</p>
<span className='ml-[4px] text-[12px] text-caption'>2024.01.01</span>
</div>
<p className='pb-[15px] text-[12px]'>
์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š” ์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š”
์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜ ๋งŽ์•„์š”์นœ์ ˆํ•˜๊ณ  ์ข‹์•„์š” ์•„์ด๋“ค์ด๋ž‘ ๊ฐ•์•„์ง€๋ž‘ ๋†€๊ป˜
๋งŽ์•„์š”
</p>
<p className='pb-[15px] text-[12px]'>{truncatedText}</p>
</div>
);
};
Expand Down

0 comments on commit f177b97

Please sign in to comment.