Skip to content

Commit f57d8aa

Browse files
authored
Merge pull request #85 from SWM-FIRE/FIRE-395-fe-방-카드-디자인-변경
Fire 395 fe 방 카드 디자인 변경
2 parents a6ce562 + 0026a1d commit f57d8aa

File tree

8 files changed

+70
-46
lines changed

8 files changed

+70
-46
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"@types/uuid": "^8.3.4",
1111
"axios": "^0.27.2",
1212
"history": "^5.3.0",
13+
"lottie-web": "^5.9.6",
1314
"moment": "^2.29.4",
1415
"react": "^18.2.0",
1516
"react-dom": "^18.2.0",

src/assets/theme/camping.json

+1
Large diffs are not rendered by default.

src/assets/theme/cosmos.json

+1
Large diffs are not rendered by default.

src/assets/theme/ocean.json

+1
Large diffs are not rendered by default.

src/assets/theme/travel.json

+1
Large diffs are not rendered by default.

src/components/main/Block.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export default function Block({
2222
event.preventDefault();
2323
navigate(`/ready/${itemId}`);
2424
};
25+
console.log(theme);
2526
return (
2627
<Container main={isMain}>
2728
<AvatarContainer>
@@ -42,7 +43,7 @@ export default function Block({
4243
<Theme theme={theme} />
4344
<Bar />
4445
<Attend>
45-
{total}{current}명 참여중
46+
🔥 {total}{current}명 참여중
4647
</Attend>
4748
</Detail>
4849
</DetailContainer>
@@ -140,7 +141,7 @@ const Detail = styled.div`
140141
`;
141142

142143
const Attend = styled.div`
143-
color: white;
144+
color: rgba(255, 255, 255, 0.8);
144145
font-size: 1.4rem;
145146
`;
146147

src/components/main/Theme.tsx

+57-44
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,60 @@
1+
import { useRef, useEffect } from 'react';
12
import styled from 'styled-components';
2-
import { ReactComponent as Fire } from '../../assets/svg/Room/Fire.svg';
3-
import { ReactComponent as Cosmos } from '../../assets/svg/Room/Cosmos.svg';
4-
import { ReactComponent as Camping } from '../../assets/svg/Room/Camping.svg';
5-
import { ReactComponent as Ocean } from '../../assets/svg/Room/Ocean.svg';
6-
import { ReactComponent as Travel } from '../../assets/svg/Room/Travel.svg';
3+
import Lottie from 'lottie-web';
4+
import fireJson from '../../assets/theme/fire.json';
5+
import oceanJson from '../../assets/theme/ocean.json';
6+
import campingJson from '../../assets/theme/camping.json';
7+
import travelJson from '../../assets/theme/travel.json';
8+
import cosmosJson from '../../assets/theme/cosmos.json';
79

810
export default function Theme({ theme }: { theme: string }) {
9-
console.log(theme);
11+
let themeName;
12+
let themeJson;
13+
const themeRef = useRef<HTMLDivElement>(null);
14+
1015
switch (theme) {
1116
case 'fire':
12-
return (
13-
<Component>
14-
<Fire />
15-
<Name>모닥불</Name>
16-
</Component>
17-
);
18-
case 'cosmos':
19-
return (
20-
<Component>
21-
<Cosmos />
22-
<Name>우주인</Name>
23-
</Component>
24-
);
25-
case 'camping':
26-
return (
27-
<Component>
28-
<Camping />
29-
<Name>캠핑</Name>
30-
</Component>
31-
);
17+
themeName = '모닥불';
18+
themeJson = fireJson;
19+
break;
3220
case 'ocean':
33-
return (
34-
<Component>
35-
<Ocean />
36-
<Name>바다</Name>
37-
</Component>
38-
);
21+
themeName = '바다';
22+
themeJson = oceanJson;
23+
break;
24+
case 'camping':
25+
themeName = '캠핑';
26+
themeJson = campingJson;
27+
break;
28+
case 'cosmos':
29+
themeName = '우주인';
30+
themeJson = cosmosJson;
31+
break;
3932
case 'travel':
40-
return (
41-
<Component>
42-
<Travel />
43-
<Name>여행</Name>
44-
</Component>
45-
);
33+
themeName = '여행';
34+
themeJson = travelJson;
35+
break;
4636
default:
47-
return (
48-
<Component>
49-
<Fire />
50-
<Name>모닥불</Name>
51-
</Component>
52-
);
37+
themeName = '모닥불';
38+
themeJson = fireJson;
5339
}
40+
41+
useEffect(() => {
42+
Lottie.loadAnimation({
43+
container: themeRef.current,
44+
renderer: 'svg',
45+
loop: true,
46+
autoplay: true,
47+
animationData: themeJson,
48+
});
49+
}, []);
50+
return (
51+
<Component>
52+
<ThemeImage>
53+
<div ref={themeRef} />
54+
</ThemeImage>
55+
<Name>{themeName}</Name>
56+
</Component>
57+
);
5458
}
5559

5660
const Component = styled.div`
@@ -59,6 +63,15 @@ const Component = styled.div`
5963
gap: 0.4rem;
6064
`;
6165

66+
const ThemeImage = styled.div`
67+
width: 2rem;
68+
height: 2rem;
69+
div {
70+
width: 100%;
71+
height: 100%;
72+
}
73+
`;
74+
6275
const Name = styled.span`
6376
font-family: IBMPlexMonoRegular;
6477
font-size: 1.4rem;

yarn.lock

+5
Original file line numberDiff line numberDiff line change
@@ -6221,6 +6221,11 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
62216221
dependencies:
62226222
js-tokens "^3.0.0 || ^4.0.0"
62236223

6224+
lottie-web@^5.9.6:
6225+
version "5.9.6"
6226+
resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.9.6.tgz#62ae68563355d3e04aa75d53dec3dd4bea0e57c9"
6227+
integrity sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA==
6228+
62246229
lower-case@^2.0.2:
62256230
version "2.0.2"
62266231
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"

0 commit comments

Comments
 (0)