create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
55 lines (51 loc) • 1.43 kB
JavaScript
/**
* Copyright (c) Nicolas Gallagher.
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
var doLeftAndRightSwapInRTL = true;
var isPreferredLanguageRTL = false;
var isRTLAllowed = true;
var isRTLForced = false;
var isRTL = function isRTL() {
if (isRTLForced) {
return true;
}
return isRTLAllowed && isPreferredLanguageRTL;
};
var onDirectionChange = function onDirectionChange() {
if (ExecutionEnvironment.canUseDOM) {
if (document.documentElement && document.documentElement.setAttribute) {
document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');
}
}
};
var I18nManager = {
allowRTL: function allowRTL(bool) {
isRTLAllowed = bool;
onDirectionChange();
},
forceRTL: function forceRTL(bool) {
isRTLForced = bool;
onDirectionChange();
},
getConstants: function getConstants() {
return {
doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,
isRTL: isRTL()
};
},
setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {
isPreferredLanguageRTL = bool;
onDirectionChange();
},
swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {
doLeftAndRightSwapInRTL = bool;
}
};
export default I18nManager;