aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/MapBox/GeocoderControl.tsx
blob: e118c57d965de4f6dba5819c65b115910e2eac4c (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// import React from 'react';
// import MapboxGeocoder , { GeocoderOptions} from '@mapbox/mapbox-gl-geocoder'
// import { ControlPosition, MarkerProps, useControl } from "react-map-gl";

// import '@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css'
// export type GeocoderControlProps = Omit<GeocoderOptions, 'accessToken' | 'mapboxgl' | 'marker'> & {
//     mapboxAccessToken: string;
//     marker?: Omit<MarkerProps, 'longitude' | 'latitude'>;
//     position: ControlPosition;

//     onLoading: (...args: any[]) => void;
//     onResults: (...args: any[]) => void;
//     onResult: (...args: any[]) => void;
//     onError: (...args: any[]) => void;
// }

// export const GeocoderControl = (props: GeocoderControlProps) => {

//     console.log(props);

//     const geocoder = useControl<MapboxGeocoder>(
//         () => {
//           const ctrl = new MapboxGeocoder({
//             ...props,
//             marker: false,
//             accessToken: props.mapboxAccessToken
//           });
//           ctrl.on('loading', props.onLoading);
//           ctrl.on('results', props.onResults);
//           ctrl.on('result', evt => {
//             props.onResult(evt);
//             // const {result} = evt;
//             // const location =
//             //   result &&
//             //   (result.center || (result.geometry?.type === 'Point' && result.geometry.coordinates));
//             // if (location && props.marker) {
//             //   setMarker(<Marker {...props.marker} longitude={location[0]} latitude={location[1]} />);
//             // } else {
//             //   setMarker(null);
//             // }
//           });
//           ctrl.on('error', props.onError);
//           return ctrl;
//         },
//         {
//           position: props.position
//         }
//       );
//     // @ts-ignore (TS2339) private member
//     if (geocoder._map) {
//         if (geocoder.getProximity() !== props.proximity && props.proximity !== undefined) {
//             geocoder.setProximity(props.proximity);
//         }
//         if (geocoder.getRenderFunction() !== props.render && props.render !== undefined) {
//             geocoder.setRenderFunction(props.render);
//         }
//         if (geocoder.getLanguage() !== props.language && props.language !== undefined) {
//             geocoder.setLanguage(props.language);
//         }
//         if (geocoder.getZoom() !== props.zoom && props.zoom !== undefined) {
//             geocoder.setZoom(props.zoom);
//         }
//         if (geocoder.getFlyTo() !== props.flyTo && props.flyTo !== undefined) {
//             geocoder.setFlyTo(props.flyTo);
//         }
//         if (geocoder.getPlaceholder() !== props.placeholder && props.placeholder !== undefined) {
//             geocoder.setPlaceholder(props.placeholder);
//         }
//         if (geocoder.getCountries() !== props.countries && props.countries !== undefined) {
//             geocoder.setCountries(props.countries);
//         }
//         if (geocoder.getTypes() !== props.types && props.types !== undefined) {
//             geocoder.setTypes(props.types);
//         }
//         if (geocoder.getMinLength() !== props.minLength && props.minLength !== undefined) {
//             geocoder.setMinLength(props.minLength);
//         }
//         if (geocoder.getLimit() !== props.limit && props.limit !== undefined) {
//             geocoder.setLimit(props.limit);
//         }
//         if (geocoder.getFilter() !== props.filter && props.filter !== undefined) {
//             geocoder.setFilter(props.filter);
//         }
//         if (geocoder.getOrigin() !== props.origin && props.origin !== undefined) {
//             geocoder.setOrigin(props.origin);
//         }
//     }
//     return (
//         <div>
//             Geocoder
//         </div>
//     )
// }

// const noop = () => {};

// GeocoderControl.defaultProps = {
//   marker: true,
//   onLoading: noop,
//   onResults: noop,
//   onError: noop
// };