Skip to content

Commit 8b9fe70

Browse files
authored
Merge pull request Next-Room#95 from Next-Room/feat/timer-image-qa
Feat/timer image qa
2 parents b4f78a1 + 5b581ec commit 8b9fe70

File tree

8 files changed

+204
-72
lines changed

8 files changed

+204
-72
lines changed

app/admin/(consts)/sidebar.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ export const deleteProps = {
3636
export const subscribeLinkURL =
3737
"https://sponge-wood-68d.notion.site/ec2a28c470094769bc787acb74760da5";
3838

39+
export const timerImageLinkURL =
40+
"https://www.notion.so/186febdc0ad180248728f1cfaf9bee20?pvs=4";
41+
3942
export const smallXProps = {
4043
src: "/images/svg/icon_X.svg",
4144
alt: "x icon",

app/admin/(style)/admin.modules.sass

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@
3131
width: 36px
3232
height: 36px
3333
margin-right: 6px
34-
border-radius: 10px
35-
border: 1px solid $color-white20
34+
border: 1px solid transparent
3635
padding-top: 1px
3736
padding-left: 1px
3837
button
@@ -41,6 +40,8 @@
4140
display: none
4241

4342
&__shop-info-img-box:hover
43+
border-radius: 10px
44+
border: 1px solid $color-white20
4445
button
4546
display: block
4647
position: absolute

app/admin/(style)/themeInfo.modules.sass

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@
360360
position: relative
361361
img
362362
border: 1px solid $color-white20
363-
object-fit: contain
363+
object-fit: cover
364364
border-radius: 12px
365365

366366
.theme-image-loader-box

app/components/common/Dialog-new/Image-Dialog-new/Dialog.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import Image from "next/image";
33

44
import { useSelectedTheme } from "@/components/atoms/selectedTheme.atom";
55
import useClickOutside from "@/hooks/useClickOutside";
6-
import { xProps } from "@/admin/(consts)/sidebar";
76
import useModal from "@/hooks/useModal";
87
import ModalPortal from "@/components/common/Dialog-new/ModalPortal";
98
import "@/components/common/Dialog-new/dialog.sass";
109
import useTimerImageUpload from "@/mutations/useTimerImageUpload";
1110
import { useTimerImageValue } from "@/components/atoms/timerImage.atom";
11+
import { XImageProps } from "@/admin/(components)/ThemeDrawer/consts/themeDrawerProps";
1212

1313
import DialogBody from "./DialogBody";
1414

@@ -47,19 +47,23 @@ const Dialog = forwardRef<HTMLFormElement>(() => {
4747
return (
4848
<ModalPortal>
4949
<form
50-
className={`theme-info-modal`}
50+
className={`timer-image-modal`}
5151
ref={formRef}
5252
onSubmit={handleSubmit}
5353
onClick={(e) => e.stopPropagation()}
5454
>
55-
<div className="theme-info-modal__header">
55+
<div className="timer-image-modal__header">
5656
<h2>타이머 배경 올리기</h2>
57-
<button className="close-button" type="button" onClick={close}>
58-
<Image {...xProps} />
57+
<button
58+
className="ghost_white_icon_button28"
59+
type="button"
60+
onClick={close}
61+
>
62+
<Image {...XImageProps} />
5963
</button>
6064
</div>
6165
<DialogBody />
62-
<div className="theme-info-modal__footer">
66+
<div className="timer-image-modal__footer">
6367
<p className="timer-preview-image-footer-text">
6468
힌트폰에 곧바로 적용됩니다
6569
</p>

app/components/common/Dialog-new/Image-Dialog-new/DialogBody.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default function DialogBody() {
1818
};
1919

2020
return (
21-
<div className="theme-info-modal__image-content">
21+
<div className="timer-image-modal__image-content">
2222
<span className="preview-text">배경 적용 미리보기</span>
2323
<div className="timer-preview-image-box">
2424
<div className="timer-dimmed-box" />

app/components/common/Dialog-new/Noti-Dialog-new/Dialog.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import useClickOutside from "@/hooks/useClickOutside";
44
import useModal from "@/hooks/useModal";
55
import ModalPortal from "@/components/common/Dialog-new/ModalPortal";
66
import { setLocalStorage } from "@/utils/storageUtil";
7+
import { timerImageLinkURL } from "@/admin/(consts)/sidebar";
78

89
import DialogBody from "./DialogBody";
910

@@ -19,7 +20,7 @@ const Dialog = forwardRef<HTMLFormElement, DialogProps>((props) => {
1920
const { type = "" } = props;
2021
const formRef = useRef<HTMLFormElement | null>(null);
2122
const handleViewDetailBtn = () => {
22-
close();
23+
window.open(timerImageLinkURL, "_blank", "noopener, noreferrer");
2324
};
2425
const handleCloseBtn = () => {
2526
if (checkboxRef.current?.checked) {
@@ -33,14 +34,14 @@ const Dialog = forwardRef<HTMLFormElement, DialogProps>((props) => {
3334
return (
3435
<ModalPortal>
3536
<form
36-
className={`theme-info-modal ${type}`}
37+
className={`new-feature-modal ${type}`}
3738
onClick={(e) => e.stopPropagation()}
3839
>
39-
<div className="theme-info-modal__header noti">
40+
<div className="new-feature-modal__header noti">
4041
<h2>새로운 기능을 소개합니다✨</h2>
4142
</div>
4243
<DialogBody />
43-
<div className="theme-info-modal__footer">
44+
<div className="new-feature-modal__footer">
4445
<div className="dont-show-again">
4546
<input type="checkbox" name="" id="hideDialog" ref={checkboxRef} />
4647
<label htmlFor="hideDialog">다시 보지 않기</label>

app/components/common/Dialog-new/Noti-Dialog-new/DialogBody.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ export default function DialogBody() {
1212
};
1313

1414
return (
15-
<div className="theme-info-modal__noti-content">
15+
<div className="new-feature-modal__noti-content">
1616
<Image {...notiImageProps} />
17-
<div className="theme-info-modal__feature-description">
18-
<span className="theme-info-modal__feature-description__title">
17+
<div className="new-feature-modal__feature-description">
18+
<div className="new-feature-modal__feature-description__title">
1919
타이머 배경
20-
</span>
21-
<p className="theme-info-modal__feature-description__summary">
20+
</div>
21+
<p className="new-feature-modal__feature-description__summary">
2222
타이머에 원하는 배경을 넣어보세요
2323
</p>
24-
<p className="theme-info-modal__feature-description__detail">
24+
<p className="new-feature-modal__feature-description__detail">
2525
기본 배경 대신 방탈출 테마 포스터를 등록하여 타이머 배경을 커스텀 할
2626
수 있습니다.
2727
<br />각 테마의 독특한 분위기를 더욱 살리고, 플레이어들에게 몰입감을

app/components/common/Dialog-new/dialog.sass

Lines changed: 175 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -57,59 +57,7 @@
5757
position: absolute
5858
.mobile_preview
5959
position: absolute
60-
61-
&__image-content
62-
width: 513px
63-
height: 434px
64-
padding: 20px
65-
margin: 20px 0 16px
66-
background-color: $color-white5
67-
border-radius: 8px
68-
position: relative
69-
display: flex
70-
flex-direction: column
71-
align-items: center
72-
gap: 16px
73-
cursor: default
7460

75-
&__noti-content
76-
width: 521px
77-
height: 333px
78-
position: relative
79-
padding: 20px
80-
margin: 24px 0 28px
81-
background-color: $color-white5
82-
border-radius: 12px
83-
position: relative
84-
display: flex
85-
flex-direction: column
86-
align-items: center
87-
gap: 16px
88-
89-
img
90-
position: absolute
91-
bottom: 0
92-
left: 50px
93-
94-
&__feature-description
95-
position: absolute
96-
width: 261px
97-
top: 133px
98-
left: 236px
99-
&__title
100-
@include body14M
101-
background-color: $color-white12
102-
padding: 2px 12px
103-
border-radius: 6px
104-
105-
&__summary
106-
@include body14M
107-
margin: 16px 0
108-
109-
&__detail
110-
@include body14R
111-
color: $color-white70
112-
11361
&__footer
11462
margin-top: 16px
11563
display: flex
@@ -250,3 +198,178 @@
250198
cursor: pointer
251199
color: rgba(255, 255, 255, 0.7)
252200
font-size: 14px
201+
202+
.timer-image-modal
203+
position: fixed
204+
top: 50%
205+
left: 50%
206+
transform: translate(-50%, -50%)
207+
208+
background-color: $color-sub1
209+
border-radius: 16px
210+
width: 577px
211+
&__header
212+
display: flex
213+
justify-content: space-between
214+
align-items: center
215+
216+
padding: 24px 24px 12px 32px
217+
height: 68px
218+
&.noti
219+
justify-content: center // 중앙 정렬
220+
h2
221+
@include title20SB
222+
cursor: default
223+
224+
&__image-content
225+
width: 513px
226+
height: 434px
227+
padding: 20px
228+
margin: 20px 32px 16px 32px
229+
background-color: $color-white5
230+
border-radius: 8px
231+
position: relative
232+
display: flex
233+
flex-direction: column
234+
align-items: center
235+
gap: 16px
236+
cursor: default
237+
238+
&__noti-content
239+
width: 521px
240+
height: 333px
241+
position: relative
242+
padding: 20px
243+
margin: 24px 0 28px
244+
background-color: $color-white5
245+
border-radius: 12px
246+
position: relative
247+
display: flex
248+
flex-direction: column
249+
align-items: center
250+
gap: 16px
251+
252+
img
253+
position: absolute
254+
bottom: 0
255+
left: 50px
256+
257+
&__feature-description
258+
position: absolute
259+
width: 261px
260+
top: 133px
261+
left: 236px
262+
&__title
263+
@include body14M
264+
background-color: $color-white12
265+
display: flex
266+
align-items: center
267+
width: fit-content
268+
height: 26px
269+
padding: 2px 12px
270+
border-radius: 6px
271+
272+
&__summary
273+
@include title18SB
274+
margin: 16px 0
275+
276+
&__detail
277+
@include body14R
278+
color: $color-white70
279+
280+
&__footer
281+
padding: 16px 32px 24px 32px
282+
display: flex
283+
justify-content: space-between
284+
.delete-button
285+
width: 100px
286+
.action-buttons
287+
margin-left: auto
288+
display: flex
289+
gap: 10px
290+
.timer-preview-image-footer-text
291+
display: flex
292+
justify-content: center
293+
align-items: center
294+
@include body14M
295+
cursor: default
296+
297+
.new-feature-modal
298+
position: fixed
299+
top: 50%
300+
left: 50%
301+
transform: translate(-50%, -50%)
302+
303+
background-color: $color-sub1
304+
border-radius: 16px
305+
width: 577px
306+
&__header
307+
display: flex
308+
justify-content: space-between
309+
align-items: center
310+
311+
padding: 24px 24px 12px 32px
312+
height: 68px
313+
&.noti
314+
justify-content: center // 중앙 정렬
315+
h2
316+
@include title20SB
317+
cursor: default
318+
319+
&__noti-content
320+
height: 333px
321+
position: relative
322+
padding: 20px
323+
margin: 12px 28px
324+
background-color: $color-white5
325+
border-radius: 12px
326+
position: relative
327+
display: flex
328+
flex-direction: column
329+
align-items: center
330+
gap: 16px
331+
332+
img
333+
position: absolute
334+
bottom: 0
335+
left: 50px
336+
337+
&__feature-description
338+
position: absolute
339+
width: 261px
340+
top: 133px
341+
left: 236px
342+
&__title
343+
@include body14M
344+
background-color: $color-white12
345+
display: flex
346+
align-items: center
347+
width: fit-content
348+
height: 26px
349+
padding: 2px 12px
350+
border-radius: 6px
351+
352+
&__summary
353+
@include title18SB
354+
margin: 16px 0
355+
356+
&__detail
357+
@include body14R
358+
color: $color-white70
359+
360+
&__footer
361+
padding: 16px 32px 24px 32px
362+
display: flex
363+
justify-content: space-between
364+
.delete-button
365+
width: 100px
366+
.action-buttons
367+
margin-left: auto
368+
display: flex
369+
gap: 10px
370+
.timer-preview-image-footer-text
371+
display: flex
372+
justify-content: center
373+
align-items: center
374+
@include body14M
375+
cursor: default

0 commit comments

Comments
 (0)