update goods

This commit is contained in:
Kirill
2026-05-15 12:50:39 +05:00
parent c5634deb51
commit 89d605adf4
21 changed files with 1594 additions and 306 deletions
@@ -5,7 +5,6 @@ export type UseProductFiltersResult = ReturnType<typeof useProductFilters>
export function useProductFilters() {
const [categorySlug, setCategorySlug] = useState<string>('')
const [availability, setAvailability] = useState<'all' | 'in_stock' | 'made_to_order'>('all')
const [qInput, setQInput] = useState('')
const [q, setQ] = useState('')
const [moreOpen, setMoreOpen] = useState(false)
@@ -45,13 +44,6 @@ export function useProductFilters() {
}
}
const handleAvailabilityChange = (v: string) => {
if (v === 'all' || v === 'in_stock' || v === 'made_to_order') {
setAvailability(v)
setPage(1)
}
}
const handlePriceMinChange = (v: string) => {
setPriceMinRub(v)
setPage(1)
@@ -68,7 +60,6 @@ export function useProductFilters() {
const resetFilters = () => {
setCategorySlug('')
setAvailability('all')
setQInput('')
setSort('')
setPriceMinRub('')
@@ -85,7 +76,6 @@ export function useProductFilters() {
return {
categorySlug,
availability,
qInput,
q,
moreOpen,
@@ -101,7 +91,6 @@ export function useProductFilters() {
handleCategoryChange,
handleSortChange,
handlePageSizeChange,
handleAvailabilityChange,
handlePriceMinChange,
handlePriceMaxChange,
handleCardScaleChange,
+1 -5
View File
@@ -33,7 +33,6 @@ export function HomePage() {
'public',
{
categorySlug: filters.categorySlug || 'all',
availability: filters.availability,
q: filters.q,
sort: filters.sort,
page: filters.page,
@@ -45,7 +44,6 @@ export function HomePage() {
queryFn: () =>
fetchPublicProducts({
categorySlug: filters.categorySlug || undefined,
availability: filters.availability === 'all' ? undefined : filters.availability,
q: filters.q || undefined,
sort: filters.sort || '',
page: filters.page,
@@ -117,9 +115,7 @@ export function HomePage() {
<ProductCard
product={p}
mediaHeight={mediaHeight}
actions={
!isAdmin && !(p.inStock && p.quantity === 0) ? <ToggleCartIcon productId={p.id} /> : undefined
}
actions={!isAdmin && p.quantity > 0 ? <ToggleCartIcon productId={p.id} /> : undefined}
/>
</Grid>
))}
+2 -28
View File
@@ -26,7 +26,6 @@ type Props = UseProductFiltersResult & {
export function ProductFilters({
categorySlug,
availability,
qInput,
moreOpen,
sort,
@@ -41,19 +40,14 @@ export function ProductFilters({
handleCategoryChange,
handleSortChange,
handlePageSizeChange,
handleAvailabilityChange,
handlePriceMinChange,
handlePriceMaxChange,
handleCardScaleChange,
resetFilters,
}: Props) {
const categoriesForFilter = useMemo(() => {
const list = categories ?? []
return [...list].sort((a, b) => {
if (a.slug === 'ne-ukazano') return 1
if (b.slug === 'ne-ukazano') return -1
return a.sort - b.sort || a.name.localeCompare(b.name, 'ru')
})
const list = (categories ?? []).filter((c) => c.slug !== 'ne-ukazano')
return [...list].sort((a, b) => a.sort - b.sort || a.name.localeCompare(b.name, 'ru'))
}, [categories])
return (
@@ -124,26 +118,6 @@ export function ProductFilters({
))}
</Box>
</Box>
<ToggleButtonGroup
exclusive
size="small"
value={availability}
onChange={(_, v) => handleAvailabilityChange(v)}
sx={{
alignSelf: { xs: 'flex-start', sm: 'auto' },
'& .MuiToggleButton-root': { px: 1.5, fontWeight: 600, textTransform: 'none' },
'& .MuiToggleButton-root.Mui-selected': {
bgcolor: 'primary.main',
color: 'primary.contrastText',
'&:hover': { bgcolor: 'primary.dark' },
},
}}
>
<ToggleButton value="all">Все</ToggleButton>
<ToggleButton value="in_stock">В наличии</ToggleButton>
<ToggleButton value="made_to_order">Под заказ</ToggleButton>
</ToggleButtonGroup>
</Paper>
<Stack