Tillo Rebranding

This commit is contained in:
Sidharth Prabhu
2026-07-24 08:38:04 +05:30
parent 4f3c39fee8
commit 2c42aeb4ee
3 changed files with 5 additions and 5 deletions

View File

@@ -20,14 +20,14 @@ spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Kolkata
# JWT — REQUIRED environment variables # JWT — REQUIRED environment variables
# MUST provide a secure random key (min 256-bit) # MUST provide a secure random key (min 256-bit)
# ============================================================ # ============================================================
app.jwt.secret=${JWT_SECRET} app.jwt.secret=${JWT_SECRET:default_jwt_secret_key_which_is_at_least_32_bytes_long}
app.jwt.expiration-ms=86400000 app.jwt.expiration-ms=86400000
# ============================================================ # ============================================================
# Master Account — REQUIRED environment variables # Master Account — REQUIRED environment variables
# ============================================================ # ============================================================
app.master.username=${MASTER_USER:admin} app.master.username=${MASTER_USER:admin}
app.master.password=${MASTER_PASSWORD} app.master.password=${MASTER_PASSWORD:admin123}
# File upload configuration # File upload configuration
spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-file-size=10MB

View File

@@ -57,7 +57,7 @@ const Login = () => {
// Persist user profile + JWT token for authenticated API calls // Persist user profile + JWT token for authenticated API calls
localStorage.setItem('systemUser', JSON.stringify(user)); // user object now includes `token` localStorage.setItem('systemUser', JSON.stringify(user)); // user object now includes `token`
navigate('/store-dashboard'); navigate('/dashboard');
} else { } else {
const error = await response.json().catch(() => ({ error: 'Invalid credentials' })); const error = await response.json().catch(() => ({ error: 'Invalid credentials' }));
alert(error.error || 'Invalid credentials'); alert(error.error || 'Invalid credentials');

View File

@@ -306,7 +306,7 @@ const Products = () => {
<button <button
onClick={() => { onClick={() => {
setEditingProduct(null); setEditingProduct(null);
setFormData(emptyProduct); setFormData({ ...emptyProduct, productId: `PRD-${Math.floor(1000 + Math.random() * 9000)}` });
setShowModal(true); setShowModal(true);
}} }}
className="bg-[#001828] text-white px-4 py-2 rounded-xl flex items-center gap-2 shadow-lg shadow-[#001828]/20 hover:scale-[1.02] active:scale-95 transition-all" className="bg-[#001828] text-white px-4 py-2 rounded-xl flex items-center gap-2 shadow-lg shadow-[#001828]/20 hover:scale-[1.02] active:scale-95 transition-all"
@@ -461,7 +461,7 @@ const Products = () => {
<form onSubmit={handleSubmit} className="p-8"> <form onSubmit={handleSubmit} className="p-8">
<div className="grid grid-cols-1 md:grid-cols-3 gap-6"> <div className="grid grid-cols-1 md:grid-cols-3 gap-6">
<div className="space-y-4"> <div className="space-y-4">
<div><label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Product ID</label><input type="text" value={formData.productId} onChange={(e) => setFormData({ ...formData, productId: e.target.value })} className="w-full px-4 py-3 border border-[#e2e8f0] rounded-xl text-sm" /></div> <div><label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Product ID (Auto-generated)</label><input type="text" value={formData.productId} readOnly className="w-full px-4 py-3 border border-[#e2e8f0] rounded-xl text-sm bg-gray-50 text-gray-500 cursor-not-allowed" /></div>
<div><label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Product Name *</label><input required type="text" value={formData.name} onChange={(e) => setFormData({ ...formData, name: e.target.value })} className="w-full px-4 py-3 border border-[#e2e8f0] rounded-xl text-sm font-semibold" /></div> <div><label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Product Name *</label><input required type="text" value={formData.name} onChange={(e) => setFormData({ ...formData, name: e.target.value })} className="w-full px-4 py-3 border border-[#e2e8f0] rounded-xl text-sm font-semibold" /></div>
<div> <div>
<label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Category</label> <label className="block text-[11px] uppercase font-bold text-[#64748b] mb-1.5">Category</label>