JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://api-maps.yandex.ru/2.1/?lang=ru&quot; type=&quot;text/javascript"></script>
<div id="map" style="width: 100%; height: 400px"></div>

JavaScript

var route, ch = 1;
var markers = [];
var point = [];

function init() {
    var myMap = new ymaps.Map('map', {
            center: [59.938, 30.313],
            zoom: 9,
            type: 'yandex#map',
            behaviors: ['scrollZoom', 'drag'],
            controls: []
        }),
        searchStartPoint = new ymaps.control.SearchControl({
            options: {
                useMapBounds: true,
                noPlacemark: true,
                noPopup: true,
                placeholderContent: 'start',
                size: 'large'
            }
        }),
        calculator = new DeliveryCalculator(myMap, myMap.getCenter());

    myMap.controls.add(searchStartPoint);
    searchStartPoint.events
        .add('resultselect', function(e) {
            var results = searchStartPoint.getResultsArray(),
                selected = e.get('index'),
                point = results[selected].geometry.getCoordinates();

            calculator.setStartPoint(point);
        })
        .add('load', function(event) {
            // По полю skip определяем, что это не дозагрузка данных.
            // По getRusultsCount определяем, что есть хотя бы 1 результат.
            if (!event.get('skip') && searchStartPoint.getResultsCount()) {
                searchStartPoint.showResult(0);
            }
        });
}

function DeliveryCalculator(map, finish) {
    this._map = map;
    this._start = null;
    this._route = null;
    map.events.add('click', this._onClick, this);
}

var ptp = DeliveryCalculator.prototype;

ptp._onClick = function(e) {
    if (this._start) {
        this.setFinishPoint(e.get('coords'));
    } else {
        //this.setStartPoint(e.get('coords'));
    }
};

ptp._onDragEnd = function(e) {
    this.getDirection();
}

ptp.getDirection = function() {
    if (this._route) {
        this._map.geoObjects.remove(this._route);
    }
    if (this._start && this._finish) {
        var self = this,
            start = this._start.geometry.getCoordinates(),
   ...