- 총 예상 수신: {getExpectedRecipients()}명
+ 총 예상 수신: {getRecipientStats().expectedRecipients}명
-
- 메시지 내용
-
+
+
+ 메시지 내용
+
+ KAKAO_MESSAGE_LIMITS.DESCRIPTION
+ ? "text-red-500"
+ : "text-muted-foreground"
+ }`}
+ >
+ {messageContent.length} / {KAKAO_MESSAGE_LIMITS.DESCRIPTION}
+
+
@@ -224,10 +276,11 @@ export function TalkNotificationModal() {
disabled={
!messageContent ||
selectedStudents.length === 0 ||
- getExpectedRecipients() === 0
+ getRecipientStats().expectedRecipients === 0 ||
+ isSending
}
>
- 알림 전송
+ {isSending ? "전송 중..." : "알림 전송"}
diff --git a/src/components/common/modals/KakaoNotificationModal.tsx b/src/components/common/modals/KakaoNotificationModal.tsx
index 9b83107..d1320b6 100644
--- a/src/components/common/modals/KakaoNotificationModal.tsx
+++ b/src/components/common/modals/KakaoNotificationModal.tsx
@@ -24,6 +24,7 @@ import {
import SelectBtn from "@/components/common/button/SelectBtn";
import { StudentProfileAvatar } from "@/components/common/avatar/StudentProfileAvatar";
import { useDialogAlert } from "@/hooks/useDialogAlert";
+import { KAKAO_MESSAGE_LIMITS } from "@/constants/kakao";
// 공통 수신자 타입
export type NotificationRecipient = {
@@ -439,12 +440,24 @@ export function KakaoNotificationModal({
{/* 메시지 내용 */}