Skip to content

Commit 953abc6

Browse files
authored
Merge pull request #356 from Nexters/fix/qa-2025-12-15
fix: qa 3차 수정
2 parents bbc9b2b + 28c134f commit 953abc6

File tree

15 files changed

+199
-224
lines changed

15 files changed

+199
-224
lines changed

apps/profile/src/components/Header/Header.styles.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ const Header = styled.div<{ hasTitle: boolean }>`
1010
justify-content: ${({ hasTitle }) => (hasTitle ? 'space-between' : 'flex-end')};
1111
1212
${mq_lg} {
13-
padding: 0;
1413
position: relative;
1514
background-color: transparent;
1615
}

apps/profile/src/components/Notfound/Notfound.styles.ts

Lines changed: 5 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ const Header = styled.div`
1515
}
1616
`;
1717

18-
const CoverSection = styled.div<{ isCover: boolean }>`
18+
const CoverSection = styled.div`
1919
position: relative;
2020
width: 100%;
2121
height: 0;
2222
padding-top: 100%;
2323
overflow: hidden;
24-
border-radius: ${({ isCover }) => (isCover ? '20px 20px 0 0' : '0')};
2524
:after {
2625
content: '';
2726
position: absolute;
@@ -31,6 +30,10 @@ const CoverSection = styled.div<{ isCover: boolean }>`
3130
height: 100%;
3231
background: linear-gradient(to bottom, rgba(18, 19, 24, 0.2) 0%, rgba(18, 19, 24, 1) 100%);
3332
}
33+
34+
${mq_lg} {
35+
border-radius: 20px 20px 0 0;
36+
}
3437
`;
3538

3639
const CoverImage = styled.img`
@@ -70,57 +73,6 @@ const UserName = styled.h1`
7073
margin: 0;
7174
`;
7275

73-
const ModalOverlay = styled.div`
74-
position: fixed;
75-
top: 0;
76-
left: 0;
77-
right: 0;
78-
bottom: 0;
79-
background-color: rgba(0, 0, 0, 0.7);
80-
display: flex;
81-
align-items: center;
82-
justify-content: center;
83-
z-index: 1000;
84-
padding: 20px;
85-
`;
86-
87-
const ModalContent = styled.div`
88-
background-color: white;
89-
border-radius: 20px;
90-
padding: 40px 24px 24px;
91-
max-width: 450px;
92-
width: 100%;
93-
display: flex;
94-
flex-direction: column;
95-
justify-content: space-between;
96-
min-height: 168px;
97-
`;
98-
99-
const ModalText = styled.p`
100-
${({ theme }) => theme.typo.b3};
101-
color: '#282B33';
102-
text-align: left;
103-
margin: 0;
104-
`;
105-
106-
const ModalButton = styled.a`
107-
width: auto;
108-
height: 48px;
109-
padding: 0 24px;
110-
display: flex;
111-
align-items: center;
112-
justify-content: center;
113-
background-color: #ff5623;
114-
color: white;
115-
text-decoration: none;
116-
border-radius: 8px;
117-
${({ theme }) => theme.typo.sh1};
118-
font-weight: 600;
119-
cursor: pointer;
120-
transition: background-color 0.2s;
121-
align-self: flex-end;
122-
`;
123-
12476
export default {
12577
Header,
12678
CoverSection,
@@ -129,8 +81,4 @@ export default {
12981
ProfileInfo,
13082
Nickname,
13183
UserName,
132-
ModalOverlay,
133-
ModalContent,
134-
ModalText,
135-
ModalButton,
13684
};

apps/profile/src/components/Notfound/index.tsx

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,34 @@
1-
import { useState } from 'react';
1+
import { Confirm } from '@boolti/ui';
22
import Layout from '~/components/Layout';
33
import { EXTERNAL_DOMAIN } from '~/constants/external';
44

55
import Styled from './Notfound.styles';
66

77
const NotFound = () => {
8-
const [showModal, setShowModal] = useState(true);
9-
108
return (
11-
<>
12-
<Layout>
13-
<Styled.Header />
14-
<Styled.CoverSection isCover={false}>
15-
<Styled.CoverImage
16-
src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgQChENDRAPDQ8QDQ0NEBANDQ8NDQ8PFBEWFhUdExMZHCggGBolGxUTITEhJSkrLi42Fx85ODMsNygtLisBCgoKDg0OFxAQFS4dICU3NSsrLS0rMC0rLSstKzctLSs1Ky03KystNS0rKy0tLS0rKysrKzc3LS03KysrKysrN//AABEIAOAA4QMBIgACEQEDEQH/xAAaAAEBAQADAQAAAAAAAAAAAAAAAQUCBAYD/8QAMRABAAIAAwYCCQUBAQAAAAAAAAECAwQRBRIhMUFRMnEiYXKRkqGxweEzQlKB0SMU/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAEDAgQF/8QAHhEBAQEBAAIDAQEAAAAAAAAAAAECEQMxIUFREhP/2gAMAwEAAhEDEQA/APVgr6L5qCoKKIIoAAAAAAAAAAAAAIKAgoCCgIKAgoCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAKogCiKAAIAAAAAAAAAAAACAqiAKIAogAqAgAKAAKigACAAAAA5Uw72nSsTPlGr71yGYnpEecwlsiyWusO1Oz8x2ifK0PhiYOLXxVmP64e87DlcAFQABABQAAAAAAAQAFAAFRQABAACIno0crs+OeJ8P8Arns7KxEb9uc8vVDustb+o1zj7qVrERpEREdo4KDNqAA6eZyFLcaejPb9s/4y71tE6TGkw9A62dy0XrrHijl6/U0zv9Z6x+McBqxQAUAAAAAAAEABQABUUAAQfbJ4W/ixHTnPlD4tDZFeNreUOdXkdZna0QGD0AAAAAAMjaWFu4uscrcf76uq1Nq1/wCcT2t9YZbfN7GG5yoA6cgAAAAAAAAAAACooAAg09k+C3tR9GY72yr6XmveNfc536d49tMBg3AAAAAAdXaf6M+1VkNLa1/RrX17zNbY9MN+0AduQAAAAAAAQAFAAFRQABBywsSa3i0c4nVxBW/h3rasWjlMauTHyWamk6TxrPylr1tExrE6xPWGGs8b511QHLoAAJmIjWeEDLz+c3vQp4es9/wsnXOtcdfNY2/iTbpyjyfIG7BAFAAAAAAAAQAFAAFRQABAAB9cDMYlJ9GeHWJ5S+Qi9auFtHCnxa1n3w7FcfBnlavvhhI5uI7nkrfnGwo52r8UPhi5/AjlO9Pq/wBY6p/nC+SuxmM5iX4eGvaPu64O5OOLegCogAoAAAAAAAIACgACooAAgPtl8tiXnhwjrM8mngZPCpx03p7z9nN1I7zm1mYWUxrcq6R3nhDt4ezP5W+GPu0Bnd1pMR1a7Py8dJnzmXOMnl/4R833HPa6/mfj4/8Ajy/8I+bhbIZeekx5TLsh2n8z8Z99mR+23xQ6uLk8evONY714todTdc3EeeG1j5TCvzjSe8cJ/LMzOVxKc+Ne8fdpNSs9YsdcB05AAAAAAABAAUAAVFAdvJZOb+lbhX52/Djkctv21nwxz9c9mxEQz3rnxHeM9+aViIjSOER0gBk2AAAAAAAACYjTSeIAy89kt306eHrHb8Oi9GyNoZXdner4Z+Utca+qy1n7jpgNGYAAAAAIACgADlSk2tFY5zOji0NlYWtpvPThHmlvIsna7+Dh1rSKx0+cuYPO9AAAAAAAAAAAACuOJStqzWeUxo5Ajz+PhTS81np84cGntbC9GLx04T5dGY3zexhqcoA6QAAAEABQABt5Gm7g19cb3vYkRxehrGkRHaIhn5Gnj9qAyagAAAAAAAAAAAKAI4Y9N7DtXvE+9596N5/MV0xLR2tP1aeNn5HABqzAAABAAUABywvHX2o+r0Dz+F46+1X6vQMvI18f2AM2gAAAAAAAAAAACgCDCzv69/a+zdYee/Xv5/Z34/bjfp8AGzIAAAB//9k="
17-
alt="기본 프로필"
18-
/>
19-
<Styled.CoverOverlay>
20-
<Styled.ProfileInfo>
21-
<Styled.Nickname>-</Styled.Nickname>
22-
</Styled.ProfileInfo>
23-
</Styled.CoverOverlay>
24-
</Styled.CoverSection>
9+
<Layout>
10+
<Styled.Header />
11+
<Styled.CoverSection>
12+
<Styled.CoverImage
13+
src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgQChENDRAPDQ8QDQ0NEBANDQ8NDQ8PFBEWFhUdExMZHCggGBolGxUTITEhJSkrLi42Fx85ODMsNygtLisBCgoKDg0OFxAQFS4dICU3NSsrLS0rMC0rLSstKzctLSs1Ky03KystNS0rKy0tLS0rKysrKzc3LS03KysrKysrN//AABEIAOAA4QMBIgACEQEDEQH/xAAaAAEBAQADAQAAAAAAAAAAAAAAAQUCBAYD/8QAMRABAAIAAwYCCQUBAQAAAAAAAAECAwQRBRIhMUFRMnEiYXKRkqGxweEzQlKB0SMU/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAEDAgQF/8QAHhEBAQEBAAIDAQEAAAAAAAAAAAECEQMxIUFREhP/2gAMAwEAAhEDEQA/APVgr6L5qCoKKIIoAAAAAAAAAAAAAIKAgoCCgIKAgoCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAKogCiKAAIAAAAAAAAAAAACAqiAKIAogAqAgAKAAKigACAAAAA5Uw72nSsTPlGr71yGYnpEecwlsiyWusO1Oz8x2ifK0PhiYOLXxVmP64e87DlcAFQABABQAAAAAAAQAFAAFRQABAACIno0crs+OeJ8P8Arns7KxEb9uc8vVDustb+o1zj7qVrERpEREdo4KDNqAA6eZyFLcaejPb9s/4y71tE6TGkw9A62dy0XrrHijl6/U0zv9Z6x+McBqxQAUAAAAAAAEABQABUUAAQfbJ4W/ixHTnPlD4tDZFeNreUOdXkdZna0QGD0AAAAAAMjaWFu4uscrcf76uq1Nq1/wCcT2t9YZbfN7GG5yoA6cgAAAAAAAAAAACooAAg09k+C3tR9GY72yr6XmveNfc536d49tMBg3AAAAAAdXaf6M+1VkNLa1/RrX17zNbY9MN+0AduQAAAAAAAQAFAAFRQABBywsSa3i0c4nVxBW/h3rasWjlMauTHyWamk6TxrPylr1tExrE6xPWGGs8b511QHLoAAJmIjWeEDLz+c3vQp4es9/wsnXOtcdfNY2/iTbpyjyfIG7BAFAAAAAAAAQAFAAFRQABAAB9cDMYlJ9GeHWJ5S+Qi9auFtHCnxa1n3w7FcfBnlavvhhI5uI7nkrfnGwo52r8UPhi5/AjlO9Pq/wBY6p/nC+SuxmM5iX4eGvaPu64O5OOLegCogAoAAAAAAAIACgACooAAgPtl8tiXnhwjrM8mngZPCpx03p7z9nN1I7zm1mYWUxrcq6R3nhDt4ezP5W+GPu0Bnd1pMR1a7Py8dJnzmXOMnl/4R833HPa6/mfj4/8Ajy/8I+bhbIZeekx5TLsh2n8z8Z99mR+23xQ6uLk8evONY714todTdc3EeeG1j5TCvzjSe8cJ/LMzOVxKc+Ne8fdpNSs9YsdcB05AAAAAAABAAUAAVFAdvJZOb+lbhX52/Djkctv21nwxz9c9mxEQz3rnxHeM9+aViIjSOER0gBk2AAAAAAAACYjTSeIAy89kt306eHrHb8Oi9GyNoZXdner4Z+Utca+qy1n7jpgNGYAAAAAIACgADlSk2tFY5zOji0NlYWtpvPThHmlvIsna7+Dh1rSKx0+cuYPO9AAAAAAAAAAAACuOJStqzWeUxo5Ajz+PhTS81np84cGntbC9GLx04T5dGY3zexhqcoA6QAAAEABQABt5Gm7g19cb3vYkRxehrGkRHaIhn5Gnj9qAyagAAAAAAAAAAAKAI4Y9N7DtXvE+9596N5/MV0xLR2tP1aeNn5HABqzAAABAAUABywvHX2o+r0Dz+F46+1X6vQMvI18f2AM2gAAAAAAAAAAACgCDCzv69/a+zdYee/Xv5/Z34/bjfp8AGzIAAAB//9k="
14+
alt="기본 프로필"
15+
/>
16+
<Styled.CoverOverlay>
17+
<Styled.ProfileInfo>
18+
<Styled.Nickname>-</Styled.Nickname>
19+
</Styled.ProfileInfo>
20+
</Styled.CoverOverlay>
21+
</Styled.CoverSection>
2522

26-
{showModal && (
27-
<Styled.ModalOverlay onClick={() => setShowModal(false)}>
28-
<Styled.ModalContent onClick={(e) => e.stopPropagation()}>
29-
<Styled.ModalText>존재하지 않는 프로필입니다.</Styled.ModalText>
30-
<Styled.ModalButton href={EXTERNAL_DOMAIN.SHOW_MANAGER}>
31-
불티 홈 바로 가기
32-
</Styled.ModalButton>
33-
</Styled.ModalContent>
34-
</Styled.ModalOverlay>
35-
)}
36-
</Layout>
37-
</>
23+
<Confirm
24+
confirmText="불티 홈 바로 가기"
25+
onConfirm={() => {
26+
window.location.href = EXTERNAL_DOMAIN.SHOW_MANAGER;
27+
}}
28+
>
29+
존재하지 않는 프로필입니다.
30+
</Confirm>
31+
</Layout>
3832
);
3933
};
4034

apps/profile/src/components/VideoCard/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ const VideoCard = ({ videoUrl }: VideoCardProps) => {
1212
const formattedDuration = formatYoutubeDuration(data?.duration ?? null);
1313

1414
return (
15-
<Styled.VideoCard href={videoUrl}>
15+
<Styled.VideoCard href={videoUrl} target="_blank" rel="noopener noreferrer">
1616
<Styled.VideoThumbnailWrapper>
1717
<Styled.VideoThumbnail src={getYoutubeThumbnailUrl(videoId)} alt="YouTube video" />
1818
</Styled.VideoThumbnailWrapper>
1919
<Styled.VideoInfo>
20-
<Styled.VideoTitle>{data?.title ?? 'YouTube 영상'}</Styled.VideoTitle>
20+
<Styled.VideoTitle>{data?.title ?? '알 수 없는 동영상'}</Styled.VideoTitle>
2121
{formattedDuration && <Styled.VideoDuration>{formattedDuration}</Styled.VideoDuration>}
2222
</Styled.VideoInfo>
2323
</Styled.VideoCard>
Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
import { IS_PRODUCTION_PHASE } from './phase';
22

33
export const EXTERNAL_DOMAIN = {
4-
SHOW_MANAGER: `https://${IS_PRODUCTION_PHASE ? '' : 'dev.'}boolti.in`,
5-
SHOW_TICKET_PREVIEW: `https://${IS_PRODUCTION_PHASE ? '' : 'dev.'}preview.boolti.in`,
4+
SHOW_MANAGER: `https://${IS_PRODUCTION_PHASE ? '' : 'dev.'}preview.boolti.in`,
65
} as const;
76

87
export const EXTERNAL_URL = {
9-
SHOW_MANAGER_INFO: (showId: string | number) =>
10-
`${EXTERNAL_DOMAIN.SHOW_MANAGER}/show/${showId}/info`,
11-
12-
SHOW_TICKET_PREVIEW: (showId: string | number) =>
13-
`${EXTERNAL_DOMAIN.SHOW_TICKET_PREVIEW}/show/${showId}`,
8+
SHOW_MANAGER_INFO: (showId: string | number) => `${EXTERNAL_DOMAIN.SHOW_MANAGER}/show/${showId}`,
149
} as const;

apps/profile/src/constants/schemes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ export function createAppScheme({ path, query }: SchemeOptions): string {
1919
export const SCHEMES = {
2020
: () => createAppScheme({ path: 'home' }),
2121
선물_등록: (giftId: string) => createAppScheme({ path: `gift/${giftId}` }),
22+
브릿지_스토어: () => createAppScheme({ path: 'bridge/store' }),
2223
};

apps/profile/src/pages/ProfileLinkPage/ProfileLinkPage.styles.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,14 @@ const Container = styled.div`
55
display: flex;
66
flex-direction: column;
77
gap: 16px;
8-
padding: 20px;
9-
10-
${mq_lg} {
11-
padding: 20px;
12-
}
8+
padding: 0px 20px;
139
`;
1410

1511
const CountText = styled.p`
1612
${({ theme }) => theme.typo.b2};
1713
color: ${({ theme }) => theme.palette.grey.g40};
18-
19-
${mq_lg} {
20-
padding: 0;
21-
}
14+
padding: 16px 0px 12px 0px;
15+
margin-left: 20px;
2216
`;
2317

2418
const LinkItem = styled.a`

apps/profile/src/pages/ProfileLinkPage/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@ export const ProfileLinkPage = () => {
1212
return (
1313
<Layout>
1414
<Header title="링크" />
15+
<Styled.CountText>전체 {data?.length || 0}</Styled.CountText>
1516
<Styled.Container>
16-
<Styled.CountText>{data?.length || 0}</Styled.CountText>
1717
{data?.map((link, index) => (
18-
<Styled.LinkItem key={`${link.link}-${index}`} href={link.link}>
18+
<Styled.LinkItem
19+
key={`${link.link}-${index}`}
20+
href={link.link}
21+
target="_blank"
22+
rel="noopener noreferrer"
23+
>
1924
<Styled.IconWrapper>
2025
<ChainLink />
2126
</Styled.IconWrapper>

apps/profile/src/pages/ProfilePage/ProfilePage.styles.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,6 @@ const Section = styled.div`
139139
padding: 32px 20px 24px 20px;
140140
`;
141141

142-
const Sections = styled.div`
143-
& > ${Section}:not(:last-child) {
144-
border-bottom: 1px solid ${({ theme }) => theme.palette.grey.g90};
145-
}
146-
`;
147-
148142
const PastShowSection = styled.div`
149143
padding: 32px 0px;
150144
`;
@@ -382,7 +376,7 @@ const ShareDropdownItem = styled.button`
382376
padding: 0 16px;
383377
background: none;
384378
border: none;
385-
${({ theme }) => theme.typo.b3};
379+
${({ theme }) => theme.typo.b1};
386380
color: ${({ theme }) => theme.palette.mobile.grey.g15};
387381
text-align: left;
388382
cursor: pointer;
@@ -443,6 +437,11 @@ const DialogDescription = styled.p`
443437
}
444438
`;
445439

440+
const Divider = styled.hr`
441+
border-top: 1px solid ${({ theme }) => theme.palette.grey.g90};
442+
margin: 0px 20px;
443+
`;
444+
446445
export default {
447446
CoverSection,
448447
CoverImage,
@@ -456,10 +455,10 @@ export default {
456455
InfoText,
457456
ActionButtons,
458457
IconButton,
459-
Sections,
460458
Section,
461459
SectionHeader,
462460
SectionTitle,
461+
Divider,
463462
ViewAllButton,
464463
ArrowIcon,
465464
ShowList,

0 commit comments

Comments
 (0)