Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 47x 47x 47x 47x 4x 4x 4x 1x 1x 3x 1x 1x 2x 1x 1x 2x | import { useCartStore } from '../stores/useCartStore'; import { useCustomSnackbar } from './useCustomSnackbar'; import { useTranslation } from 'react-i18next'; export function useAddToCart() { const addItem = useCartStore.getState().addItem; const { notify } = useCustomSnackbar(); const { t } = useTranslation('cart'); return async (id: string, desiredQty: number, availableQty: number): Promise<boolean> => { try { const isLocked = useCartStore.getState().isLocked; if (isLocked) { notify(t('errors.cart_locked'), 'warning'); return false; } await addItem(id, desiredQty, availableQty); notify(t('cart.add_success'), 'success'); return true; } catch (err: any) { if (err.message.includes('exceeds')) { notify(t('cart.not_enough_stock', { count: availableQty }), 'warning'); } else { notify(t('errors.error_update'), 'error'); } return false; } }; } |