useEffect()
для изменения стейта task
на основе приходящего id
, в то время как первый useEffect()
остается отвечать за центрирование карты на основе имеющегося task
:const [zoom, setZoom] = useState(14);
const [task, selectTask] = useState(undefined);
const mapView = useRef(null);
useEffect(() => {
if (task) {
if (mapView.current) {
mapView.current?.animateCamera(
{
center: task.latlng,
zoom: 15,
},
1000,
);
}
}
}, [task]);
useEffect(() => {
if (route.params?.taskId) {
// @ts-ignore
selectTask(tasks.find((t) => t.id === route.params.taskId));
}
}, [route.params]);
return (
<View style={styles.container}>
<MapView
ref={mapView}
style={styles.map}
minZoomLevel={zoom}
maxZoomLevel={zoom}
showsCompass={false}
initialRegion={region}
onPress={() => selectTask(undefined)}>
{tasks.map((task) => (
<Marker
coordinate={task.latlng}
title=""
key={task.id}
// @ts-ignore
onPress={() => selectTask(task)}>
<TaskMarker
category={task.category}
price={task.price}
isResolved={task.isResolved}
reworkings={task.reworkings}
/>
</Marker>
))}
</MapView>
</View>
);
};
<div class="img-wrap">
<img src="https://i.imgur.com/1UFBLw8.png" alt="">
</div>
<svg width="0" height="0">
<defs>
<clipPath id="myClip">
<circle cx="48" cy="48" r="48"/>
<polygon points="48,96 70,77 98,96" />
</clipPath>
</defs>
</svg>
.img-wrap {
width: 98px;
height: 98px;
clip-path: url(#myClip);
}
let propIdsToHideBlocks = ['10', '13', '15'],
customerFields = $('.form-group').toArray();
$.each(customerFields, function(index, field) {
var idRow = $(field).attr('data-property-id-row');
if (~propIdsToHideBlocks.indexOf(idRow)) {
$(field).hide();
}
});
if (propIdsToHideBlocks.includes(idRow)) {
$(field).hide();
}
let elems = document.body.getElementsByTagName("*"); // получаем все элементы страницы в виде HTMLCollection
for (let item of elems) { // обходим коллекцию элементов
if (item.style.display === "none") { // если значение свойства display равно "none"
item.style.display = "block"; // меняем значение свойства display на"block"
}
}
$('.x').dblclick(function() {
alert('dbclick');
});
window.onload = function(){
if($(window).width() >= 992) {
$('.main-banner__video').html('<video src="/video/Nikola_v6_for _site_1_1.mp4" width="100%" type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\' autoplay loop muted></video>')
}
}