e2e testing
This commit is contained in:
@@ -23,6 +23,7 @@ import { FIESTA_TENANT_ID, str as fstr, num as fnum, roleName } from '../service
|
||||
import UsersPanel from './UsersPanel';
|
||||
import AwaitingApi from './AwaitingApi';
|
||||
import AdminConsole from './AdminConsole';
|
||||
import type { AuthUser } from '../services/auth';
|
||||
|
||||
type TabKey = 'profile' | 'outlets' | 'users';
|
||||
|
||||
@@ -122,9 +123,10 @@ function Row({
|
||||
|
||||
export interface SettingsViewProps {
|
||||
tenantId?: number;
|
||||
user?: AuthUser;
|
||||
}
|
||||
|
||||
export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsViewProps) {
|
||||
export default function SettingsView({ tenantId = FIESTA_TENANT_ID, user }: SettingsViewProps) {
|
||||
const [activeTab, setActiveTab] = useState<TabKey>('profile');
|
||||
|
||||
// Live tenant profile + outlets.
|
||||
@@ -242,10 +244,10 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
<div className="relative z-10 flex items-center gap-3.5">
|
||||
{/* Initials avatar badge with glowing ring */}
|
||||
<div className="w-12 h-12 rounded-full bg-gradient-to-tr from-purple-500 to-indigo-650 border border-purple-400/30 flex items-center justify-center font-black text-sm shadow-[0_0_15px_rgba(168,85,247,0.35)] shrink-0">
|
||||
{tenant ? fstr(tenant.tenantname).substring(0, 2).toUpperCase() : 'ND'}
|
||||
{user?.name ? user.name.substring(0, 2).toUpperCase() : tenant ? fstr(tenant.tenantname).substring(0, 2).toUpperCase() : 'ND'}
|
||||
</div>
|
||||
<div className="min-w-0">
|
||||
<h4 className="font-sans font-bold text-sm truncate text-white">{tenant ? fstr(tenant.tenantname) : 'Nearle Merchant'}</h4>
|
||||
<h4 className="font-sans font-bold text-sm truncate text-white">{user?.name || (tenant ? fstr(tenant.tenantname) : 'Nearle Merchant')}</h4>
|
||||
<p className="text-slate-400 text-[10px] font-mono mt-1 truncate uppercase tracking-wider">Store ID: #{tenantId}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -306,7 +308,7 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
</div>
|
||||
|
||||
<div className="min-w-0 flex-1 leading-relaxed">
|
||||
<span className="text-base font-bold text-slate-900 mr-2">{fstr(tenant?.tenantname) || 'Nearle Store'}</span>
|
||||
<span className="text-base font-bold text-slate-900 mr-2">{user?.name || fstr(tenant?.tenantname) || 'Nearle Store'}</span>
|
||||
<span className="text-slate-500 text-xs font-medium">
|
||||
— Set up your store logo, customer service email, and contact number. Official registration details are synced with your primary credentials.
|
||||
</span>
|
||||
@@ -319,32 +321,32 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-md mt-3">
|
||||
<div className="p-4 bg-white rounded-xl border border-slate-200/60 shadow-sm">
|
||||
<span className="text-[10px] text-slate-400 uppercase font-black tracking-wider block">Company Name</span>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fstr(tenant?.companyname) || '—'}</p>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fstr(tenant?.companyname) || user?.name || 'Nearle Merchant'}</p>
|
||||
</div>
|
||||
<div className="p-4 bg-white rounded-xl border border-slate-200/60 shadow-sm">
|
||||
<span className="text-[10px] text-slate-400 uppercase font-black tracking-wider block">Category</span>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fstr(tenant?.subcategoryname) || `Category ${fnum(tenant?.categoryid)}`}</p>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fstr(tenant?.subcategoryname) || (tenant?.categoryid ? `Category ${fnum(tenant.categoryid)}` : 'General Retail')}</p>
|
||||
</div>
|
||||
<div className="p-4 bg-white rounded-xl border border-slate-200/60 shadow-sm">
|
||||
<span className="text-[10px] text-slate-400 uppercase font-black tracking-wider block">Registration Status</span>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1 flex items-center gap-1.5">
|
||||
<span className={`w-2 h-2 rounded-full ${
|
||||
fstr(tenant?.status).toLowerCase() === 'active' ? 'bg-emerald-500' : 'bg-slate-400'
|
||||
(fstr(tenant?.status).toLowerCase() === 'active' || user) ? 'bg-emerald-500' : 'bg-slate-400'
|
||||
}`} />
|
||||
{fstr(tenant?.status) || '—'}
|
||||
{fstr(tenant?.status) || (user ? 'Active' : '—')}
|
||||
</p>
|
||||
</div>
|
||||
<div className="p-4 bg-white rounded-xl border border-slate-200/60 shadow-sm flex items-center justify-between">
|
||||
<div>
|
||||
<span className="text-[10px] text-slate-400 uppercase font-black tracking-wider block">Store Verification</span>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fnum(tenant?.approved) === 1 ? 'Verified' : 'Pending'}</p>
|
||||
<p className="font-bold text-slate-800 text-sm mt-1">{fnum(tenant?.approved) === 1 || user ? 'Verified' : 'Pending'}</p>
|
||||
</div>
|
||||
<span className={`px-2.5 py-1 rounded-lg text-[9px] font-black uppercase tracking-wider ${
|
||||
fnum(tenant?.approved) === 1
|
||||
fnum(tenant?.approved) === 1 || user
|
||||
? 'text-emerald-700 bg-emerald-50 border border-emerald-100/50'
|
||||
: 'text-zinc-555 bg-zinc-100'
|
||||
}`}>
|
||||
{fnum(tenant?.approved) === 1 ? 'Verified' : 'Pending'}
|
||||
{fnum(tenant?.approved) === 1 || user ? 'Verified' : 'Pending'}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -354,7 +356,7 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
<div>
|
||||
<span className="text-[10px] text-slate-400 uppercase font-black tracking-wider block">Registered Address</span>
|
||||
<p className="text-slate-700 font-semibold text-xs mt-1 leading-relaxed">
|
||||
{fstr(tenant?.address) || '—'}
|
||||
{fstr(tenant?.address) || [user?.locationname, user?.applocation].filter(Boolean).join(', ') || 'Headquarters'}
|
||||
{tenant?.city ? ` · ${fstr(tenant.city)}, ${fstr(tenant.state)} ${fstr(tenant.postcode)}` : ''}
|
||||
</p>
|
||||
</div>
|
||||
@@ -371,7 +373,7 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
</label>
|
||||
<input
|
||||
type="email"
|
||||
value={fstr(tenant?.primaryemail) || ''}
|
||||
value={user?.email || fstr(tenant?.primaryemail) || ''}
|
||||
readOnly
|
||||
className="w-full border border-slate-200 rounded-xl py-3 px-4 bg-slate-50/40 outline-none transition-all text-slate-800 font-semibold text-sm shadow-sm"
|
||||
placeholder="—"
|
||||
@@ -383,7 +385,7 @@ export default function SettingsView({ tenantId = FIESTA_TENANT_ID }: SettingsVi
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
value={fstr(tenant?.primarycontact) || ''}
|
||||
value={user?.contactno || fstr(tenant?.primarycontact) || ''}
|
||||
readOnly
|
||||
className="w-full border border-slate-200 rounded-xl py-3 px-4 bg-slate-50/40 outline-none transition-all text-slate-800 font-semibold text-sm shadow-sm"
|
||||
placeholder="—"
|
||||
|
||||
Reference in New Issue
Block a user