@exterio/react-native-yamap-lite 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -96,63 +96,6 @@ AppRegistry.registerComponent(appName, () => App);
96
96
  > ℹ️ Android-зависимость MapKit (`com.yandex.android:maps.mobile`) уже входит в
97
97
  > библиотеку — добавлять её в `android/app/build.gradle` вручную не нужно.
98
98
 
99
- ## Миграция с react-native-yamap
100
-
101
- Это **не форк** [`react-native-yamap`](https://github.com/volga-volga/react-native-yamap) (volga-volga) — нативная часть написана с нуля на Swift и Kotlin под Fabric. Но публичный JS-API я старался держать максимально совместимым, чтобы переезд был как можно ближе к «поменять импорт». Для большинства проектов, использующих карту, маркеры и оверлеи, миграция сводится к нескольким правкам.
102
-
103
- ### Что совместимо
104
-
105
- Компоненты и их основные пропсы совпадают по именам и форме данных:
106
-
107
- | Сущность | react-native-yamap | react-native-yamap-lite |
108
- |--|--|--|
109
- | Карта | `YaMap` (default + named) | ✅ так же |
110
- | Примитивы | `Marker`, `Circle`, `Polygon`, `Polyline` | ✅ так же |
111
- | Кластеры | `ClusteredYamap` | ✅ так же |
112
- | Координата | `{ lat, lon }` (`Point`) | ✅ так же |
113
- | Управление камерой | `setCenter`, `setZoom`, `fitAllMarkers` (через `ref`) | ✅ так же |
114
-
115
- ```diff
116
- - import YaMap, { Marker, Circle } from 'react-native-yamap';
117
- + import YaMap, { Marker, Circle } from '@exterio/react-native-yamap-lite';
118
- ```
119
-
120
- ### Что изменилось
121
-
122
- - **Инициализация.** Вместо статического `YaMap.init(apiKey)` / `YaMap.setLocale(...)` используйте модуль `YamapUtils`:
123
-
124
- ```diff
125
- - import YaMap from 'react-native-yamap';
126
- - YaMap.init('YOUR_API_KEY');
127
- - YaMap.setLocale('ru_RU');
128
- + import { YamapUtils } from '@exterio/react-native-yamap-lite';
129
- + await YamapUtils.init('YOUR_API_KEY');
130
- + YamapUtils.setLocale('ru_RU');
131
- ```
132
-
133
- - **`getCameraPosition` возвращает `Promise`**, а не принимает колбэк:
134
-
135
- ```diff
136
- - mapRef.current.getCameraPosition((pos) => console.log(pos));
137
- + const pos = await mapRef.current.getCameraPosition();
138
- ```
139
-
140
- Аналогично промисы возвращают `getVisibleRegion`, `getScreenPoints`, `getWorldPoints`. Для совместимости со старым событийным стилем оставлены колбэк-пропсы `onCameraPositionReceived`, `onVisibleRegionReceived`, `onWorldToScreenPointsReceived`, `onScreenToWorldPointsReceived`.
141
-
142
- - **Только новая архитектура.** Библиотека работает исключительно на Fabric + TurboModules. Если проект ещё на старой архитектуре — нужно сначала включить New Architecture.
143
-
144
- ### Чего нет (ограничения lite SDK)
145
-
146
- Библиотека построена на **MapKit Lite**, поэтому всё, что связано с сетевыми сервисами Яндекса, в неё не входит:
147
-
148
- - ❌ **Маршруты** (`findRoutes` / `findMasstransitRoutes` / `findDrivingRoutes` и компоненты маршрутов)
149
- - ❌ **Геокодер, поиск и подсказки** (`Suggest`, поиск по адресу)
150
- - ❌ **Слой пробок** — `setTrafficVisible(visible)` оставлен как no-op для совместимости
151
- - ⚠️ **`fitMarkers(markers)`** — это алиас для `fitAllMarkers()`: lite SDK не умеет нацеливаться на конкретные маркеры
152
- - ⚠️ **`marker.animatedMoveTo()` / `animatedRotateTo()`** не поддерживаются — обновляйте проп `point` маркера вместо императивной анимации
153
-
154
- Если проект использует маршрутизацию, геокодер или поиск — этот пакет их не заменит, тут нужен полноценный `react-native-yamap`.
155
-
156
99
  ## Использование
157
100
 
158
101
  ### Базовый пример
@@ -9,13 +9,13 @@ import com.yandex.mapkit.map.CameraUpdateReason
9
9
  class CameraPositionChangeEvent(
10
10
  surfaceId: Int,
11
11
  viewTag: Int,
12
- private val eventName: String,
12
+ private val name: String,
13
13
  private val cameraPosition: CameraPosition,
14
14
  private val reason: CameraUpdateReason,
15
15
  private val finished: Boolean,
16
16
  ) : Event<CameraPositionChangeEvent>(surfaceId, viewTag) {
17
17
 
18
- override fun getEventName(): String = eventName
18
+ override fun getEventName(): String = name
19
19
 
20
20
  override fun getEventData(): WritableMap =
21
21
  Arguments.createMap().apply {
@@ -8,11 +8,11 @@ import com.yandex.mapkit.geometry.Point
8
8
  class PressEvent(
9
9
  surfaceId: Int,
10
10
  viewTag: Int,
11
- private val eventName: String,
11
+ private val name: String,
12
12
  private val point: Point,
13
13
  ) : Event<PressEvent>(surfaceId, viewTag) {
14
14
 
15
- override fun getEventName(): String = eventName
15
+ override fun getEventName(): String = name
16
16
 
17
17
  override fun getEventData(): WritableMap =
18
18
  Arguments.createMap().apply {
@@ -17,7 +17,11 @@
17
17
  #import <react/renderer/components/YamapLiteViewSpec/RCTComponentViewHelpers.h>
18
18
 
19
19
  #import "RCTFabricComponentsPlugins.h"
20
+ #if __has_include("YamapLite/YamapLite-Swift.h")
21
+ #import "YamapLite/YamapLite-Swift.h"
22
+ #else
20
23
  #import "YamapLite-Swift.h"
24
+ #endif
21
25
  #import <YandexMapsMobile/YMKMapKitFactory.h>
22
26
 
23
27
  using namespace facebook::react;
@@ -13,7 +13,11 @@
13
13
  #import <react/renderer/graphics/Color.h>
14
14
 
15
15
  #import "RCTFabricComponentsPlugins.h"
16
+ #if __has_include("YamapLite/YamapLite-Swift.h")
17
+ #import "YamapLite/YamapLite-Swift.h"
18
+ #else
16
19
  #import "YamapLite-Swift.h"
20
+ #endif
17
21
 
18
22
  using namespace facebook::react;
19
23
 
@@ -8,7 +8,11 @@
8
8
  #import <React/RCTConversions.h>
9
9
 
10
10
  #import "RCTFabricComponentsPlugins.h"
11
+ #if __has_include("YamapLite/YamapLite-Swift.h")
12
+ #import "YamapLite/YamapLite-Swift.h"
13
+ #else
11
14
  #import "YamapLite-Swift.h"
15
+ #endif
12
16
  #import <react/renderer/components/YamapLiteViewSpec/ComponentDescriptors.h>
13
17
  #import <react/renderer/components/YamapLiteViewSpec/EventEmitters.h>
14
18
  #import <react/renderer/components/YamapLiteViewSpec/Props.h>
@@ -14,7 +14,11 @@
14
14
 
15
15
  #import "RCTFabricComponentsPlugins.h"
16
16
  #import "Utils/PointsEqual.h"
17
+ #if __has_include("YamapLite/YamapLite-Swift.h")
18
+ #import "YamapLite/YamapLite-Swift.h"
19
+ #else
17
20
  #import "YamapLite-Swift.h"
21
+ #endif
18
22
  #import <YandexMapsMobile/YMKMapKitFactory.h>
19
23
 
20
24
  using namespace facebook::react;
@@ -14,7 +14,11 @@
14
14
 
15
15
  #import "RCTFabricComponentsPlugins.h"
16
16
  #import "Utils/PointsEqual.h"
17
+ #if __has_include("YamapLite/YamapLite-Swift.h")
18
+ #import "YamapLite/YamapLite-Swift.h"
19
+ #else
17
20
  #import "YamapLite-Swift.h"
21
+ #endif
18
22
  #import <YandexMapsMobile/YMKMapKitFactory.h>
19
23
 
20
24
  using namespace facebook::react;
@@ -17,7 +17,11 @@
17
17
  #import <react/renderer/components/YamapLiteViewSpec/RCTComponentViewHelpers.h>
18
18
 
19
19
  #import "RCTFabricComponentsPlugins.h"
20
+ #if __has_include("YamapLite/YamapLite-Swift.h")
21
+ #import "YamapLite/YamapLite-Swift.h"
22
+ #else
20
23
  #import "YamapLite-Swift.h"
24
+ #endif
21
25
 
22
26
  using namespace facebook::react;
23
27
 
package/ios/YamapUtils.mm CHANGED
@@ -8,7 +8,11 @@
8
8
  #import <React/RCTBridge.h>
9
9
  #import <React/RCTUIManager.h>
10
10
 
11
+ #if __has_include("YamapLite/YamapLite-Swift.h")
12
+ #import "YamapLite/YamapLite-Swift.h"
13
+ #else
11
14
  #import "YamapLite-Swift.h"
15
+ #endif
12
16
  #import <YandexMapsMobile/YMKMapKitFactory.h>
13
17
  #import <YandexMapsMobile/YRTI18nManager.h>
14
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exterio/react-native-yamap-lite",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "A lightweight wrapper for the Yandex MapKit SDK",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -1 +0,0 @@
1
- rootProject.name = 'react-native-yamap-lite'