- Domain: NotificationLog/NotificationPreference entities, repositories, channel value object - Infrastructure: EmailService (nodemailer/SMTP), FcmService (firebase-admin), TemplateService (Handlebars) - Application: SendNotification CQRS command, UserRegistered + AgentVerified event listeners - Presentation: NotificationsController with history, preferences, and templates endpoints - Prisma: NotificationLog and NotificationPreference models with proper indexes - Templates: Vietnamese notification templates for user.registered, agent.verified, listing.approved, inquiry.received, password.reset Co-Authored-By: Paperclip <noreply@paperclip.ing>
21 lines
635 B
TypeScript
21 lines
635 B
TypeScript
'use client';
|
|
|
|
import * as React from 'react';
|
|
import { cva, type VariantProps } from 'class-variance-authority';
|
|
import { cn } from '@/lib/utils';
|
|
|
|
const labelVariants = cva(
|
|
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
|
);
|
|
|
|
export interface LabelProps
|
|
extends React.LabelHTMLAttributes<HTMLLabelElement>,
|
|
VariantProps<typeof labelVariants> {}
|
|
|
|
const Label = React.forwardRef<HTMLLabelElement, LabelProps>(({ className, ...props }, ref) => {
|
|
return <label ref={ref} className={cn(labelVariants(), className)} {...props} />;
|
|
});
|
|
Label.displayName = 'Label';
|
|
|
|
export { Label };
|