File tree Expand file tree Collapse file tree 3 files changed +14
-2
lines changed Expand file tree Collapse file tree 3 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -33,16 +33,18 @@ interface PropertyDetailSectionProps {
33
33
featuresInView : MapboxGeoJSONFeature [ ] ;
34
34
display : "detail" | "list" ;
35
35
loading : boolean ;
36
+ selectedProperty : MapboxGeoJSONFeature | null ;
37
+ setSelectedProperty : ( property : MapboxGeoJSONFeature | null ) => void ;
36
38
}
37
39
38
40
const PropertyDetailSection : FC < PropertyDetailSectionProps > = ( {
39
41
featuresInView,
40
42
display,
41
43
loading,
44
+ selectedProperty,
45
+ setSelectedProperty,
42
46
} ) => {
43
47
const [ page , setPage ] = useState ( 1 ) ;
44
- const [ selectedProperty , setSelectedProperty ] =
45
- useState < MapboxGeoJSONFeature | null > ( null ) ;
46
48
47
49
const rowsPerPage = 6 ;
48
50
const pages = Math . ceil ( featuresInView . length / rowsPerPage ) ;
Original file line number Diff line number Diff line change @@ -24,6 +24,8 @@ import Map, {
24
24
AttributionControl ,
25
25
} from "react-map-gl" ;
26
26
import { FillLayer , VectorSourceRaw } from "react-map-gl" ;
27
+ import { MapboxGeoJSONFeature } from "mapbox-gl" ;
28
+
27
29
import MapboxGeocoder from "@mapbox/mapbox-gl-geocoder" ;
28
30
import "@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css" ;
29
31
@@ -70,10 +72,12 @@ const MapControls = () => (
70
72
interface PropertyMapProps {
71
73
setFeaturesInView : Dispatch < SetStateAction < any [ ] > > ;
72
74
setLoading : Dispatch < SetStateAction < boolean > > ;
75
+ setSelectedProperty : ( property : MapboxGeoJSONFeature | null ) => void ;
73
76
}
74
77
const PropertyMap : React . FC < PropertyMapProps > = ( {
75
78
setFeaturesInView,
76
79
setLoading,
80
+ setSelectedProperty,
77
81
} : any ) => {
78
82
const { filter } = useFilter ( ) ;
79
83
const [ popupInfo , setPopupInfo ] = useState < any | null > ( null ) ;
@@ -115,6 +119,7 @@ const PropertyMap: React.FC<PropertyMapProps> = ({
115
119
} ) ;
116
120
117
121
if ( features . length > 0 ) {
122
+ setSelectedProperty ( features [ 0 ] ) ;
118
123
setPopupInfo ( {
119
124
longitude : event . lngLat . lng ,
120
125
latitude : event . lngLat . lat ,
Original file line number Diff line number Diff line change @@ -11,13 +11,15 @@ import {
11
11
SidePanelControlBar ,
12
12
FilterView ,
13
13
} from "../components" ;
14
+ import { MapboxGeoJSONFeature } from "mapbox-gl" ;
14
15
15
16
export type BarClickOptions = "filter" | "download" | "detail" | "list" ;
16
17
17
18
const Page : FC = ( ) => {
18
19
const [ featuresInView , setFeaturesInView ] = useState < any [ ] > ( [ ] ) ;
19
20
const [ currentView , setCurrentView ] = useState < BarClickOptions > ( "detail" ) ;
20
21
const [ loading , setLoading ] = useState ( false ) ;
22
+ const [ selectedProperty , setSelectedProperty ] = useState < MapboxGeoJSONFeature | null > ( null ) ;
21
23
22
24
return (
23
25
< FilterProvider >
@@ -29,6 +31,7 @@ const Page: FC = () => {
29
31
< PropertyMap
30
32
setFeaturesInView = { setFeaturesInView }
31
33
setLoading = { setLoading }
34
+ setSelectedProperty = { setSelectedProperty }
32
35
/>
33
36
</ div >
34
37
< SidePanel >
@@ -42,6 +45,8 @@ const Page: FC = () => {
42
45
featuresInView = { featuresInView }
43
46
display = { currentView as "detail" | "list" }
44
47
loading = { loading }
48
+ selectedProperty = { selectedProperty }
49
+ setSelectedProperty = { setSelectedProperty }
45
50
/>
46
51
) }
47
52
{ currentView === "download" && (
You can’t perform that action at this time.
0 commit comments