@javascriptcommon/react-native-carplay 2.4.5 → 2.4.8
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 +633 -0
- package/ios/RNCarPlay.h +1 -0
- package/ios/RNCarPlay.m +576 -121
- package/lib/templates/ListTemplate.d.ts +16 -0
- package/lib/templates/ListTemplate.d.ts.map +1 -1
- package/lib/templates/ListTemplate.js +5 -0
- package/lib/templates/Template.d.ts.map +1 -1
- package/lib/templates/Template.js +0 -4
- package/package.json +1 -1
- package/src/templates/ListTemplate.ts +24 -0
- package/src/templates/Template.ts +0 -4
|
@@ -66,6 +66,22 @@ export interface ListTemplateConfig extends TemplateConfig {
|
|
|
66
66
|
* Fired when the back button is pressed
|
|
67
67
|
*/
|
|
68
68
|
onBackButtonPressed?(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Fired when user scrolls close to the bottom of the list.
|
|
71
|
+
* Useful for implementing infinite scroll / pagination.
|
|
72
|
+
* @param e Object with remainingItems count
|
|
73
|
+
* @namespace iOS
|
|
74
|
+
*/
|
|
75
|
+
onScrollToBottom?(e: {
|
|
76
|
+
templateId: string;
|
|
77
|
+
remainingItems: number;
|
|
78
|
+
}): void;
|
|
79
|
+
/**
|
|
80
|
+
* Number of items from the bottom that triggers onScrollToBottom callback.
|
|
81
|
+
* @default 5
|
|
82
|
+
* @namespace iOS
|
|
83
|
+
*/
|
|
84
|
+
scrollBottomThreshold?: number;
|
|
69
85
|
/**
|
|
70
86
|
* Option to hide back button
|
|
71
87
|
* @default false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/ListTemplate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC;;;;;;;;;;OAUG;IACH,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC;;;;;OAKG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,IAAI,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,IAAI,IAAI,CAAC;IAE7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;QACzC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;KACnC,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrE;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IAWzC,MAAM,EAAE,kBAAkB;IAV7C,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAI,QAAQ;;MAIX;gBAEkB,MAAM,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"ListTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/ListTemplate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC;;;;;;;;;;OAUG;IACH,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC;;;;;OAKG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,IAAI,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,IAAI,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAE3E;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;QAC3B,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;QACzC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;KACnC,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;IAC1C;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrE;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IAWzC,MAAM,EAAE,kBAAkB;IAV7C,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAI,QAAQ;;MAIX;gBAEkB,MAAM,EAAE,kBAAkB;IAoCtC,cAAc,aAAc,WAAW,EAAE,UAG9C;IAEK,sBAAsB,WAAY,cAAc,UAMrD;IAEK,uBAAuB;IAIvB,0BAA0B;IAI1B,2BAA2B;IAI3B,4BAA4B;IAI5B,mCAAmC;CAG3C"}
|
|
@@ -44,6 +44,11 @@ class ListTemplate extends Template_1.Template {
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
|
+
CarPlay_1.CarPlay.emitter.addListener('scrollToBottom', (e) => {
|
|
48
|
+
if (config.onScrollToBottom && e.templateId === this.id) {
|
|
49
|
+
config.onScrollToBottom(e);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
47
52
|
}
|
|
48
53
|
updateSections = (sections) => {
|
|
49
54
|
this.config.sections = sections;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/templates/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9C;AAED,qBAAa,QAAQ,CAAC,CAAC;IAUF,MAAM,EAAE,cAAc,GAAG,CAAC;IAT7C,IAAW,IAAI,IAAI,MAAM,CAExB;IACM,EAAE,EAAG,MAAM,CAAC;IAEnB,IAAW,QAAQ,OAElB;gBAEkB,MAAM,EAAE,cAAc,GAAG,CAAC;IAiD7C,cAAc,WAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/templates/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKpD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAEpC;;;OAGG;IACH,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9C;AAED,qBAAa,QAAQ,CAAC,CAAC;IAUF,MAAM,EAAE,cAAc,GAAG,CAAC;IAT7C,IAAW,IAAI,IAAI,MAAM,CAExB;IACM,EAAE,EAAG,MAAM,CAAC;IAEnB,IAAW,QAAQ,OAElB;gBAEkB,MAAM,EAAE,cAAc,GAAG,CAAC;IAiD7C,cAAc,WAAY,CAAC,UAEzB;IAGK,WAAW,CAAC,MAAM,EAAE,GAAG;CAsB/B"}
|
|
@@ -49,7 +49,6 @@ class Template {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
updateTemplate = (config) => {
|
|
52
|
-
console.log('LETSGO!', config, this.type);
|
|
53
52
|
CarPlay_1.CarPlay.bridge.updateTemplate(this.id, this.parseConfig({ type: this.type, ...config }));
|
|
54
53
|
};
|
|
55
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -58,14 +57,11 @@ class Template {
|
|
|
58
57
|
function traverse(obj) {
|
|
59
58
|
for (const i in obj) {
|
|
60
59
|
if (String(i).match(/[Ii]mages$/)) {
|
|
61
|
-
console.log('array parsing', i, obj[i]);
|
|
62
60
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
63
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
62
|
obj[i] = obj[i].map((asset) => resolveAssetSource(asset));
|
|
65
|
-
console.log('array parsed', i, obj[i]);
|
|
66
63
|
}
|
|
67
64
|
else if (String(i).match(/[Ii]mage$/)) {
|
|
68
|
-
console.log('single image parsing', i, obj[i]);
|
|
69
65
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
70
66
|
obj[i] = resolveAssetSource(obj[i]);
|
|
71
67
|
}
|
package/package.json
CHANGED
|
@@ -69,6 +69,21 @@ export interface ListTemplateConfig extends TemplateConfig {
|
|
|
69
69
|
*/
|
|
70
70
|
onBackButtonPressed?(): void;
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Fired when user scrolls close to the bottom of the list.
|
|
74
|
+
* Useful for implementing infinite scroll / pagination.
|
|
75
|
+
* @param e Object with remainingItems count
|
|
76
|
+
* @namespace iOS
|
|
77
|
+
*/
|
|
78
|
+
onScrollToBottom?(e: { templateId: string; remainingItems: number }): void;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Number of items from the bottom that triggers onScrollToBottom callback.
|
|
82
|
+
* @default 5
|
|
83
|
+
* @namespace iOS
|
|
84
|
+
*/
|
|
85
|
+
scrollBottomThreshold?: number;
|
|
86
|
+
|
|
72
87
|
/**
|
|
73
88
|
* Option to hide back button
|
|
74
89
|
* @default false
|
|
@@ -150,6 +165,15 @@ export class ListTemplate extends Template<ListTemplateConfig> {
|
|
|
150
165
|
}
|
|
151
166
|
},
|
|
152
167
|
);
|
|
168
|
+
|
|
169
|
+
CarPlay.emitter.addListener(
|
|
170
|
+
'scrollToBottom',
|
|
171
|
+
(e: { templateId: string; remainingItems: number }) => {
|
|
172
|
+
if (config.onScrollToBottom && e.templateId === this.id) {
|
|
173
|
+
config.onScrollToBottom(e);
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
);
|
|
153
177
|
}
|
|
154
178
|
|
|
155
179
|
public updateSections = (sections: ListSection[]) => {
|
|
@@ -139,7 +139,6 @@ export class Template<P> {
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
updateTemplate = (config: P) => {
|
|
142
|
-
console.log('LETSGO!', config, this.type);
|
|
143
142
|
CarPlay.bridge.updateTemplate(this.id, this.parseConfig({ type: this.type, ...config }));
|
|
144
143
|
};
|
|
145
144
|
|
|
@@ -149,14 +148,11 @@ export class Template<P> {
|
|
|
149
148
|
function traverse(obj: any) {
|
|
150
149
|
for (const i in obj) {
|
|
151
150
|
if (String(i).match(/[Ii]mages$/)) {
|
|
152
|
-
console.log('array parsing', i, obj[i])
|
|
153
151
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
154
152
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
155
153
|
obj[i] = obj[i].map((asset: any) => resolveAssetSource(asset));
|
|
156
|
-
console.log('array parsed', i, obj[i])
|
|
157
154
|
}
|
|
158
155
|
else if (String(i).match(/[Ii]mage$/)) {
|
|
159
|
-
console.log('single image parsing', i, obj[i])
|
|
160
156
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
161
157
|
obj[i] = resolveAssetSource(obj[i]);
|
|
162
158
|
}
|