Skip to content

Commit f775879

Browse files
committed
feat: test
1 parent 18af294 commit f775879

File tree

4 files changed

+34
-58
lines changed

4 files changed

+34
-58
lines changed

src/components/ui/Toast/Toast.module.scss

Lines changed: 19 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,61 +19,17 @@
1919
}
2020
}
2121

22-
// .Toast {
23-
// width: 100%;
24-
// height: 3.25rem;
25-
// z-index: 2;
26-
// border-radius: 0.75rem;
27-
// background-color: white;
28-
// padding: 0.875rem 1.125rem;
29-
30-
// transition:
31-
// opacity 0.3s,
32-
// transform 0.3s;
33-
// }
34-
35-
// .show {
36-
// opacity: 1;
37-
// transform: translateY(0);
38-
// }
39-
40-
// .ToastRoot[data-state="open"] {
41-
// animation: slideUp 150ms cubic-bezier(0.16, 1, 0.3, 1);
42-
// }
43-
// .ToastRoot[data-state="closed"] {
44-
// animation: hide 100ms ease-in;
45-
// }
46-
47-
// @keyframes hide {
48-
// from {
49-
// opacity: 1;
50-
// }
51-
// to {
52-
// opacity: 0;
53-
// }
54-
// }
55-
56-
// @keyframes slideUp {
57-
// from {
58-
// transform: translateY(100%);
59-
// opacity: 0;
60-
// }
61-
// to {
62-
// transform: translateY(0);
63-
// opacity: 1;
64-
// }
65-
// }
66-
6722
.ToastViewport {
6823
position: fixed;
6924
left: 50%;
70-
top: 0.75rem;
25+
bottom: 7rem;
7126
z-index: 9999;
7227
width: fit-content;
7328
display: flex;
7429
flex-direction: column;
7530
gap: 0.5rem;
7631
transform: translateX(-50%);
32+
width: calc(100% - 2.5rem);
7733
}
7834

7935
.Toast {
@@ -87,31 +43,42 @@
8743
transform: translateX(var(--radix-toast-swipe-move-x));
8844
}
8945
&[data-state="open"] {
90-
animation: slide-in-from-top 0.3s ease-out forwards;
46+
animation: slide-in-from-bottom 0.3s ease-out forwards;
9147
}
9248
&[data-state="closed"] {
93-
animation: slide-out-to-top 0.3s ease-in forwards;
49+
animation: slide-out-to-bottom 0.3s ease-in forwards;
9450
}
9551
}
9652

97-
@keyframes slide-in-from-top {
53+
@keyframes slide-in-from-bottom {
9854
from {
9955
opacity: 0;
100-
transform: translateY(-10px);
56+
transform: translateY(10px);
10157
}
10258
to {
10359
opacity: 1;
10460
transform: translateY(0);
10561
}
10662
}
10763

108-
@keyframes slide-out-to-top {
64+
@keyframes slide-out-to-bottom {
10965
from {
11066
opacity: 1;
11167
transform: translateY(0);
11268
}
11369
to {
11470
opacity: 0;
115-
transform: translateY(-10px);
71+
transform: translateY(10px);
72+
}
73+
}
74+
75+
.Toaster {
76+
border-radius: 0.75rem;
77+
background-color: var(--color-white);
78+
width: 100%;
79+
padding: 0.875rem 1.125rem;
80+
81+
& > span {
82+
line-height: 1.5rem;
11683
}
11784
}

src/components/ui/Toast/Toast.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Toast from "@/components/ui/Toast/Toast";
1+
import { Toast } from "@/components/ui/Toast/Toast";
22

33
import type { Meta, StoryObj } from "@storybook/react";
44

src/components/ui/Toast/Toast.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ const Toast = React.forwardRef<
2424
React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root>
2525
>(({ className, ...props }, ref) => {
2626
return (
27-
<ToastPrimitives.Root ref={ref} className={classNames(styles.Toast, className)} {...props} />
27+
<ToastPrimitives.Root
28+
ref={ref}
29+
duration={300}
30+
className={classNames(styles.Toast, className)}
31+
{...props}
32+
/>
2833
);
2934
});
3035
Toast.displayName = ToastPrimitives.Root.displayName;

src/components/ui/Toast/Toaster.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
import { Toast, ToastProvider, ToastTitle, ToastViewport } from "@/components/ui/Toast/Toast";
1+
import Text from "@/components/ui/Text/Text";
2+
import { Toast, ToastProvider, ToastViewport } from "@/components/ui/Toast/Toast";
3+
import styles from "@/components/ui/Toast/Toast.module.scss";
24

35
import { useToast } from "@/hooks/common/useToast";
46

@@ -7,15 +9,17 @@ export function Toaster() {
79

810
return (
911
<ToastProvider swipeDirection="right">
10-
{toasts.map(({ id, title, duration }) => (
12+
{toasts.map(({ id, duration }) => (
1113
<Toast
1214
key={id}
1315
open
1416
duration={duration}
1517
onOpenChange={(open) => !open && removeToast(id)}
16-
className="flex items-center gap-3 rounded-3 bg-white px-3 py-2 shadow-1"
18+
className={styles.Toaster}
1719
>
18-
{title && <ToastTitle className="text-caption-1-bold text-black">{title}</ToastTitle>}
20+
<Text color="primary" variant="bodyM">
21+
링크가 복사되었어요.
22+
</Text>
1923
</Toast>
2024
))}
2125
<ToastViewport />

0 commit comments

Comments
 (0)