import {
Platform
} from "react-native";
import Navigation from "./navigation";
import defaultLocaleJSON from "./variants/locales/default.json";
import defaultThemeJSON from "./variants/themes/default.json";
import {
type NCoreUIKitConfig,
setupNCoreUIKit,
Host
} from "ncore-ui-kit";
import {
useFonts
} from "expo-font";
import moment from "moment";
import "moment/locale/tr";
let NCoreConfig: NCoreUIKitConfig = {
projectThemes: defaultThemeJSON as NCoreUIKit.Palette,
initialSelectedGapPropagation: "spacious",
projectLocales: defaultLocaleJSON,
initialSelectedPalette: "nibgat",
initialSelectedTheme: "light"
};
const themeStorage = Platform.OS === "web" ? window.localStorage.getItem("theme") : null;
if(themeStorage) {
const parsedThemeStorage = JSON.parse(themeStorage);
NCoreConfig = {
...NCoreConfig,
initialSelectedGapPropagation: parsedThemeStorage.activeGapPropagation,
initialSelectedActiveSharpness: parsedThemeStorage.activeSharpness,
initialSelectedTheme: parsedThemeStorage.activeTheme
};
}
const localeStorage = Platform.OS === "web" ? window.localStorage.getItem("locale") : null;
if(localeStorage) {
const parsedLocaleStorage = JSON.parse(localeStorage);
NCoreConfig = {
...NCoreConfig,
initialSelectedLocale: parsedLocaleStorage.activeLocale
};
}
if (Platform.OS === "web") {
const urlParams = new URLSearchParams(window.location.search);
const langParam = urlParams.get("lang");
if (langParam) {
const isValidLocale = defaultLocaleJSON.some(item => item.locale === langParam);
if (isValidLocale) {
NCoreConfig.initialSelectedLocale = langParam as keyof NCoreUIKit.LocaleKey;
}
}
}
const NCoreUIKitBase = setupNCoreUIKit(NCoreConfig);
moment.locale("tr");
const App = () => {
return ;
};
const isExpo = typeof globalThis !== "undefined" && ("__expo" in globalThis || "Expo" in globalThis);
const ContextAPI = () => {
if(isExpo) {
/* eslint-disable @typescript-eslint/no-require-imports */
const [loaded] = useFonts({
"Geist-ExtraLight": require("./assets/fonts/Geist-ExtraLight.ttf"),
"Geist-ExtraBold": require("./assets/fonts/Geist-ExtraBold.ttf"),
"Geist-SemiBold": require("./assets/fonts/Geist-SemiBold.ttf"),
"Geist-Regular": require("./assets/fonts/Geist-Regular.ttf"),
"Geist-Medium": require("./assets/fonts/Geist-Medium.ttf"),
"Geist-Black": require("./assets/fonts/Geist-Black.ttf"),
"Geist-Light": require("./assets/fonts/Geist-Light.ttf"),
"Geist-Bold": require("./assets/fonts/Geist-Bold.ttf"),
"Geist-Thin": require("./assets/fonts/Geist-Thin.ttf")
});
if (!loaded) return null;
}
return
;
};
export default ContextAPI;