mirror of
https://github.com/Motion-Games/MotionWebStudio.git
synced 2026-04-21 09:00:53 +02:00
stripe changes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { X, Info, CheckCircle, AlertTriangle, MessageSquare, Calendar, ChevronDown, ChevronUp, Wallet, ArrowLeft, RefreshCw, CreditCard } from 'lucide-react';
|
||||
import { X, Info, CheckCircle, AlertTriangle, MessageSquare, Calendar, ChevronDown, ChevronUp, Wallet, ArrowLeft, RefreshCw, CreditCard, Globe } from 'lucide-react';
|
||||
import { Button } from './Button';
|
||||
|
||||
interface FeedbackModalProps {
|
||||
@@ -18,6 +18,7 @@ export const FeedbackModal: React.FC<FeedbackModalProps> = ({ isOpen, onClose, o
|
||||
|
||||
// Approval Flow
|
||||
const [approvalConfirmed, setApprovalConfirmed] = useState(false);
|
||||
const [approvedDomain, setApprovedDomain] = useState('');
|
||||
|
||||
// Revision Flow
|
||||
const [designCheckboxes, setDesignCheckboxes] = useState<string[]>([]);
|
||||
@@ -47,9 +48,10 @@ export const FeedbackModal: React.FC<FeedbackModalProps> = ({ isOpen, onClose, o
|
||||
setShowPayment(false);
|
||||
setApprovalConfirmed(false);
|
||||
setRevisionConfirmed(false);
|
||||
setApprovedDomain(order?.details?.domainName || '');
|
||||
// Reset other fields if needed
|
||||
}
|
||||
}, [isOpen]);
|
||||
}, [isOpen, order]);
|
||||
|
||||
if (!isOpen) return null;
|
||||
|
||||
@@ -95,7 +97,8 @@ export const FeedbackModal: React.FC<FeedbackModalProps> = ({ isOpen, onClose, o
|
||||
submittedAt: new Date().toISOString(),
|
||||
approval: mainDecision === 'approved' ? {
|
||||
confirmed: approvalConfirmed,
|
||||
paymentComplete: showPayment // Flag that payment step was shown
|
||||
paymentComplete: showPayment, // Flag that payment step was shown
|
||||
domain: approvedDomain // Pass the domain
|
||||
} : null,
|
||||
revision: isRevision ? {
|
||||
design: { selected: designCheckboxes, comment: designText },
|
||||
@@ -270,21 +273,40 @@ export const FeedbackModal: React.FC<FeedbackModalProps> = ({ isOpen, onClose, o
|
||||
</div>
|
||||
|
||||
{mainDecision === 'approved' && (
|
||||
<div className="animate-fade-in bg-green-50 p-6 rounded-2xl border-2 border-green-200 shadow-inner">
|
||||
<h3 className="text-green-900 font-black mb-4 flex items-center gap-2 uppercase text-sm tracking-widest">
|
||||
<CheckCircle className="w-5 h-5" /> Megerősítés
|
||||
</h3>
|
||||
<label className="flex items-start cursor-pointer group">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={approvalConfirmed}
|
||||
onChange={(e) => setApprovalConfirmed(e.target.checked)}
|
||||
className="mt-1 w-6 h-6 text-green-600 rounded-lg focus:ring-green-500 border-green-300"
|
||||
/>
|
||||
<span className="ml-4 text-sm text-green-800 font-bold leading-relaxed">
|
||||
Tudomásul veszem, hogy a jóváhagyással elfogadom a jelenlegi állapotot, és a folyamat a végleges elszámolással folytatódik.
|
||||
</span>
|
||||
</label>
|
||||
<div className="space-y-6">
|
||||
<div className="animate-fade-in bg-green-50 p-6 rounded-2xl border-2 border-green-200 shadow-inner">
|
||||
<h3 className="text-green-900 font-black mb-4 flex items-center gap-2 uppercase text-sm tracking-widest">
|
||||
<CheckCircle className="w-5 h-5" /> Megerősítés
|
||||
</h3>
|
||||
<label className="flex items-start cursor-pointer group">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={approvalConfirmed}
|
||||
onChange={(e) => setApprovalConfirmed(e.target.checked)}
|
||||
className="mt-1 w-6 h-6 text-green-600 rounded-lg focus:ring-green-500 border-green-300"
|
||||
/>
|
||||
<span className="ml-4 text-sm text-green-800 font-bold leading-relaxed">
|
||||
Tudomásul veszem, hogy a jóváhagyással elfogadom a jelenlegi állapotot, és a folyamat a végleges elszámolással folytatódik.
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="animate-fade-in">
|
||||
<label className="block text-xs font-black text-gray-900 uppercase tracking-widest mb-2 ml-1">Végleges Domain Név</label>
|
||||
<div className="relative">
|
||||
<Globe className="absolute left-4 top-3.5 w-5 h-5 text-gray-400" />
|
||||
<input
|
||||
type="text"
|
||||
value={approvedDomain}
|
||||
onChange={(e) => setApprovedDomain(e.target.value)}
|
||||
placeholder="pl. mintaweboldal.hu"
|
||||
className="w-full pl-12 pr-4 py-3 rounded-xl border border-gray-300 bg-white text-black focus:ring-4 focus:ring-green-100 focus:border-green-500 outline-none transition-all font-bold"
|
||||
/>
|
||||
</div>
|
||||
<p className="text-[10px] text-gray-500 mt-2 ml-1 font-medium leading-relaxed">
|
||||
Kérlek add meg, milyen domain címen szeretnéd elérni a weboldalt. Átadás előtt ellenőrizzük a foglalhatóságot/elérhetőséget, és ha probléma merül fel, felvesszük veled a kapcsolatot.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Menu, X, Code2, User, LogIn, UserPlus, LogOut, LayoutDashboard, ShieldAlert } from 'lucide-react';
|
||||
import { Menu, X, Code2, User, LogIn, UserPlus, LogOut, LayoutDashboard, ShieldAlert, Crown } from 'lucide-react';
|
||||
import { Link, useLocation, useNavigate } from 'react-router-dom';
|
||||
import { Button } from './Button';
|
||||
import { useAuth } from '../context/AuthContext';
|
||||
@@ -114,7 +115,11 @@ export const Navbar: React.FC = () => {
|
||||
aria-label="Felhasználói fiók"
|
||||
>
|
||||
<User className="w-6 h-6" />
|
||||
{isAdmin && <div className="absolute top-1 right-1 w-2.5 h-2.5 bg-red-500 rounded-full border-2 border-white"></div>}
|
||||
{isAdmin && (
|
||||
<div className="absolute -top-1 -right-1 bg-white rounded-full p-0.5 shadow-sm border border-gray-100">
|
||||
<Crown className="w-3.5 h-3.5 text-yellow-500 fill-yellow-500" />
|
||||
</div>
|
||||
)}
|
||||
</button>
|
||||
|
||||
{isProfileOpen && (
|
||||
@@ -233,4 +238,4 @@ export const Navbar: React.FC = () => {
|
||||
)}
|
||||
</nav>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user