added validations for product
This commit is contained in:
parent
639d5f0d76
commit
399672bb57
@ -76,6 +76,7 @@ const PASSWORD_POLICY = {
|
||||
};
|
||||
|
||||
const MAX_PASSWORD_HISTORY = 5;
|
||||
const MAX_PRODUCTS = 15;
|
||||
|
||||
const validatePasswordComplexity = (password) => {
|
||||
if (!password) return '';
|
||||
@ -1356,7 +1357,12 @@ const CompanyProfile = () => {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => handleAddProduct(product)}
|
||||
className="text-[#92722A] hover:text-[#7A5F1E] text-sm font-medium"
|
||||
disabled={selectedProducts.length >= MAX_PRODUCTS}
|
||||
className={`text-sm font-medium ${
|
||||
selectedProducts.length >= MAX_PRODUCTS
|
||||
? 'text-gray-400 cursor-not-allowed'
|
||||
: 'text-[#92722A] hover:text-[#7A5F1E]'
|
||||
}`}
|
||||
>
|
||||
Add
|
||||
</button>
|
||||
@ -1386,13 +1392,24 @@ const CompanyProfile = () => {
|
||||
<h5 className="text-sm font-medium text-[#111827]">Selected Products</h5>
|
||||
|
||||
{selectedProducts.length > 0 && (
|
||||
<span className="bg-[#FEF3C7] text-[#92400E] text-xs font-medium px-2 py-0.5 rounded-full">
|
||||
{selectedProducts.length} selected
|
||||
<span className={`text-xs font-medium px-2 py-0.5 rounded-full ${
|
||||
selectedProducts.length >= MAX_PRODUCTS
|
||||
? 'bg-red-100 text-red-800'
|
||||
: 'bg-[#FEF3C7] text-[#92400E]'
|
||||
}`}>
|
||||
{selectedProducts.length}/{MAX_PRODUCTS} selected
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="p-4">
|
||||
{selectedProducts.length >= MAX_PRODUCTS && (
|
||||
<div className="mb-3 p-2 bg-red-50 border border-red-200 rounded-md">
|
||||
<p className="text-xs text-red-800">
|
||||
Maximum limit of {MAX_PRODUCTS} products reached. Remove a product to add another.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{selectedProducts.length > 0 ? (
|
||||
<ul className="divide-y divide-[#E5E7EB] max-h-96 overflow-y-auto">
|
||||
@ -1551,12 +1568,19 @@ const CompanyProfile = () => {
|
||||
setProductError('');
|
||||
setSaveError('');
|
||||
|
||||
// Check if adding this product would exceed the maximum limit
|
||||
if (selectedProducts.length >= MAX_PRODUCTS) {
|
||||
setProductError(`You can only select up to ${MAX_PRODUCTS} products. Please remove a product before adding another.`);
|
||||
showToast('error', `Maximum ${MAX_PRODUCTS} products allowed`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Enhanced product formatting to ensure all required fields
|
||||
const enhancedProduct = {
|
||||
id: product.id || product.product_id || 0,
|
||||
product_id: product.product_id || product.id || 0,
|
||||
hs_code: product.hs_code || product.hsCode || '',
|
||||
hsCode: product.hsCode || product.hs_code || '',
|
||||
hsCode: product.productName || product.hs_code || '',
|
||||
product_name: product.product_name || product.productName || product.label || '',
|
||||
productName: product.productName || product.product_name || product.label || '',
|
||||
label: product.label || `${product.product_name || product.productName || 'Unnamed Product'}${(product.hs_code || product.hsCode) ? ` (${product.hs_code || product.hsCode})` : ''}`,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user