components

This commit is contained in:
2026-01-19 01:46:07 +01:00
parent ac2add1984
commit 46266a7bbc
20 changed files with 234 additions and 161 deletions

View File

@@ -2,6 +2,7 @@
import React, { useState } from 'react';
import { useTranslations } from 'next-intl';
import { Input, Textarea, Button } from '@/components/ui';
interface RequestQuoteFormProps {
productName: string;
@@ -56,35 +57,33 @@ export default function RequestQuoteForm({ productName }: RequestQuoteFormProps)
<form onSubmit={handleSubmit} className="space-y-6">
<div className="space-y-4">
<div className="space-y-1.5">
<input
<Input
type="email"
id="email"
required
value={email}
onChange={(e) => setEmail(e.target.value)}
className="w-full px-4 py-3 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm"
placeholder={t('email')}
/>
</div>
<div className="space-y-1.5">
<textarea
<Textarea
id="request"
required
rows={4}
value={request}
onChange={(e) => setRequest(e.target.value)}
className="w-full px-4 py-3 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm resize-none"
placeholder={t('message')}
/>
</div>
</div>
<div className="space-y-4">
<button
<Button
type="submit"
disabled={status === 'submitting'}
className="w-full bg-primary text-white font-bold py-3.5 px-6 rounded-xl hover:bg-primary-dark hover:shadow-lg active:scale-[0.98] transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2 group"
className="w-full py-3.5 rounded-xl flex items-center justify-center gap-2 group"
>
{status === 'submitting' ? (
<>
@@ -102,7 +101,7 @@ export default function RequestQuoteForm({ productName }: RequestQuoteFormProps)
</svg>
</>
)}
</button>
</Button>
<p className="text-[8px] text-center text-text-secondary/40 uppercase tracking-[0.15em] font-medium px-2">
{t('privacyNote')}