Block 8 complete: streaks, notifications, referrals, premium identity, gamification
This commit is contained in:
@@ -17,6 +17,7 @@ import {
|
||||
CheckCircle2,
|
||||
MessageSquare,
|
||||
} from "lucide-react";
|
||||
import PremiumBadge from "@/components/PremiumBadge";
|
||||
|
||||
/* ── Types ── */
|
||||
interface ChatMessage {
|
||||
@@ -319,7 +320,7 @@ function NurChat() {
|
||||
)}
|
||||
|
||||
{messages.map((msg, idx) => (
|
||||
<MessageBubble key={msg.id || idx} message={msg} />
|
||||
<MessageBubble key={msg.id || idx} message={msg} isPremium={isPremium} isPro={isPro} />
|
||||
))}
|
||||
|
||||
{isTyping && (
|
||||
@@ -451,11 +452,9 @@ function PersonaSelector({
|
||||
{persona.description}
|
||||
</span>
|
||||
{!accessible && (
|
||||
<div className="flex items-center gap-1 bg-amber-900/30 border border-amber-700/30 rounded-full px-2 py-0.5 mt-1">
|
||||
<div className="flex items-center gap-1 mt-1">
|
||||
<Lock size={8} className="text-amber-400" />
|
||||
<span className="text-[8px] font-medium text-amber-400">
|
||||
Premium
|
||||
</span>
|
||||
<PremiumBadge tier="premium" size="sm" />
|
||||
</div>
|
||||
)}
|
||||
{isActive && (
|
||||
@@ -470,8 +469,9 @@ function PersonaSelector({
|
||||
}
|
||||
|
||||
/* ── Message Bubble ── */
|
||||
function MessageBubble({ message }: { message: ChatMessage }) {
|
||||
function MessageBubble({ message, isPremium, isPro }: { message: ChatMessage; isPremium?: boolean; isPro?: boolean }) {
|
||||
const isUser = message.role === "user";
|
||||
const premiumGlow = !isUser && (isPremium || isPro) && "shadow-[0_0_12px_rgba(212,175,55,0.15)] border-[#D4AF37]/20";
|
||||
|
||||
return (
|
||||
<div
|
||||
@@ -488,7 +488,7 @@ function MessageBubble({ message }: { message: ChatMessage }) {
|
||||
className={`max-w-[85%] rounded-2xl px-4 py-3 text-sm leading-relaxed whitespace-pre-wrap ${
|
||||
isUser
|
||||
? "bg-[#D4AF37] text-[#0a0a0f] rounded-tr-sm"
|
||||
: "bg-[#1a1a24] border border-gray-700/40 text-gray-200 rounded-tl-sm"
|
||||
: `bg-[#1a1a24] border border-gray-700/40 text-gray-200 rounded-tl-sm ${premiumGlow || ""}`
|
||||
}`}
|
||||
>
|
||||
{message.content}
|
||||
|
||||
Reference in New Issue
Block a user