diff --git a/resources/css/investment-catalogue.css b/resources/css/investment-catalogue.css index 38de9add..95266212 100644 --- a/resources/css/investment-catalogue.css +++ b/resources/css/investment-catalogue.css @@ -54,9 +54,26 @@ .catalogue-filters-heading { display: none; } -#catalogue-filter-fields { +#catalogue-filter-fields, +.catalogue-service-fields { padding: 0 1.15rem 1.15rem; } + +.catalogue-service-fields label { + min-width: 0; + font-size: 0.875rem; + font-weight: 600; +} +.catalogue-service-fields label input:not([type='checkbox']), +.catalogue-service-fields label select { + margin-top: 0.35rem; + font-weight: 400; +} +.catalogue-service-fields .catalogue-filter-submit > button { + display: inline-flex; + align-items: center; + justify-content: center; +} .catalogue-filters input:not([type='checkbox']), .catalogue-filters select { min-height: 44px; diff --git a/resources/js/pages/portal/services.tsx b/resources/js/pages/portal/services.tsx index 452d2e9f..56eec953 100644 --- a/resources/js/pages/portal/services.tsx +++ b/resources/js/pages/portal/services.tsx @@ -6,7 +6,9 @@ import { type PublicDocument, } from '@/components/public-document-content'; import { Head, Link, useForm, usePage } from '@inertiajs/react'; -import { useState } from 'react'; +import { useId, useState, type FormEvent, type ReactNode } from 'react'; +import { ChevronDown, Search, SlidersHorizontal } from 'lucide-react'; +import '../../../css/investment-catalogue.css'; import { PortalMenu } from '@/components/portal-menu'; import { newSubmissionKey } from '@/lib/portal-api'; import { ProvinceSelect } from '@/components/investment-territory'; @@ -125,6 +127,68 @@ const states: Record = { published: 'Publicado', withdrawn: 'Retirado', }; +function ServiceFilters({ + children, + onSubmit, + clearUrl, + onClear, + activeCount, +}: { + children: ReactNode; + onSubmit: (event: FormEvent) => void; + clearUrl: string; + onClear: () => void; + activeCount: number; +}) { + const [expanded, setExpanded] = useState(true); + const fieldsId = useId(); + return ( +
+ +

+

+
+
+ {children} +
+
+ + + Limpar filtros + +
+
+
+ ); +} + function Pagination({ page }: { page: Page }) { return (