index.tsx 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import {
  2. useRef
  3. } from "react";
  4. import {
  5. StyleSheet,
  6. View
  7. } from "react-native";
  8. import {
  9. type IBottomSheetRef,
  10. setupNCoreUIKit,
  11. NCoreUIKitTheme,
  12. BottomSheet,
  13. SelectBox,
  14. Button,
  15. Text
  16. } from "ncore-ui-kit-mobile";
  17. import {
  18. useFonts
  19. } from "expo-font";
  20. import TextInput from "../../src/components/textInput";
  21. import packageJSON from "../package.json";
  22. const NCoreUIKitBase = setupNCoreUIKit({
  23. initialSelectedGapPropagation: "compact",
  24. initialSelectedTheme: "dark"
  25. });
  26. const X = [{
  27. t: "x",
  28. p: "y",
  29. n: 90
  30. }];
  31. const App = () => {
  32. const {
  33. colors
  34. } = NCoreUIKitTheme.useContext();
  35. const bottomSheetRef = useRef<IBottomSheetRef>(null);
  36. return <View
  37. style={[
  38. styles.container,
  39. {
  40. backgroundColor: colors.content.container.default
  41. }
  42. ]}
  43. >
  44. <SelectBox
  45. keyExtractor={(data, index) => `${data.t}-${index}`}
  46. titleExtractor={(data) => data.t}
  47. subTitle="Deneme Subtitle"
  48. hintText="Test deneme"
  49. isShowSubTitle={true}
  50. initialSelectedItems={[{
  51. __title: X[0]?.t as string,
  52. __key: `${X[0]?.t}-0`,
  53. __originalIndex: 0
  54. }]}
  55. title="Deneme Box"
  56. isRequired={true}
  57. data={X}
  58. />
  59. <TextInput
  60. variant="hidden"
  61. />
  62. <Text>Version: v{packageJSON.version}</Text>
  63. <Button
  64. onPress={() => {
  65. bottomSheetRef.current?.open();
  66. }}
  67. type="success"
  68. title="Ahmet"
  69. variant="filled"
  70. />
  71. <BottomSheet
  72. isCanFullScreenOnSwipe={true}
  73. ref={bottomSheetRef}
  74. snapPoint={300}
  75. >
  76. <View
  77. style={{
  78. backgroundColor: "red",
  79. height: 2400
  80. }}
  81. />
  82. <Text>Deneme 123</Text>
  83. <Text>Deneme 123</Text>
  84. <Text>Deneme 123</Text>
  85. <Text>Deneme 123</Text>
  86. <Text>Deneme 123</Text>
  87. <Text>Deneme 123</Text>
  88. <Text>Deneme 123</Text>
  89. </BottomSheet>
  90. </View>;
  91. };
  92. const ContextAPI = () => {
  93. /* eslint-disable @typescript-eslint/no-require-imports */
  94. const [loaded] = useFonts({
  95. "Geist-ExtraLight": require("./assets/fonts/Geist-ExtraLight.ttf"),
  96. "Geist-ExtraBold": require("./assets/fonts/Geist-ExtraBold.ttf"),
  97. "Geist-SemiBold": require("./assets/fonts/Geist-SemiBold.ttf"),
  98. "Geist-Regular": require("./assets/fonts/Geist-Regular.ttf"),
  99. "Geist-Medium": require("./assets/fonts/Geist-Medium.ttf"),
  100. "Geist-Black": require("./assets/fonts/Geist-Black.ttf"),
  101. "Geist-Light": require("./assets/fonts/Geist-Light.ttf"),
  102. "Geist-Bold": require("./assets/fonts/Geist-Bold.ttf"),
  103. "Geist-Thin": require("./assets/fonts/Geist-Thin.ttf")
  104. });
  105. if (!loaded) return null;
  106. return <NCoreUIKitBase.Provider>
  107. <App/>
  108. </NCoreUIKitBase.Provider>;
  109. };
  110. const styles = StyleSheet.create({
  111. container: {
  112. justifyContent: "center",
  113. alignItems: "center",
  114. flex: 1
  115. }
  116. });
  117. export default ContextAPI;