validateScreenOptions.js
2.3 KB
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
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var deprecatedKeys = ['tabBar'];
/**
* Make sure screen options returned by the `getScreenOption`
* are valid
*/
exports.default = function (screenOptions, route) {
var keys = Object.keys(screenOptions);
var deprecatedKey = keys.find(function (key) {
return deprecatedKeys.includes(key);
});
if (typeof screenOptions.title === 'function') {
throw new Error(['`title` cannot be defined as a function in navigation options for `' + route.routeName + '` screen. \n', 'Try replacing the following:', '{', ' title: ({ state }) => state...', '}', '', 'with:', '({ navigation }) => ({', ' title: navigation.state...', '})'].join('\n'));
}
if (deprecatedKey && typeof screenOptions[deprecatedKey] === 'function') {
throw new Error(['`' + deprecatedKey + '` cannot be defined as a function in navigation options for `' + route.routeName + '` screen. \n', 'Try replacing the following:', '{', ' ' + deprecatedKey + ': ({ state }) => ({', ' key: state...', ' })', '}', '', 'with:', '({ navigation }) => ({', ' ' + deprecatedKey + 'Key: navigation.state...', '})'].join('\n'));
}
if (deprecatedKey && _typeof(screenOptions[deprecatedKey]) === 'object') {
throw new Error(['Invalid key `' + deprecatedKey + '` defined in navigation options for `' + route.routeName + '` screen.', '\n', 'Try replacing the following navigation options:', '{', ' ' + deprecatedKey + ': {'].concat(_toConsumableArray(Object.keys(screenOptions[deprecatedKey]).map(function (key) {
return ' ' + key + ': ...,';
})), [' },', '}', '\n', 'with:', '{'], _toConsumableArray(Object.keys(screenOptions[deprecatedKey]).map(function (key) {
return ' ' + (deprecatedKey + key[0].toUpperCase() + key.slice(1)) + ': ...,';
})), ['}']).join('\n'));
}
};