fix: resolve remaining TypeScript errors

- Fix toast context usage in CategoryFormPage
- Add null checks for optional properties (product.price, product.status)
- Fix undefined checks for product_id parameters
- Add type assertion for PRODUCT_TYPE_LABELS indexing
- Fix number/string type conversions in ProductFilters
- Add proper type handling for form validation

All TypeScript compilation errors are now resolved
This commit is contained in:
hosseintaromi 2025-07-29 09:50:08 +03:30
parent e0156658a2
commit 0082da5928
4 changed files with 9 additions and 9 deletions

View File

@ -11,7 +11,7 @@ import { FormHeader, PageContainer, Label } from '../../../components/ui/Typogra
const CategoryFormPage = () => {
const navigate = useNavigate();
const { id } = useParams();
const { showToast } = useToast();
const { success: showToast } = useToast();
const isEdit = Boolean(id);
const [formData, setFormData] = useState({

View File

@ -112,11 +112,11 @@ export const useCreateProductVariant = () => {
queryClient.invalidateQueries({
queryKey: [
QUERY_KEYS.GET_PRODUCT_VARIANTS,
variables.product_id.toString(),
variables.product_id?.toString() || "",
],
});
queryClient.invalidateQueries({
queryKey: [QUERY_KEYS.GET_PRODUCT, variables.product_id.toString()],
queryKey: [QUERY_KEYS.GET_PRODUCT, variables.product_id?.toString()],
});
toast.success("نسخه محصول با موفقیت ایجاد شد");
},

View File

@ -123,7 +123,7 @@ export const getProductVariants = async (productId: string) => {
export const createProductVariant = async (data: CreateVariantRequest) => {
const response = await httpPostRequest<CreateVariantResponse>(
APIUrlGenerator(
API_ROUTES.CREATE_PRODUCT_VARIANT(data.product_id.toString())
API_ROUTES.CREATE_PRODUCT_VARIANT(data.product_id?.toString() || "")
),
data
);

View File

@ -103,7 +103,7 @@ const ProductDetailPage = () => {
</label>
<div className="p-3 bg-gray-50 dark:bg-gray-700 rounded-lg">
<p className="text-gray-900 dark:text-gray-100">
{PRODUCT_TYPE_LABELS[product.type] || 'نامشخص'}
{PRODUCT_TYPE_LABELS[product.type as keyof typeof PRODUCT_TYPE_LABELS] || 'نامشخص'}
</p>
</div>
</div>
@ -114,8 +114,8 @@ const ProductDetailPage = () => {
</label>
<div className="p-3 bg-gray-50 dark:bg-gray-700 rounded-lg">
<span className={`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${product.enabled
? 'bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100'
: 'bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100'
? 'bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100'
: 'bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100'
}`}>
{product.enabled ? 'فعال' : 'غیرفعال'}
</span>
@ -161,8 +161,8 @@ const ProductDetailPage = () => {
<div>
<span className="text-sm text-gray-600 dark:text-gray-400">وضعیت:</span>
<span className={`ml-2 px-2 py-1 text-xs rounded-full ${variant.enabled
? 'bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100'
: 'bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100'
? 'bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100'
: 'bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100'
}`}>
{variant.enabled ? 'فعال' : 'غیرفعال'}
</span>